Перцептро́н, или персептрон[nb 1] (англ. perceptron от лат. perceptio — восприятие; нем. Perzeptron) — математическая или компьютерная модель восприятия информации мозгом (кибернетическая модель мозга), предложенная Фрэнком Розенблаттом в 1957 году и впервые реализованная в виде электронной машины «Марк-1»[nb 2] в 1960 году. Перцептрон стал одной из первых моделей нейросетей, а «Марк-1» — первым в мире нейрокомпьютером.
Перцептрон состоит из трёх типов элементов, а именно: поступающие от датчиков сигналы передаются ассоциативным элементам, а затем реагирующим элементам. Таким образом, перцептроны позволяют создать набор «ассоциаций» между входными стимулами и необходимой реакцией на выходе. В биологическом плане это соответствует преобразованию, например, зрительной информации в физиологический ответ от двигательных нейронов. Согласно современной терминологии, перцептроны могут быть классифицированы как искусственные нейронные сети:
На фоне роста популярности нейронных сетей в 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].
Серьёзное ознакомление с теорией перцептронов требует знания базовых определений и теорем, совокупность которых и представляет собой базовую основу для всех последующих видов искусственных нейронных сетей. Но, как минимум, необходимо понимание хотя бы с точки зрения теории сигналов, являющееся оригинальным, то есть описанное автором перцептрона Ф. Розенблаттом.
Для начала определим составные элементы перцептрона, которые являются частными случаями искусственного нейрона с пороговой передаточной функцией.
Если на выходе любого элемента мы получаем 1, то говорят, что элемент активен или возбуждён.
Все рассмотренные элементы называются простыми, так как они реализуют скачкообразные функции. Розенблатт утверждал также, что для решения более сложных задач могут потребоваться другие виды функций, например, линейная[14].
В результате Розенблатт ввёл следующие определения:
Дополнительно можно указать на следующие концепции, предложенные в книге, и позднее развитые в рамках теории нейронных сетей:
Марвин Минский изучал свойства параллельных вычислений, частным случаем которых на то время был перцептрон. Для анализа его свойств ему пришлось переизложить теорию перцептронов на язык предикатов. Суть подхода заключалась в следующем:[nb 6][19]
Применительно к «зрительному» перцептрону, переменная X символизировала образ какой-либо геометрической фигуры (стимул). Частный предикат позволял «распознавать» каждый свою фигуру. Предикат ψ означал ситуацию, когда линейная комбинация ( — коэффициенты передачи) превышала некоторый порог θ.
Учёные выделили 5 семейств перцептронов, обладающих, по их мнению, интересными свойствами:[20]
Хотя такой математический аппарат позволил применить анализ только к элементарному перцептрону Розенблатта, он вскрыл много принципиальных ограничений для параллельных вычислений, от которых не свободен ни один вид современных искусственных нейронных сетей.
Понятие перцептрона имеет интересную, но незавидную историю. В результате неразвитой терминологии нейронных сетей прошлых лет, резкой критики и непонимания задач исследования перцептронов, а иногда и ложного освещения прессой, изначальный смысл этого понятия исказился. Сравнивая разработки Розенблатта и современные обзоры и статьи, можно выделить 4 довольно обособленных класса перцептронов:
В настоящее время в литературе под термином «перцептрон» понимается чаще всего однослойный перцептрон (англ. Single-layer perceptron), причём, существует распространённое заблуждение, что именно этот простейший тип моделей предложил Розенблатт. В противоположность однослойному ставят «многослойный перцептрон» (англ. Multilayer perceptron), опять же, чаще всего подразумевая многослойный перцептрон Румельхарта, а не Розенблатта. Классический перцептрон в такой дихотомии относят к многослойным.
Важным свойством любой нейронной сети является способность к обучению. Процесс обучения является процедурой настройки весов и порогов с целью уменьшения разности между желаемыми (целевыми) и получаемыми векторами на выходе. В своей книге Розенблатт пытался классифицировать различные алгоритмы обучения перцептрона, называя их системами подкрепления.
Описывая эти системы подкрепления и уточняя возможные их виды, Розенблатт основывался на идеях Д. Хебба об обучении, предложенных им в 1949 году[2], которые можно перефразировать в следующее правило, состоящее из двух частей:
Классический метод обучения перцептрона — это метод коррекции ошибки[8]. Он представляет собой такой вид обучения с учителем, при котором вес связи не изменяется до тех пор, пока текущая реакция перцептрона остаётся правильной. При появлении неправильной реакции вес изменяется на единицу, а знак (+/-) определяется противоположным от знака ошибки.
Допустим, мы хотим обучить перцептрон разделять два класса объектов так, чтобы при предъявлении объектов первого класса выход перцептрона был положителен (+1), а при предъявлении объектов второго класса — отрицательным (−1). Для этого выполним следующий алгоритм:[5]
Теорема сходимости перцептрона[8], описанная и доказанная Ф. Розенблаттом (с участием Блока, Джозефа, Кестена и других исследователей, работавших вместе с ним), показывает, что элементарный перцептрон, обучаемый по такому алгоритму, независимо от начального состояния весовых коэффициентов и последовательности появления стимулов всегда приведёт к достижению решения за конечный промежуток времени.
Кроме классического метода обучения перцептрона Розенблатт также ввёл понятие об обучении без учителя, предложив следующий способ обучения:
Затем, с разработкой понятия многослойного перцептрона, альфа-система была модифицирована и её стали называть дельта-правило. Модификация была проведена с целью сделать функцию обучения дифференцируемой (например, сигмоидной), что в свою очередь нужно для применения метода градиентного спуска, благодаря которому возможно обучение более одного слоя.
Для обучения многослойных сетей рядом учёных, в том числе Д. Румельхартом, был предложен градиентный алгоритм обучения с учителем, проводящий сигнал ошибки, вычисленный выходами перцептрона, к его входам, слой за слоем. Сейчас это самый популярный метод обучения многослойных перцептронов. Его преимущество в том, что он может обучить все слои нейронной сети, и его легко просчитать локально. Однако этот метод является очень долгим, к тому же, для его применения нужно, чтобы передаточная функция нейронов была дифференцируемой. При этом в перцептронах пришлось отказаться от бинарного сигнала, и пользоваться на входе непрерывными значениями[24].
В результате популяризации искусственных нейронных сетей журналистами и маркетологами был допущен ряд неточностей, которые, при недостаточном изучении оригинальных работ по этой тематике, неверно истолковывались молодыми (на то время) учёными. В результате по сей день можно встретиться с недостаточно глубокой трактовкой функциональных возможностей перцептрона по сравнению с другими нейронными сетями, разработанными в последующие годы.[когда?]
Самая распространённая ошибка, связанная с терминологией, это определение перцептрона как нейронной сети без скрытых слоёв (однослойного перцептрона, см. выше). Эта ошибка связана с недостаточно проработанной терминологией в области нейросетей на раннем этапе их разработки. Ф. Уоссерменом была сделана попытка определённым образом классифицировать различные виды нейронных сетей:
Как видно из публикаций, нет общепринятого способа подсчёта числа слоёв в сети. Многослойная сеть состоит из чередующихся множеств нейронов и весов. Входной слой не выполняет суммирования. Эти нейроны служат лишь в качестве разветвлений для первого множества весов и не влияют на вычислительные возможности сети. По этой причине первый слой не принимается во внимание при подсчёте слоев, и сеть считается двухслойной, так как только два слоя выполняют вычисления. Далее, веса слоя считаются связанными со следующими за ними нейронами. Следовательно, слой состоит из множества весов со следующими за ними нейронами, суммирующими взвешенные сигналы[25].
В результате такого представления перцептрон попал под определение «однослойная нейронная сеть». Отчасти это верно, потому что у него нет скрытых слоёв обучающихся нейронов (веса которых адаптируются к задаче). И поэтому всю совокупность фиксированных связей системы из S- к A-элементам, можно логически заменить набором (модифицированных по жёсткому правилу) новых входных сигналов, поступающих сразу на А-элементы (устранив тем самым вообще первый слой связей). Но тут как раз не учитывают, что такая модификация превращает нелинейное представление задачи в линейное.
Поэтому просто игнорирование не обучаемых слоёв с фиксированными связями (в элементарном перцептроне это S—A связи) позволяет делать неправильные выводы о возможностях нейросети. Так, Минский поступил очень корректно, переформулировав А-элемент как предикат (то есть функцию); наоборот, Уоссермен уже потерял такое представление и у него А-элемент — просто вход (почти эквивалентный S-элементу). При такой терминологической путанице упускается из виду тот факт, что в перцептроне происходит отображение рецептивного поля S-элементов на ассоциативное поле А-элементов, в результате чего и происходит преобразование любой линейно неразделимой задачи в линейно разделимую.
Большинство функциональных заблуждений сводятся к якобы невозможности решения перцептроном линейно неразделимой задачи. Но вариаций на эту тему достаточно много, рассмотрим главные из них.
Заблуждение: перцептрон не способен решить «задачу XOR».
Следует обратить особое внимание на то, что «однослойный перцептрон» в современной терминологии и «однослойный перцептрон» в терминологии Уоссермана — разные объекты. И объект, изображённый на иллюстрации, в терминологии Уоссермана есть двухслойный перцептрон.
Заблуждение: выбором случайных весов можно достигнуть обучения и линейно неразделимым (вообще, любым) задачам, но только если повезёт, и в новых переменных (выходах A-нейронов) задача окажется линейно разделимой. Но может и не повезти.
Веса | Итерации | ||||||||
---|---|---|---|---|---|---|---|---|---|
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 |
Заблуждение: если в задаче размерность входов довольно высока, а обучающих примеров мало, то в таком «слабо заполненном» пространстве число удач может и не оказаться малым. Это свидетельствует лишь о частном случае пригодности перцептрона, а не его универсальности.
Дана цепочка из 2·N единиц или нулей, параллельно поступающих на входы перцептрона. Если эта цепочка является зеркально симметричной относительно центра, то на выходе +1, иначе 0. Обучающие примеры — все (это важно) цепочек. |
Возьмём чёрно-белое изображение размером 256×256 элементов (пикселей). Входными данными для перцептрона будут координаты точки (8 бит + 8 бит, итого нужно 16 S-элементов), на выходе потребуем цвет точки. Обучаем перцептрон всем точкам (всему изображению). В итоге имеем 65 536 различных пар «стимул—реакция». Обучить без ошибок. |
Заблуждение: в перцептроне Розенблатта столько А-элементов, сколько входов. И сходимость по Розенблатту, это стабилизация весов.
Если число стимулов в пространстве W равно n > N (то есть больше числа А-элементов элементарного перцептрона), то существует некоторая классификация С(W), для которой решения не существует[28].
Заблуждение: если весовые коэффициенты к элементам скрытого слоя (А-элементам) фиксированы, то необходимо, чтобы количество элементов скрытого слоя (либо их сложность) экспоненциально возрастало с ростом размерности задачи (числа рецепторов). Тем самым, теряется их основное преимущество — способность решать задачи произвольной сложности при помощи простых элементов.
При исследовании предиката «чётность» мы видели, что коэффициенты могут расти с ростом |R| (числа точек на изображении) экспоненциально[29].
Сам Розенблатт рассматривал перцептрон прежде всего как следующий важный шаг в сторону исследования и использования нейронных сетей, а не как оконченный вариант «машины, способной мыслить»[nb 9]. Ещё в предисловии к своей книге он, отвечая на критику, отмечал, что «программа по исследованию перцептрона связана главным образом не с изобретением устройств, обладающих „искусственным интеллектом“, а с изучением физических структур и нейродинамических принципов»[32].
Розенблатт предложил ряд психологических тестов для определения возможностей нейросетей: эксперименты по различению, обобщению, по распознаванию последовательностей, образованию абстрактных понятий, формированию и свойствам «самосознания», творческого воображения и другие[33]. Некоторые из этих экспериментов далеки от современных возможностей перцептронов, поэтому их развитие происходит больше философски в пределах направления коннективизма. Тем не менее, для перцептронов установлены два важных факта, находящие применение в практических задачах: возможность классификации (объектов) и возможность аппроксимации (границ классов и функций)[34].
Важным свойством перцептронов является их способность к обучению, причём по довольно простому и эффективному алгоритму (см. выше).
Сам Розенблатт выделил два фундаментальных ограничения для трёхслойных перцептронов (состоящих из одного S-слоя, одного A-слоя и R-слоя): отсутствие у них способности к обобщению своих характеристик на новые стимулы или новые ситуации, а также неспособность анализировать сложные ситуации во внешней среде путём расчленения их на более простые[17].
В 1969 году Марвин Минский и Сеймур Паперт опубликовали книгу «Перцептроны», где математически показали, что перцептроны, подобные розенблаттовским, принципиально не в состоянии выполнять многие из тех функций, которые хотели получить от перцептронов. К тому же, в то время была слабо развита теория о параллельных вычислениях, а перцептрон полностью соответствовал принципам таких вычислений. По большому счёту, Минский показал преимущество последовательных вычислений перед параллельным в определённых классах задач, связанных с инвариантным представлением. Его критику можно разделить на три темы:
Книга Минского и Паперта существенно повлияла на пути развития науки об искусственном интеллекте, так как переместила научный интерес и субсидии правительственных организаций США на другое направление исследований — символьный подход в ИИ.
Здесь будут показаны только основы практического применения перцептрона на двух различных задачах. Задача прогнозирования (и эквивалентная ей задача распознавания образов) требует высокой точности, а задача управления агентами — высокой скорости обучения. Поэтому, рассматривая эти задачи, можно полноценно ознакомиться с возможностями перцептрона, однако этим далеко не исчерпываются варианты его использования.
В практических задачах от перцептрона потребуется возможность выбора более чем из двух вариантов, а значит, на выходе у него должно находиться более одного R-элемента. Как показано Розенблаттом, характеристики таких систем не отличаются существенно от характеристик элементарного перцептрона[40].
В этих задачах от перцептрона требуется установить принадлежность объекта к какому-либо классу по его параметрам (например, по внешнему виду, форме, силуэту). Причём, точность распознавания будет во многом зависеть от представления выходных реакций перцептрона. Здесь возможны три типа кодирования: конфигурационное, позиционное, и гибридное. Позиционное кодирование, когда каждому классу соответствует свой R-элемент, даёт более точные результаты, чем другие виды. Такой тип использован, например, в работе Э. Куссуль и др. «Перцептроны Розенблатта для распознавания рукописных цифр». Однако оно неприменимо в тех случаях, когда число классов значительно, например, несколько сотен. В таких случаях можно применять гибридное конфигурационно-позиционное кодирование, как это было сделано в работе С. Яковлева «Система распознавания движущихся объектов на базе искусственных нейронных сетей».
В искусственном интеллекте часто рассматриваются обучающиеся (адаптирующиеся к окружающей среде) агенты. При этом в условиях неопределённости становится важным анализировать не только текущую информацию, но и общий контекст ситуации, в которую попал агент, поэтому здесь применяются перцептроны с обратной связью[41]. Кроме того, в некоторых задачах становится важным повышение скорости обучения перцептрона, например, с помощью моделирования рефрактерности[42].
После периода, известного как «Зима искусственного интеллекта», интерес к кибернетическим моделям возродился в 1980-х годах, так как сторонники символьного подхода в ИИ так и не смогли подобраться к решению вопросов о «Понимании» и «Значении», из-за чего машинный перевод и техническое распознавание образов до сих пор обладает неустранимыми недостатками. Сам Минский публично выразил сожаление, что его выступление нанесло урон концепции перцептронов, хотя книга лишь показывала недостатки отдельно взятого устройства и некоторых его вариаций. Но в основном ИИ стал синонимом символьного подхода, который выражался в составлении все более сложных программ для компьютеров, моделирующих сложную деятельность человеческого мозга.
Эта статья входит в число избранных статей русскоязычного раздела Википедии. |
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .