Перцептрон
Перцептро́н (или персептрон[nb 1] (англ. perceptron от лат. perceptio — восприятие; нем. Perzeptron)) — математическая или компьютерная модель восприятия информации мозгом (кибернетическая модель мозга), предложенная Фрэнком Розенблаттом в 1957 году и впервые воплощённая в виде электронной машины «Марк-1»[nb 2] в 1960 году. Перцептрон стал одной из первых моделей нейросетей, а «Марк-1» — первым в мире нейрокомпьютером.
Перцептрон состоит из трёх типов элементов, а именно: поступающие от датчиков сигналы передаются ассоциативным элементам, а затем — реагирующим элементам. Таким образом, перцептроны позволяют создать набор «ассоциаций» между входными стимулами и необходимой реакцией на выходе. В биологическом плане это соответствует преобразованию, например, зрительной информации в физиологический ответ от двигательных нейронов. Согласно современной терминологии, перцептроны могут быть классифицированы как искусственные нейронные сети:
- с одним скрытым слоем;[nb 3]
- с пороговой передаточной функцией;
- с прямым распространением сигнала.
На фоне роста популярности нейронных сетей в 1969 году вышла книга Марвина Минского и Сеймура Паперта, которая показала принципиальные ограничения перцептронов. Это привело к смещению интереса исследователей искусственного интеллекта в противоположную от нейросетей область символьных вычислений[nb 4]. Кроме того, из-за сложности математического исследования перцептронов, а также отсутствия общепринятой терминологии, возникли различные неточности и заблуждения.
Впоследствии интерес к нейросетям, и в частности, работам Розенблатта, возобновился. Так, например, сейчас стремительно развивается биокомпьютинг, который в своей теоретической основе вычислений, в том числе, базируется на нейронных сетях, а перцептрон воспроизводят на основе бактериородопсин-содержащих плёнок.
Появление перцептрона
[править | править код]В 1943 году в своей статье «Логическое исчисление идей, относящихся к нервной активности»[1] Уоррен Мак-Каллок и Уолтер Питтс предложили понятие искусственной нейронной сети. В частности, ими была предложена модель искусственного нейрона. Дональд Хебб в работе «Организация поведения»[2] 1949 года описал основные принципы обучения нейронов.
Эти идеи несколько лет спустя развил американский нейрофизиолог Фрэнк Розенблатт. Он предложил схему устройства, моделирующего процесс человеческого восприятия, и назвал его «перцептроном». Перцептрон передавал сигналы от фотоэлементов, представляющих собой сенсорное поле, в блоки электромеханических ячеек памяти. Эти ячейки соединялись между собой случайным образом в соответствии с принципами коннективизма. В 1957 году в Корнеллской лаборатории аэронавтики было успешно завершено моделирование работы перцептрона на компьютере IBM 704, а два года спустя, 23 июня 1960 года, в Корнеллском университете был продемонстрирован первый нейрокомпьютер — «Марк-1», который был способен распознавать некоторые буквы английского алфавита[3][4].
Чтобы «научить» перцептрон классифицировать образы, был разработан специальный итерационный метод обучения проб и ошибок, напоминающий процесс обучения человека — метод коррекции ошибки[5]. Кроме того, при распознании той или иной буквы перцептрон мог выделять характерные особенности буквы, статистически чаще встречающиеся, чем малозначимые отличия в индивидуальных случаях. Тем самым перцептрон был способен обобщать буквы, написанные различным образом (почерком), в один обобщённый образ. Однако возможности перцептрона были ограниченными: машина не могла надёжно распознавать частично закрытые буквы, а также буквы иного размера, расположенные со сдвигом или поворотом, нежели у тех, которые использовались на этапе её обучения[6].
Отчёт по первым результатам появился ещё в 1958 году — тогда Розенблаттом была опубликована статья «Перцептрон: Вероятностная модель хранения и организации информации в головном мозге»[7]. Но подробнее свои теории и предположения относительно процессов восприятия и перцептронов он описывает 1962 году в книге «Принципы нейродинамики: Перцептроны и теория механизмов мозга». В книге он рассматривает не только уже готовые модели перцептрона с одним скрытым слоем, но и многослойных перцептронов с перекрёстными (третья глава) и обратными (четвёртая глава) связями. В книге также вводится ряд важных идей и теорем, например, доказывается теорема сходимости перцептрона[8].
Описание элементарного перцептрона
[править | править код]Элементарный перцептрон состоит из элементов трёх типов: S-элементов, A-элементов и одного R-элемента. S-элементы — это слой сенсоров или рецепторов. В физическом воплощении они соответствуют, например, светочувствительным клеткам сетчатки глаза или фоторезисторам матрицы камеры. Каждый рецептор может находиться в одном из двух состояний — покоя или возбуждения, и только в последнем случае он передаёт единичный сигнал в следующий слой, ассоциативным элементам.
A-элементы называются ассоциативными, потому что каждому такому элементу, как правило, соответствует целый набор (ассоциация) S-элементов. A-элемент активизируется, как только количество сигналов от S-элементов на его входе превысило некоторую величину [nb 5]. Таким образом, если набор соответствующих S-элементов располагается на сенсорном поле в форме буквы «Д», A-элемент активизируется, если достаточное количество рецепторов сообщило о появлении «белого пятна света» в их окрестности, то есть A-элемент будет как бы ассоциирован с наличием/отсутствием буквы «Д» в некоторой области.
Сигналы от возбудившихся A-элементов, в свою очередь, передаются в сумматор R, причём сигнал от i-го ассоциативного элемента передаётся с коэффициентом [9]. Этот коэффициент называется весом A—R связи.
Так же как и A-элементы, R-элемент подсчитывает сумму значений входных сигналов, помноженных на веса (линейную форму). R-элемент, а вместе с ним и элементарный перцептрон, выдаёт «1», если линейная форма превышает порог , иначе на выходе будет «−1». Математически функцию, реализуемую R-элементом, можно записать так:
Обучение элементарного перцептрона состоит в изменении весовых коэффициентов связей A—R. Веса связей S—A (которые могут принимать значения {−1; 0; +1}) и значения порогов A-элементов выбираются случайным образом в самом начале и затем не изменяются (описание алгоритма см. ниже.)
После обучения перцептрон готов работать в режиме распознавания[10] или обобщения[11]. В этом режиме перцептрону предъявляются ранее не известные ему объекты, и перцептрон должен установить, к какому классу они принадлежат. Работа перцептрона состоит в следующем: при предъявлении объекта возбудившиеся A-элементы передают сигнал R-элементу, равный сумме соответствующих коэффициентов . Если эта сумма положительна, то принимается решение, что данный объект принадлежит к первому классу, а если она отрицательна — то ко второму[12].
Основные понятия теории перцептронов
[править | править код]Серьёзное ознакомление с теорией перцептронов требует знания базовых определений и теорем, совокупность которых и представляет собой основу для всех последующих видов искусственных нейронных сетей. Но, как минимум, необходимо понимание хотя бы с точки зрения теории сигналов, являющееся оригинальным, то есть описанное автором перцептрона Ф. Розенблаттом.
Описание на основе сигналов
[править | править код]Для начала определим составные элементы перцептрона, которые являются частными случаями искусственного нейрона с пороговой передаточной функцией.
- Простым S-элементом (сенсорным) является чувствительный элемент, который от воздействия какого-либо из видов энергии (например, света, звука, давления, тепла и т. п.) вырабатывает сигнал. Если входной сигнал превышает некоторый порог θ, на выходе элемента получаем +1, в противном случае — 0[13].
- Простым A-элементом (ассоциативным) называется логический решающий элемент, который даёт выходной сигнал +1, когда алгебраическая сумма его входных сигналов превышает некоторую пороговую величину θ (говорят, что элемент активный), в противном случае выход равен нулю[13].
- Простым R-элементом (реагирующим, то есть действующим) называется элемент, который выдаёт сигнал +1, если сумма его входных сигналов является строго положительной, и сигнал −1, если сумма его входных сигналов является строго отрицательной. Если сумма входных сигналов равна нулю, выход считается либо равным нулю, либо неопределённым[13].
Если на выходе любого элемента мы получаем 1, то говорят, что элемент активен или возбуждён.
Все рассмотренные элементы называются простыми, так как они реализуют скачкообразные функции. Розенблатт утверждал также, что для решения более сложных задач могут потребоваться другие виды функций, например, линейная[14].
В результате Розенблатт ввёл следующие определения:
- Перцептрон представляет собой сеть, состоящую из S-, A-, R-элементов, с переменной матрицей взаимодействия W (элементы которой — весовые коэффициенты), определяемой последовательностью прошлых состояний активности сети[14][15].
- Перцептроном с последовательными связями называется система, в которой все связи, начинающиеся от элементов с логическим расстоянием d от ближайшего S-элемента, оканчиваются на элементах с логическим расстоянием d+1 от ближайшего S-элемента[15].
- Простым перцептроном называется любая система, удовлетворяющая следующим пяти условиям:
- в системе имеется только один R-элемент (естественно, он связан со всеми A-элементами);
- система представляет собой перцептрон с последовательными связями, идущими только от S-элементов к A-элементам и от A-элементов к R-элементам;
- веса всех связей от S-элементов к A-элементам (S—A связей) неизменны;
- время передачи каждой связи равно либо нулю, либо фиксированной постоянной ;
- все активирующие функции S-, A-, R-элементов имеют вид , где — алгебраическая сумма всех сигналов, поступающих одновременно на вход элемента [14][16]
- Элементарным перцептроном называется простой перцептрон, у которого все элементы — простые. В этом случае его активизирующая функция имеет вид [17].
Дополнительно можно указать на следующие концепции, предложенные в книге и позднее развитые в рамках теории нейронных сетей:
- Перцептрон с перекрёстными связями — это система, в которой существуют связи между элементами одного типа (S, A или R), находящиеся на одинаковом логическом расстоянии от S-элементов, причём все остальные связи — последовательного типа[15].
- Перцептрон с обратной связью — это система, в которой существует хотя бы одна связь от логически более удалённого элемента к менее удалённому[15]. Согласно современной терминологии такие сети называются рекуррентными.
- Перцептрон с переменными S-A связями — это система, в которой снято ограничение на фиксированные связи от S-элементов к A-элементам. Доказано, что путём оптимизации S—A связей можно добиться значительного улучшения характеристик перцептрона[18].
Описание на основе предикатов
[править | править код]Марвин Минский изучал свойства параллельных вычислений, частным случаем которых на то время был перцептрон. Для анализа его свойств ему пришлось переизложить теорию перцептронов на язык предикатов. Суть подхода заключалась в следующем:[nb 6][19]
- множеству сигналов от S-элементов была сопоставлена переменная X;
- каждому A-элементу был сопоставлен предикат φ(X) (фи от икс), названный частным предикатом;
- каждому R-элементу был сопоставлен предикат ψ (пси), зависящий от частных предикатов;
- наконец, перцептроном было названо устройство, способное вычислять все предикаты типа ψ.
Применительно к «зрительному» перцептрону, переменная X символизировала образ какой-либо геометрической фигуры (стимул). Частный предикат позволял «распознавать» каждый свою фигуру. Предикат ψ означал ситуацию, когда линейная комбинация ( — коэффициенты передачи) превышала некоторый порог θ.
Учёные выделили 5 семейств перцептронов, обладающих, по их мнению, интересными свойствами:[20]
- Перцептроны, ограниченные по диаметру — каждая фигура X, распознаваемая частными предикатами, не превосходит по диаметру некоторую фиксированную величину.
- Перцептроны ограниченного порядка — каждый частный предикат зависит от ограниченного количества точек из X.
- Перцептроны Гамбы — каждый частный предикат должен быть линейной пороговой функцией, то есть мини-перцептроном.
- Случайные перцептроны — перцептроны ограниченного порядка, где частные предикаты представляют собой случайно выбранные булевы функции. В книге отмечается, что именно эта модель наиболее подробно изучалась группой Розенблатта.
- Ограниченные перцептроны — множество частных предикатов бесконечно, а множество возможных значений коэффициентов конечно.
Хотя такой математический аппарат позволил применить анализ только к элементарному перцептрону Розенблатта, он вскрыл много принципиальных ограничений для параллельных вычислений, от которых не свободен ни один вид современных искусственных нейронных сетей.
Историческая классификация
[править | править код]Понятие перцептрона имеет интересную, но незавидную историю. В результате неразвитой терминологии нейронных сетей прошлых лет, резкой критики и непонимания задач исследования перцептронов, а иногда и ложного освещения прессой, изначальный смысл этого понятия исказился. Сравнивая разработки Розенблатта и современные обзоры и статьи, можно выделить 4 довольно обособленных класса перцептронов:
- Перцептрон с одним скрытым слоем
Это классический перцептрон, которому посвящена бо́льшая часть книги Розенблатта, и рассматриваемый в данной статье: у него имеется по одному слою S-, A- и R-элементов.
- Однослойный перцептрон
Это модель, в которой входные элементы напрямую соединены с выходными с помощью системы весов. Является простейшей сетью прямого распространения — линейным классификатором, и частным случаем классического перцептрона, в котором каждый S-элемент однозначно соответствует одному A-элементу, S—A связи имеют вес +1 и все A-элементы имеют порог θ = 1. Однослойные перцептроны фактически являются формальными нейронами, то есть пороговыми элементами Мак-Каллока — Питтса. Они имеют множество ограничений, в частности, они не могут идентифицировать ситуацию, когда на их входы поданы разные сигналы («задача XOR», см. ниже).
- Многослойный перцептрон (по Розенблатту)
Это перцептрон, в котором присутствуют дополнительные слои A-элементов. Его анализ провёл Розенблатт в третьей части своей книги.
- Многослойный перцептрон (по Румельхарту)
Это перцептрон, в котором присутствуют дополнительные слои A-элементов, причём, обучение такой сети проводится по методу обратного распространения ошибки, и обучаемыми являются все слои перцептрона (в том числе S—A). Является частным случаем многослойного перцептрона Розенблатта.
В настоящее время в литературе под термином «перцептрон» понимается чаще всего однослойный перцептрон (англ. Single-layer perceptron), причём, существует распространённое заблуждение, что именно этот простейший тип моделей предложил Розенблатт. В противоположность однослойному ставят «многослойный перцептрон» (англ. Multilayer perceptron), опять же, чаще всего подразумевая многослойный перцептрон Румельхарта, а не Розенблатта. Классический перцептрон в такой дихотомии относят к многослойным.
Алгоритмы обучения
[править | править код]Важным свойством любой нейронной сети является способность к обучению. Процесс обучения является процедурой настройки весов и порогов с целью уменьшения разности между желаемыми (целевыми) и получаемыми векторами на выходе. В своей книге Розенблатт пытался классифицировать различные алгоритмы обучения перцептрона, называя их системами подкрепления.
Система подкрепления — это любой набор правил, на основании которых можно изменять с течением времени матрицу взаимодействия (или состояние памяти) перцептрона[21]. Описывая эти системы подкрепления и уточняя возможные их виды, Розенблатт основывался на идеях Д. Хебба об обучении, предложенных им в 1949 году[2], которые можно перефразировать в следующее правило, состоящее из двух частей:
- Если два нейрона по обе стороны синапса (соединения) активизируются одновременно (то есть синхронно), то прочность этого соединения возрастает.
- Если два нейрона по обе стороны синапса активизируются асинхронно, то такой синапс ослабляется или вообще отмирает[22].
Обучение с учителем
[править | править код]Классический метод обучения перцептрона — это метод коррекции ошибки[8]. Он представляет собой такой вид обучения с учителем, при котором вес связи не изменяется до тех пор, пока текущая реакция перцептрона остаётся правильной. При появлении неправильной реакции вес изменяется на единицу, а знак (+/-) определяется противоположным от знака ошибки.
Допустим, мы хотим обучить перцептрон разделять два класса объектов так, чтобы при предъявлении объектов первого класса выход перцептрона был положителен (+1), а при предъявлении объектов второго класса — отрицательным (−1). Для этого выполним следующий алгоритм:[5]
- Случайным образом выбираем пороги для A-элементов и устанавливаем связи S—A (далее они изменяться не будут).
- Начальные коэффициенты полагаем равными нулю.
- Предъявляем обучающую выборку: объекты (например, круги либо квадраты) с указанием класса, к которым они принадлежат.
- Показываем перцептрону объект первого класса. При этом некоторые A-элементы возбудятся. Коэффициенты , соответствующие этим возбуждённым элементам, увеличиваем на 1.
- Предъявляем объект второго класса и коэффициенты тех A-элементов, которые возбудятся при этом показе, уменьшаем на 1.
- Обе части шага 3 выполним для всей обучающей выборки. В результате обучения сформируются значения весов связей .
Теорема сходимости перцептрона[8], описанная и доказанная Ф. Розенблаттом (с участием Блока, Джозефа, Кестена и других исследователей, работавших вместе с ним), показывает, что элементарный перцептрон, обучаемый по такому алгоритму, независимо от начального состояния весовых коэффициентов и последовательности появления стимулов всегда приведёт к достижению решения за конечный промежуток времени.
Обучение без учителя
[править | править код]Кроме классического метода обучения перцептрона Розенблатт также ввёл понятие об обучении без учителя, предложив следующий способ обучения, называемый альфа-системой подкрепления. Это система подкрепления, при которой веса всех активных связей , которые ведут к элементу , изменяются на одинаковую величину r, а веса неактивных связей за это время не изменяются[23].
Затем, с разработкой понятия многослойного перцептрона, альфа-система была модифицирована и её стали называть дельта-правило. Модификация была проведена с целью сделать функцию обучения дифференцируемой (например, сигмоидной), что в свою очередь нужно для применения метода градиентного спуска, благодаря которому возможно обучение более одного слоя.
Метод обратного распространения ошибки
[править | править код]Для обучения многослойных сетей рядом учёных, в том числе Д. Румельхартом, был предложен градиентный алгоритм обучения с учителем, проводящий сигнал ошибки, вычисленный выходами перцептрона, к его входам, слой за слоем. Сейчас это самый популярный метод обучения многослойных перцептронов. Его преимущество в том, что он может обучить все слои нейронной сети, и его легко просчитать локально. Однако этот метод является очень долгим, к тому же, для его применения нужно, чтобы передаточная функция нейронов была дифференцируемой. При этом в перцептронах пришлось отказаться от бинарного сигнала, и пользоваться на входе непрерывными значениями[24].
Традиционные заблуждения
[править | править код]В результате популяризации искусственных нейронных сетей журналистами и маркетологами был допущен ряд неточностей, которые, при недостаточном изучении оригинальных работ по этой тематике, неверно истолковывались молодыми (на то время) учёными. В результате по сей день можно встретиться с недостаточно глубокой трактовкой функциональных возможностей перцептрона по сравнению с другими нейронными сетями, разработанными в последующие годы.[когда?]
Терминологические неточности
[править | править код]Самая распространённая ошибка, связанная с терминологией, это определение перцептрона как нейронной сети без скрытых слоёв (однослойного перцептрона, см. выше). Эта ошибка связана с недостаточно проработанной терминологией в области нейросетей на раннем этапе их разработки. Ф. Уоссерменом была сделана попытка определённым образом классифицировать различные виды нейронных сетей:
Как видно из публикаций, нет общепринятого способа подсчёта числа слоёв в сети. Многослойная сеть состоит из чередующихся множеств нейронов и весов. Входной слой не выполняет суммирования. Эти нейроны служат лишь в качестве разветвлений для первого множества весов и не влияют на вычислительные возможности сети. По этой причине первый слой не принимается во внимание при подсчёте слоев, и сеть считается двухслойной, так как только два слоя выполняют вычисления. Далее, веса слоя считаются связанными со следующими за ними нейронами. Следовательно, слой состоит из множества весов со следующими за ними нейронами, суммирующими взвешенные сигналы[25].
В результате такого представления перцептрон попал под определение «однослойная нейронная сеть». Отчасти это верно, потому что у него нет скрытых слоёв обучающихся нейронов (веса которых адаптируются к задаче), и поэтому всю совокупность фиксированных связей системы из S- к A-элементам можно логически заменить набором (модифицированных по жёсткому правилу) новых входных сигналов, поступающих сразу на А-элементы (устранив тем самым вообще первый слой связей). Но тут как раз не учитывают, что такая модификация превращает нелинейное представление задачи в линейное.
Поэтому просто игнорирование не обучаемых слоёв с фиксированными связями (в элементарном перцептроне это S—A связи) позволяет делать неправильные выводы о возможностях нейросети. Так, Минский поступил очень корректно, переформулировав А-элемент как предикат (то есть функцию); наоборот, Уоссермен уже потерял такое представление и у него А-элемент — просто вход (почти эквивалентный S-элементу). При такой терминологической путанице упускается из виду тот факт, что в перцептроне происходит отображение рецептивного поля S-элементов на ассоциативное поле А-элементов, в результате чего и происходит преобразование любой линейно неразделимой задачи в линейно разделимую.
Функциональные заблуждения
[править | править код]Большинство функциональных заблуждений сводится к якобы невозможности решения перцептроном линейно неразделимой задачи. Но вариаций на эту тему достаточно много, рассмотрим главные из них.
Задача XOR
[править | править код]Заблуждение: перцептрон не способен решить «задачу XOR».
Очень распространённое ошибочное заявление. На изображении справа показано решение этой задачи перцептроном. Данное заблуждение возникает, во-первых, из-за того, что неправильно интерпретируют определение перцептрона, данного Минским (см. выше), а именно, предикаты сразу приравнивают входам, хотя предикат у Минского — это функция, идентифицирующая целый набор входных значений[nb 7]. Во-вторых, из-за того, что классический перцептрон Розенблатта путают с однослойным перцептроном (из-за терминологической неточности, описанной выше).
Следует обратить особое внимание на то, что «однослойный перцептрон» в современной терминологии и «однослойный перцептрон» в терминологии Уоссермана — разные объекты. И объект, изображённый на иллюстрации, в терминологии Уоссермана есть двухслойный перцептрон.
Обучаемость линейно неразделимым задачам
[править | править код]Заблуждение: выбором случайных весов можно достигнуть обучения и линейно неразделимым (вообще, любым) задачам, но только если повезёт, и в новых переменных (выходах A-нейронов) задача окажется линейно разделимой. Но может и не повезти.
Теорема сходимости перцептрона[8] доказывает, что нет и не может быть никакого «может и не повезти»; при равенстве А-элементов числу стимулов и не особенной G-матрице — вероятность решения равна 100 %. То есть при отображении рецепторного поля на ассоциативное поле большей на одну размерности случайным (нелинейным) оператором нелинейная задача превращается в линейно разделимую. А следующий обучаемый слой уже находит линейное решение в другом пространстве входов.
Например, обучение перцептрона для решения «задачи XOR» (см. на иллюстрации) проводится следующими этапами:
Веса | Итерации | ||||||||
---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | |||||
w1 | 0 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 2 |
w2 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 2 | 2 |
w3 | −1 | 0 | 1 | 0 | −1 | 0 | −1 | 0 | −1 |
Входные сигналы (x, y) | 1, 1 | 0, 1 | 1, 0 | 1, 1 | 1, 1 | 0, 1 | 1, 1 | 1, 0 | 1, 1 |
Обучаемость на малом числе примеров
[править | править код]Заблуждение: если в задаче размерность входов довольно высока, а обучающих примеров мало, то в таком «слабо заполненном» пространстве число удач может и не оказаться малым. Это свидетельствует лишь о частном случае пригодности перцептрона, а не его универсальности.
Данный аргумент легко проверить на тестовой задаче под названием «шахматная доска» или «губка с водой»[26][nb 8]:
Дана цепочка из 2·N единиц или нулей, параллельно поступающих на входы перцептрона. Если эта цепочка является зеркально симметричной относительно центра, то на выходе +1, иначе 0. Обучающие примеры — все (это важно) цепочек. |
Могут быть вариации данной задачи, например:
Возьмём чёрно-белое изображение размером 256×256 элементов (пикселей). Входными данными для перцептрона будут координаты точки (8 бит + 8 бит, итого нужно 16 S-элементов), на выходе потребуем цвет точки. Обучаем перцептрон всем точкам (всему изображению). В итоге имеем 65 536 различных пар «стимул—реакция». Обучить без ошибок. |
Если данный аргумент справедлив, то перцептрон не сможет ни при каких условиях обучиться, не делая ни одной ошибки. Иначе перцептрон не ошибётся ни разу.
На практике оказывается, что данная задача очень проста для перцептрона: чтобы её решить, перцептрону достаточно 1500 А-элементов (вместо полных 65 536, необходимых для любой задачи). При этом число итераций порядка 1000. При 1000 А-элементов перцептрон не сходится за 10 000 итераций. Если же увеличить число А-элементов до 40 000, то схождения можно ожидать за 30—80 итераций.
Такой аргумент появляется из-за того, что данную задачу путают с задачей Минского «о предикате „чётность“»[27].
Стабилизация весов и сходимость
[править | править код]Заблуждение: в перцептроне Розенблатта столько А-элементов, сколько входов. И сходимость по Розенблатту, это стабилизация весов.
У Розенблатта указано:
Если число стимулов в пространстве W равно n > N (то есть больше числа А-элементов элементарного перцептрона), то существует некоторая классификация С(W), для которой решения не существует[28].
Отсюда следует, что:
- у Розенблатта число А-элементов равно числу стимулов (обучающих примеров), а не числу входов;
- сходимость по Розенблатту, это не стабилизация весов, а наличие всех требуемых классификаций, то есть по сути отсутствие ошибок.
Экспоненциальный рост числа скрытых элементов
[править | править код]Заблуждение: если весовые коэффициенты к элементам скрытого слоя (А-элементам) фиксированы, то необходимо, чтобы количество элементов скрытого слоя (либо их сложность) экспоненциально возрастало с ростом размерности задачи (числа рецепторов). Тем самым, теряется их основное преимущество — способность решать задачи произвольной сложности при помощи простых элементов.
Розенблаттом было показано, что число А-элементов зависит только от числа стимулов, которые нужно распознать (см. предыдущий пункт или теорему сходимости перцептрона). Таким образом, при возрастании числа рецепторов, если количество А-элементов фиксировано, непосредственно не зависит возможность перцептрона к решению задач произвольной сложности.
Такое заблуждение происходит от следующей фразы Минского:
При исследовании предиката «чётность» мы видели, что коэффициенты могут расти с ростом |R| (числа точек на изображении) экспоненциально[29].
Кроме того, Минский исследовал и другие предикаты, например «равенство». Но все эти предикаты представляют собой достаточно специфическую задачу на обобщение, а не на распознавание или прогнозирование. Так, например, чтобы перцептрон мог выполнять предикат «четность» — он должен сказать, чётно или нет число чёрных точек на чёрно-белом изображении; а для выполнения предиката «равенство» — сказать, равна ли правая часть изображения левой. Ясно, что такие задачи выходят за рамки задач распознавания и прогнозирования, и представляют собой задачи на обобщение или просто на подсчёт определённых характеристик. Это и было убедительно показано Минским, и является ограничением не только перцептронов, но и всех параллельных алгоритмов, которые не способны быстрее последовательных алгоритмов вычислить такие предикаты.
Поэтому такие задачи ограничивают возможности всех нейронных сетей и перцептронов в частности, но это никак не связано с фиксированными связями первого слоя; так как во-первых, речь шла о величине коэффициентов связей второго слоя, а во-вторых, вопрос только в эффективности, а не принципиальной возможности. То есть перцептрон можно обучить и этой задаче, но требуемые для этого ёмкость памяти и скорость обучения будут больше, чем при применении простого последовательного алгоритма. Введение же обучаемых весовых коэффициентов в первом слое лишь ухудшит положение дел, ибо потребует большего времени обучения, потому что переменные связи между S и A скорее препятствуют, чем способствуют процессу обучения[30]. Причём, при подготовке перцептрона к задаче распознавания стимулов особого типа, для сохранения эффективности потребуются особые условия стохастического обучения[31], что было показано Розенблаттом в экспериментах с перцептроном с переменными S—A связями.
Возможности и ограничения модели
[править | править код]Возможности модели
[править | править код]Сам Розенблатт рассматривал перцептрон прежде всего как следующий важный шаг в сторону исследования и использования нейронных сетей, а не как оконченный вариант «машины, способной мыслить»[nb 9]. Ещё в предисловии к своей книге он, отвечая на критику, отмечал, что «программа по исследованию перцептрона связана главным образом не с изобретением устройств, обладающих „искусственным интеллектом“, а с изучением физических структур и нейродинамических принципов»[32].
Розенблатт предложил ряд психологических тестов для определения возможностей нейросетей: эксперименты по различению, обобщению, по распознаванию последовательностей, образованию абстрактных понятий, формированию и свойствам «самосознания», творческого воображения и другие[33]. Некоторые из этих экспериментов далеки от современных возможностей перцептронов, поэтому их развитие происходит больше философски в пределах направления коннективизма. Тем не менее, для перцептронов установлены два важных факта, находящие применение в практических задачах: возможность классификации (объектов) и возможность аппроксимации (границ классов и функций)[34].
Важным свойством перцептронов является их способность к обучению, причём по довольно простому и эффективному алгоритму (см. выше).
Ограничения модели
[править | править код]Сам Розенблатт выделил два фундаментальных ограничения для трёхслойных перцептронов (состоящих из одного S-слоя, одного A-слоя и R-слоя): отсутствие у них способности к обобщению своих характеристик на новые стимулы или новые ситуации, а также неспособность анализировать сложные ситуации во внешней среде путём расчленения их на более простые[17].
В 1969 году Марвин Минский и Сеймур Паперт опубликовали книгу «Перцептроны», где математически показали, что перцептроны, подобные розенблаттовским, принципиально не в состоянии выполнять многие из тех функций, которые хотели получить от перцептронов. К тому же, в то время была слабо развита теория о параллельных вычислениях, а перцептрон полностью соответствовал принципам таких вычислений. По большому счёту, Минский показал преимущество последовательных вычислений перед параллельным в определённых классах задач, связанных с инвариантным представлением. Его критику можно разделить на три темы:
- Перцептроны имеют ограничения в задачах, связанных с инвариантным представлением образов, то есть независимым от их положения на сенсорном поле и относительно других фигур. Такие задачи возникают, например, если нам требуется построить машину для чтения печатных букв или цифр так, чтобы эта машина могла распознавать их независимо от положения на странице (то есть чтобы на решение машины не оказывали влияния перенос, поворот, растяжение-сжатие символов)[6]; или если нам нужно определить из скольких частей состоит фигура[35]; или находятся ли две фигуры рядом или нет[36]. Минским было доказано, что этот тип задач невозможно полноценно решить с помощью параллельных вычислений, в том числе — перцептрона.
- Перцептроны не имеют функционального преимущества над аналитическими методами (например, статистическими) в задачах, связанных с прогнозированием[37]. Тем не менее, в некоторых случаях они представляют более простой и производительный метод анализа данных.
- Было показано, что некоторые задачи в принципе могут быть решены перцептроном, но могут потребовать нереально большого времени[38] или нереально большой памяти[39].
Книга Минского и Паперта существенно повлияла на пути развития науки об искусственном интеллекте, так как переместила научный интерес и субсидии правительственных организаций США на другое направление исследований — символьный подход в ИИ.
Применение перцептронов
[править | править код]Здесь будут показаны только основы практического применения перцептрона на двух различных задачах. Задача прогнозирования (и эквивалентная ей задача распознавания образов) требует высокой точности, а задача управления агентами — высокой скорости обучения. Поэтому, рассматривая эти задачи, можно полноценно ознакомиться с возможностями перцептрона, однако этим далеко не исчерпываются варианты его использования.
В практических задачах от перцептрона потребуется возможность выбора более чем из двух вариантов, а значит, на выходе у него должно находиться более одного R-элемента. Как показано Розенблаттом, характеристики таких систем не отличаются существенно от характеристик элементарного перцептрона[40].
Прогнозирование и распознавание образов
[править | править код]В этих задачах от перцептрона требуется установить принадлежность объекта к какому-либо классу по его параметрам (например, по внешнему виду, форме, силуэту). Причём, точность распознавания будет во многом зависеть от представления выходных реакций перцептрона. Здесь возможны три типа кодирования: конфигурационное, позиционное, и гибридное. Позиционное кодирование, когда каждому классу соответствует свой R-элемент, даёт более точные результаты, чем другие виды. Такой тип использован, например, в работе по применению перцептрона Розенблатта для распознавания рукописных цифр. Однако оно неприменимо в тех случаях, когда число классов значительно, например, несколько сотен, в таких случаях можно применять гибридное конфигурационно-позиционное кодирование.
Управление агентами
[править | править код]В искусственном интеллекте часто рассматриваются обучающиеся (адаптирующиеся к окружающей среде) агенты. При этом в условиях неопределённости становится важным анализировать не только текущую информацию, но и общий контекст ситуации, в которую попал агент, поэтому здесь применяются перцептроны с обратной связью[41]. Кроме того, в некоторых задачах становится важным повышение скорости обучения перцептрона, например, с помощью моделирования рефрактерности[42].
После периода, известного как «Зима искусственного интеллекта», интерес к кибернетическим моделям возродился в 1980-х годах, так как сторонники символьного подхода в ИИ так и не смогли подобраться к решению вопросов о «Понимании» и «Значении», из-за чего машинный перевод и техническое распознавание образов до прорыва 2010-х гг. обладало неустранимыми недостатками. Сам Минский публично выразил сожаление, что его выступление нанесло урон концепции перцептронов, хотя книга лишь показывала недостатки отдельно взятого устройства и некоторых его вариаций. Но в основном ИИ на десятилетия стал синонимом символьного подхода, который выражался в составлении все более сложных программ для компьютеров, моделирующих сложную деятельность человеческого мозга.
См. также
[править | править код]Примечания
[править | править код]Комментарии
[править | править код]- ↑ Вариант «перцептрон» — изначальный, используется в переводе книги Розенблатта (1965), также в справочнике: Толковый словарь по искусственному интеллекту / Авторы-составители А. Н. Аверкин, М. Г. Гаазе-Рапопорт, Д. А. Поспелов. — М.: Радио и связь, 1992. — 256 с. Архивировано 1 февраля 2009 года. Вариант «персептрон» встречается чаще, он возник при переводе книги Минского и Пейперта (1971); см. также: Энциклопедия кибернетики. Том 2. Мих—Яч. — Киев: Гл. изд. УСЭ, 1974. — С. 156—158. Архивировано 31 марта 2009 года. Архивированная копия . Дата обращения: 1 февраля 2009. Архивировано 31 марта 2009 года.
- ↑ «Марк-1», в частности, был системой, имитирующей человеческий глаз и его взаимодействие с мозгом.
- ↑ «Трёхслойные» по классификации, принятой у Розенблатта, и «двухслойные» — по современной системе обозначений — с той особенностью, что первый слой — не обучаемый.
- ↑ К символьному подходу, относятся, например, создание экспертных систем, организация баз знаний, анализ текстов.
- ↑ Формально A-элементы, как и R-элементы, представляют собой сумматоры с порогом, то есть одиночные нейроны.
- ↑ Изложение в этом разделе несколько упрощено из-за сложности анализа на основе предикатов.
- ↑ Предикат эквивалентен входу лишь в частном случае — только когда он зависит от одного аргумента.
- ↑ М. М. Бонгард считает эту задачу наисложнейшей для проведения гиперплоскости в пространстве рецепторов.
- ↑ На первых этапах развития науки об искусственном интеллекте её задача рассматривалась в абстрактном смысле — создание систем, напоминающих по разуму человека (см. искусственный общий интеллект[англ.]). Современные формулировки задач в ИИ, как правило, более аккуратны.
Источники
[править | править код]- ↑ Warren S. McCulloch and Walter Pitts. Логическое исчисление идей, относящихся к нервной активности = A logical calculus of the ideas immanent in nervous activity // Bulletin of Mathematical Biology. — New York: Springer New York, 1943. — Т. 5, № 4. — С. 115—133. Архивировано 27 ноября 2010 года.
- ↑ 1 2 Donald Olding Hebb. The Organization of Behavior: A Neuropsychological Theory. — Wiley, 1949. — 335 p. Современное издание: Donald Olding Hebb. The Organization of Behavior: A Neuropsychological Theory. — Lawrence Erlbaum Associates, 2002. — 335 p. — ISBN 0805843000, ISBN 978-0-8058-4300-2.
- ↑ Perceptrons: An Associative Learning Network . Дата обращения: 2 мая 2008. Архивировано 19 августа 2011 года.
- ↑ Появление перцептрона (недоступная ссылка)
- ↑ 1 2 Системы распознавания образов . Дата обращения: 4 октября 2019. Архивировано из оригинала 18 декабря 2017 года.
- ↑ 1 2 Минский М., Пейперт С., с. 50.
- ↑ The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain . Дата обращения: 2 мая 2008. Архивировано из оригинала 18 февраля 2008 года.
- ↑ 1 2 3 4 Розенблатт Ф., с. 102.
- ↑ Фомин, С. В., Беркинблит, М. Б. Математические проблемы в биологии Архивная копия от 21 декабря 2009 на Wayback Machine
- ↑ Розенблатт Ф., с. 158—162.
- ↑ Розенблатт, Ф., с. 162—163.
- ↑ Брюхомицкий Ю. А. Нейросетевые модели для систем информационной безопасности, 2005.
- ↑ 1 2 3 Розенблатт Ф., с. 81.
- ↑ 1 2 3 Розенблатт, Ф., с. 200.
- ↑ 1 2 3 4 Розенблатт Ф., с. 82.
- ↑ Розенблатт Ф., с. 83.
- ↑ 1 2 Розенблатт Ф., с. 93.
- ↑ Розенблатт, Ф., с. 230.
- ↑ Минский, Пейперт, с. 11—18.
- ↑ Минский, Пейперт, с. 18.
- ↑ Розенблатт, Ф., с. 85—88.
- ↑ Хайкин С., 2006, с. 96.
- ↑ Розенблатт, Ф., с. 86.
- ↑ Хайкин С., 2006, с. 225—243, 304—316.
- ↑ Уоссермен, Ф. Нейрокомпьютерная техника: Теория и практика, 1992.
- ↑ Бонгард, М. М., с. 29.
- ↑ Минский М., Пейперт С., с. 59.
- ↑ Розенблатт, Ф., с. 101.
- ↑ Минский, Пейперт, с. 155, 189 (недословно, упрощённо для выразительности).
- ↑ Розенблатт, стр. 239
- ↑ Розенблатт, стр. 242
- ↑ Розенблатт, Ф., с. 18.
- ↑ Розенблатт, Ф., с. 70—77.
- ↑ см. Ежов А. А., Шумский С. А. «Нейрокомпьютинг…», 2006. Лекция 3: Обучение с учителем: Распознавание образов Архивная копия от 1 ноября 2011 на Wayback Machine
- ↑ Минский М., Пейперт С., с. 76—98.
- ↑ Минский М., Пейперт С., с. 113—116.
- ↑ Минский М., Пейперт С., с. 192—214.
- ↑ Минский, Пейперт, с. 163—187
- ↑ Минский, Пейперт, с. 153—162
- ↑ Розенблатт, Ф., с. 219—224.
- ↑ Яковлев С. С. Использование принципа рекуррентности Джордана в перцептроне Розенблатта // Автоматика и вычислительная техника, Рига, 2009.
- ↑ Jakovļevs S. Investigation of Refractoriness principle in Recurrent Neural Networks, Scientific proceedings of Riga Technical University, Issue 5, Vol.36, RTU, Riga, 2008, P. 41--48.
Литература
[править | править код]- Бонгард М. М. Проблема узнавания. — М.: Наука, 1967. — 320 с. Архивная копия от 6 июня 2015 на Wayback Machine
- Брюхомицкий Ю. А. Нейросетевые модели для систем информационной безопасности: Учебное пособие. — Таганрог: Изд-во ТРТУ, 2005. — 160 с. (недоступная ссылка)
- Мак-Каллок У. С., Питтс В. Логическое исчисление идей, относящихся к нервной активности = A logical calculus of the ideas immanent in nervous activity // Автоматы : Сб.. — М., 1956. — С. 363—384. Архивировано 6 июня 2015 года.
- Минский М., Пейперт С. Персептроны = Perceptrons. — М.: Мир, 1971. — 261 с. Архивная копия от 6 июня 2015 на Wayback Machine
- Розенблатт Ф. Принципы нейродинамики: Перцептроны и теория механизмов мозга = Principles of Neurodynamic: Perceptrons and the Theory of Brain Mechanisms. — М.: Мир, 1965. — 480 с. Архивная копия от 21 мая 2015 на Wayback Machine
- Уоссермен Ф. Нейрокомпьютерная техника: Теория и практика = Neural Computing. Theory and Practice. — М.: Мир, 1992. — 240 с. — ISBN 5-03-002115-9. Архивная копия от 30 июня 2009 на Wayback Machine
- Хайкин С. Нейронные сети: Полный курс = Neural Networks: A Comprehensive Foundation. — 2-е изд. — М.: «Вильямс», 2006. — 1104 с. — ISBN 0-13-273350-1.
- Яковлев С. С. Система распознавания движущихся объектов на базе искусственных нейронных сетей // ИТК НАНБ. — Минск, 2004. — С. 230—234.
- Kussul E., Baidyk T., Kasatkina L., Lukovich V. Перцептроны Розенблатта для распознавания рукописных цифр = Rosenblatt Perceptrons for Handwritten Digit Recognition // IEEE. — 2001. — С. 1516—1520. — ISBN 0-7803-7044-9. Архивировано 19 августа 2013 года. (англ.)
- Stormo G. D., Schneider T. D., Gold L., Ehrenfeucht A. Использование перцептрона для выделения сайтов инициации в E. coli = Use of the 'Perceptron' algorithm to distinguish transational initiation sites in E. coli // Nucleic Acids Research. — 1982. — С. P. 2997—3011. (англ.)
Ссылки
[править | править код]- Появление перцептрона . Дата обращения: 17 января 2009. Архивировано из оригинала 6 апреля 2011 года.
- Ежов А. А., Шумский С. А. Нейрокомпьютинг и его применения в экономике и бизнесе . ИНТУИТ (2006). Дата обращения: 17 января 2009. Архивировано 1 ноября 2011 года.
- Редько В. Г. Искусственные нейронные сети (1999). Дата обращения: 17 января 2009. Архивировано 23 августа 2011 года.
- Яковлев С. С. Линейность и инвариантность в искусственных нейронных сетях (pdf) (2006). Дата обращения: 17 января 2009. Архивировано из оригинала 19 августа 2011 года.
- Estebon M. D.; Tech V. Perceptrons: An Associative Learning Network (англ.) (1997). Дата обращения: 17 января 2009. Архивировано 19 августа 2011 года.
- Беркинблит М. Б. Нейронные сети. Глава "Перцептроны и другие обучающиеся классификационные системы" (1993). Дата обращения: 17 января 2009. Архивировано из оригинала 19 августа 2011 года.
Эта статья входит в число избранных статей русскоязычного раздела Википедии. |