Перцептрон

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Логическая схема перцептрона с тремя выходами

Перцептро́н, или персептрон[nb 1] (англ. perceptron от лат. perceptio — восприятие; нем. perzeptron) — математическая и компьютерная модель восприятия информации мозгом (кибернетическая модель мозга), предложенная Фрэнком Розенблаттом в 1957 году и реализованная в виде электронной машины «Марк-1»[nb 2] в 1960 году. Перцептрон стал одной из первых моделей нейросетей, а «Марк-1» — первым в мире нейрокомпьютером. Несмотря на свою простоту, перцептрон способен обучаться и решать довольно сложные задачи. Основная математическая задача, с которой он справляется, — это линейное разделение любых нелинейных множеств, так называемое обеспечение линейной сепарабельности.

Перцептрон состоит из трёх типов элементов, а именно: поступающие от сенсоров сигналы передаются ассоциативным элементам, а затем реагирующим элементам. Таким образом, перцептроны позволяют создать набор «ассоциаций» между входными стимулами и необходимой реакцией на выходе. В биологическом плане это соответствует преобразованию, например, зрительной информации в физиологический ответ от двигательных нейронов. Согласно современной терминологии, перцептроны могут быть классифицированы как искусственные нейронные сети:

  1. с одним скрытым слоем;[nb 3]
  2. с пороговой передаточной функцией;
  3. с прямым распространением сигнала.

На фоне роста популярности нейронных сетей, в 1969 году вышла книга Марвина Минского и Сеймура Паперта, которая показала принципиальные ограничения перцептронов. Это привело к смещению интереса исследователей искусственного интеллекта в противоположную от нейросетей область символьных вычислений.[nb 4] Кроме того, из-за сложности математического анализа перцептронов, а также отсутствия общепринятой терминологии, возникли различные неточности и заблуждения.

Впоследствии интерес к нейросетям, и в частности, работам Розенблатта, возобновился. Так, например, сейчас стремительно развивается биокомпьютинг, который в своей теоретической основе вычислений, в том числе, базируется на нейронных сетях, а перцептрон воспроизводят на основе бактериородопсин-содержащих пленок.

Содержание

Появление перцептрона[править | править вики-текст]

Схема искусственного нейрона — базового элемента любой нейронной сети

В 1943 году в своей статье «Логическое исчисление идей, относящихся к нервной активности»[1] Уоррен Мак-Каллок и Уолтер Питтс (англ. Walter Pitts) предложили понятие искусственной нейронной сети. В частности, ими была предложена модель искусственного нейрона. Дональд Хебб в работе «Организация поведения»[2] 1949 года описал основные принципы обучения нейронов.

Эти идеи несколько лет спустя развил американский нейрофизиолог Фрэнк Розенблатт. Он предложил схему устройства, моделирующего процесс человеческого восприятия, и назвал его «перцептроном». Перцептрон передавал сигналы от фотоэлементов, представляющих собой сенсорное поле, в блоки электромеханических ячеек памяти. Эти ячейки соединялись между собой случайным образом в соответствии с принципами коннективизма. В 1957 году в Корнелльской Лаборатории Аэронавтики успешно было завершено моделирование работы перцептрона на компьютере IBM 704, а два года спустя, 23 июня 1960 года в Корнелльском университете, был продемонстрирован первый нейрокомпьютер — «Марк-1», который был способен распознавать некоторые буквы английского алфавита.[3][4]

Фрэнк Розенблатт со своим творением — «Марк-1».

Чтобы «научить» перцептрон классифицировать образы, был разработан специальный итерационный метод обучения проб и ошибок, напоминающий процесс обучения человека — метод коррекции ошибки.[5] Кроме того, при распознании той или иной буквы перцептрон мог выделять характерные особенности буквы, статистически чаще встречающиеся, чем малозначимые отличия в индивидуальных случаях. Тем самым перцептрон был способен обобщать буквы, написанные различным образом (почерком), в один обобщённый образ. Однако возможности перцептрона были ограниченными: машина не могла надежно распознавать частично закрытые буквы, а также буквы иного размера, расположенные со сдвигом или поворотом, нежели те, которые использовались на этапе ее обучения.[6]

Отчёт по первым результатам появился ещё в 1958 году — тогда Розенблаттом была опубликована статья «Перцептрон: Вероятная модель хранения и организации информации в головном мозге».[7] Но подробнее свои теории и предположения относительно процессов восприятия и перцептронов он описывает 1962 году, в книге «Принципы нейродинамики: Перцептроны и теория механизмов мозга». В книге он рассматривает не только уже готовые модели перцептрона с одним скрытым слоем, но и многослойных перцептронов с перекрёстными (третья глава) и обратными (четвёртая глава) связями. В книге также вводится ряд важных идей и теорем, например, доказывается теорема сходимости перцептрона.[8]

Описание элементарного перцептрона[править | править вики-текст]

Поступление сигналов с сенсорного поля в решающие блоки элементарного перцептрона в его физическом воплощении.
Логическая схема элементарного перцептрона. Веса S—A связей могут иметь значения −1, +1 или 0 (то есть отсутствие связи). Веса A—R связей W могут быть любыми.

Элементарный перцептрон состоит из элементов 3-х типов: S-элементов, A-элементов и одного R-элемента. S-элементы — это слой сенсоров, или рецепторов. В физическом воплощении они соответствуют, например, светочувствительным клеткам сетчатки глаза или фоторезисторам матрицы камеры. Каждый рецептор может находиться в одном из двух состояний — покоя или возбуждения, и только в последнем случае он передаёт единичный сигнал в следующий слой, ассоциативным элементам.

A-элементы называются ассоциативными, потому что каждому такому элементу, как правило, соответствует целый набор (ассоциация) S-элементов. A-элемент активизируется, как только количество сигналов от S-элементов на его входе превысило некоторую величину θ.[nb 5] Таким образом, если набор соответствующих S-элементов располагается на сенсорном поле в форме буквы «Д», A-элемент активизируется, если достаточное количество рецепторов сообщило о появлении «белого пятна света» в их окрестности, то есть A-элемент будет как бы ассоциирован с наличием/отсутствием буквы «Д» в некоторой области.

Сигналы от возбудившихся A-элементов, в свою очередь, передаются в сумматор R, причём сигнал от i-го ассоциативного элемента передаётся с коэффициентом w_{i}.[9] Этот коэффициент называется весом A—R связи.

Так же как и A-элементы, R-элемент подсчитывает сумму значений входных сигналов, помноженных на веса (линейную форму). R-элемент, а вместе с ним и элементарный перцептрон, выдаёт «1», если линейная форма превышает порог θ, иначе на выходе будет «−1». Математически, функцию, реализуемую R-элементом, можно записать так:

f(x) = \operatorname{sign}(\sum_{i=1}^{n} w_i x_i - \theta)

Обучение элементарного перцептрона состоит в изменении весовых коэффициентов w_i связей A—R. Веса связей S—A (которые могут принимать значения {−1; 0; +1}) и значения порогов A-элементов выбираются случайным образом в самом начале и затем не изменяются. (Описание алгоритма см. ниже.)

После обучения перцептрон готов работать в режиме распознавания[10] или обобщения[11]. В этом режиме перцептрону предъявляются ранее неизвестные ему объекты, и перцептрон должен установить, к какому классу они принадлежат. Работа перцептрона состоит в следующем: при предъявлении объекта, возбудившиеся A-элементы передают сигнал R-элементу, равный сумме соответствующих коэффициентов w_i. Если эта сумма положительна, то принимается решение, что данный объект принадлежит к первому классу, а если она отрицательна — то ко второму.[12]

Основные понятия теории перцептронов[править | править вики-текст]

Серьёзное ознакомление с теорией перцептронов требует знания базовых определений и теорем, совокупность которых и представляет собой базовую основу для всех последующих видов искусственных нейронных сетей. Но, как минимум, необходимо понимание хотя бы с точки зрения теории сигналов, являющееся оригинальным, то есть описанное автором перцептрона Ф. Розенблаттом.

Описание на основе сигналов[править | править вики-текст]

Пороговая функция, реализуемая простыми S- и A-элементами.
Пороговая функция, реализуемая простым R-элементом.

Для начала определим составные элементы перцептрона, которые являются частными случаями искусственного нейрона с пороговой передаточной функцией.

  • Простым S-элементом (сенсорным) является чувствительный элемент, который от воздействия какого-либо из видов энергии (например, света, звука, давления, тепла и т. п.) вырабатывает сигнал. Если входной сигнал превышает некоторый порог θ, на выходе элемента получаем +1, в противном случае — 0.[13]
  • Простым A-элементом (ассоциативным) называется логический решающий элемент, который даёт выходной сигнал +1, когда алгебраическая сумма его входных сигналов превышает некоторую пороговую величину θ (говорят, что элемент активный), в противном случае выход равен нулю.[13]
  • Простым R-элементом (реагирующим, то есть действующим) называется элемент, который выдаёт сигнал +1, если сумма его входных сигналов является строго положительной, и сигнал −1, если сумма его входных сигналов является строго отрицательной. Если сумма входных сигналов равна нулю, выход считается либо равным нулю, либо неопределённым.[13]

Если на выходе любого элемента мы получаем 1, то говорят, что элемент активен или возбуждён.

Все рассмотренные элементы называются простыми, так как они реализуют скачкообразные функции. Розенблатт утверждал также, что для решения более сложных задач могут потребоваться другие виды функций, например, линейная.[14]

В результате Розенблатт ввёл следующие определения:

  • Перцептрон представляет собой сеть, состоящую из S-, A-, R-элементов, с переменной матрицей взаимодействия W (элементы которой w_{ij} — весовые коэффициенты), определяемой последовательностью прошлых состояний активности сети.[14][15]
  • Перцептроном с последовательными связями называется система, в которой все связи, начинающиеся от элементов с логическим расстоянием d от ближайшего S-элемента, оканчиваются на элементах с логическим расстоянием d+1 от ближайшего S-элемента.[15]
  • Простым перцептроном называется любая система, удовлетворяющая следующим пяти условиям:
    1. в системе имеется только один R-элемент (естественно, он связан всеми A-элементами);
    2. система представляет собой перцептрон с последовательными связями, идущими только от S-элементов к A-элементам и от A-элементов к R-элементам;
    3. веса всех связей от S-элементов к A-элементам (S—A связей) неизменны;
    4. время передачи каждой связи равно либо нулю, либо фиксированной постоянной \tau;
    5. все активирующие функции S-, A-, R-элементов имеют вид U_{i}(t) = f(a_{i}(t)), где a_{i}(t) — алгебраическая сумма всех сигналов, поступающих одновременно на вход элемента u_{i}[14][16]
  • Элементарным перцептроном называется простой перцептрон, у которого все элементы — простые. В этом случае его активизирующая функция имеет вид c_{ij}(t) = U_{i}(t - \tau)w_{ij}(t).[17]

Дополнительно можно указать на следующие концепции, предложенные в книге, и позднее развитые в рамках теории нейронных сетей:

  • Перцептрон с перекрёстными связями - это система, в которой существуют связи между элементами одного типа (S, A или R), находящиеся на одинаковом логическом расстоянии от S-элементов, причем все остальные связи — последовательного типа.[15]
  • Перцептрон с обратной связью - это система, в которой существует хотя бы одна связь от логически более удалённого элемента к менее удалённому.[15] Согласно современной терминологии такие сети называются рекуррентными.
  • Перцептрон с переменными S-A связями - это система, в которой снято ограничение на фиксированные связи от S-элементов к A-элементам. Доказано, что путём оптимизации S—A связей можно добиться значительного улучшения характеристик перцептрона.[18]

Описание на основе предикатов[править | править вики-текст]

Марвин Минский изучал свойства параллельных вычислений, частным случаем которых на то время был перцептрон. Для анализа его свойств ему пришлось переизложить теорию перцептронов на язык предикатов. Суть подхода заключалась в следующем:[nb 6][19]

  • множеству сигналов от S-элементов была сопоставлена переменная X;
  • каждому A-элементу был сопоставлен предикат φ(X) (фи от икс), названный частным предикатом;
  • каждому R-элементу был сопоставлен предикат ψ (пси), зависящий от частных предикатов;
  • наконец, перцептроном было названо устройство, способное вычислять все предикаты типа ψ.

Применительно к «зрительному» перцептрону, переменная X символизировала образ какой-либо геометрической фигуры (стимул). Частный предикат позволял «распознавать» каждый свою фигуру. Предикат ψ означал ситуацию, когда линейная комбинация a_{1}\phi_{1} + \ldots + a_{n}\phi_{n} (a_{i} — коэффициенты передачи) превышала некоторый порог θ.

Учёные выделили 5 семейств перцептронов, обладающих, по их мнению, интересными свойствами:[20]

  1. Перцептроны, ограниченные по диаметру — каждая фигура X, распознаваемая частными предикатами, не превосходит по диаметру некоторую фиксированную величину.
  2. Перцептроны ограниченного порядка — каждый частный предикат зависит от ограниченного количества точек из X.
  3. Перцептроны Гамбы — каждый частный предикат должен быть линейной пороговой функцией, то есть мини-перцептроном.
  4. Случайные перцептроны — перцептроны ограниченного порядка, где частные предикаты представляют собой случайно выбранные булевы функции. В книге отмечается, что именно эта модель наиболее подробно изучалась группой Розенблатта.
  5. Ограниченные перцептроны — множество частных предикатов бесконечно, а множество возможных значений коэффициентов a_{i} конечно.

Хотя такой математический аппарат позволил применить анализ только к элементарному перцептрону Розенблатта, он вскрыл много принципиальных ограничений для параллельных вычислений, от которых не свободен ни один вид современных искусственных нейронных сетей.

Историческая классификация[править | править вики-текст]

Архитектура многослойного перцептрона (обоих подтипов).

Понятие перцептрона имеет интересную, но незавидную историю. В результате неразвитой терминологии нейронных сетей прошлых лет, резкой критики и непонимания задач исследования перцептронов, а иногда и ложного освещения прессой, изначальный смысл этого понятия исказился. Сравнивая разработки Розенблатта и современные обзоры и статьи, можно выделить 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]

  1. Случайным образом выбираем пороги для A-элементов и устанавливаем связи S—A (далее они изменяться не будут).
  2. Начальные коэффициенты w_i полагаем равными нулю.
  3. Предъявляем обучающую выборку: объекты (например, круги либо квадраты) с указанием класса, к которым они принадлежат.
    • Показываем перцептрону объект первого класса. При этом некоторые A-элементы возбудятся. Коэффициенты w_i, соответствующие этим возбуждённым элементам, увеличиваем на 1.
    • Предъявляем объект второго класса и коэффициенты w_i тех A-элементов, которые возбудятся при этом показе, уменьшаем на 1.
  4. Обе части шага 3 выполним для всей обучающей выборки. В результате обучения сформируются значения весов связей w_i.

Теорема сходимости перцептрона[8], описанная и доказанная Ф. Розенблаттом (с участием Блока, Джозефа, Кестена и других исследователей, работавших вместе с ним), показывает, что элементарный перцептрон, обучаемый по такому алгоритму, независимо от начального состояния весовых коэффициентов и последовательности появления стимулов всегда приведет к достижению решения за конечный промежуток времени.

Обучение без учителя[править | править вики-текст]

Кроме классического метода обучения перцептрона Розенблатт также ввёл понятие об обучении без учителя, предложив следующий способ обучения:

Альфа-система подкрепления - это система подкрепления, при которой веса всех активных связей c_{ij}, которые ведут к элементу u_j, изменяются на одинаковую величину r, а веса неактивных связей за это время не изменяются.[23]

Затем, с разработкой понятия многослойного перцептрона, альфа-система была модифицирована и её стали называть дельта-правило. Модификация была проведена с целью сделать функцию обучения дифференцируемой (например, сигмоидной), что в свою очередь нужно для применения метода градиентного спуска, благодаря которому возможно обучение более одного слоя.

Метод обратного распространения ошибки[править | править вики-текст]

Для обучения многослойных сетей рядом учёных, в том числе Д. Румельхартом, был предложен градиентный алгоритм обучения с учителем, проводящий сигнал ошибки, вычисленный выходами перцептрона, к его входам, слой за слоем. Сейчас это самый популярный метод обучения многослойных перцептронов. Его преимущество в том, что он может обучить все слои нейронной сети, и его легко просчитать локально. Однако этот метод является очень долгим, к тому же, для его применения нужно, чтобы передаточная функция нейронов была дифференцируемой. При этом в перцептронах пришлось отказаться от бинарного сигнала, и пользоваться на входе непрерывными значениями.[24]

Традиционные заблуждения[править | править вики-текст]

В результате популяризации искусственных нейронных сетей журналистами и маркетологами был допущен ряд неточностей, которые, при недостаточном изучении оригинальных работ по этой тематике, неверно истолковывались молодыми (на то время) учёными. В результате по сей день можно встретиться с недостаточно глубокой трактовкой функциональных возможностей перцептрона по сравнению с другими нейронными сетями, разработанными в последующие годы.

Терминологические неточности[править | править вики-текст]

Самая распространённая ошибка, связанная с терминологией, это определение перцептрона как нейронной сети без скрытых слоёв (однослойного перцептрона, см. выше). Эта ошибка связана с недостаточно проработанной терминологией в области нейросетей на раннем этапе их разработки. Ф. Уоссерменом была сделана попытка определенным образом классифицировать различные виды нейронных сетей:

Как видно из публикаций, нет общепринятого способа подсчёта числа слоёв в сети. Многослойная сеть состоит из чередующихся множеств нейронов и весов. Входной слой не выполняет суммирования. Эти нейроны служат лишь в качестве разветвлений для первого множества весов и не влияют на вычислительные возможности сети. По этой причине первый слой не принимается во внимание при подсчёте слоев, и сеть считается двухслойной, так как только два слоя выполняют вычисления. Далее, веса слоя считаются связанными со следующими за ними нейронами. Следовательно, слой состоит из множества весов со следующими за ними нейронами, суммирующими взвешенные сигналы.[25]

В результате такого представления перцептрон попал под определение «однослойная нейронная сеть». Отчасти это верно, потому что у него нет скрытых слоев обучающихся нейронов (веса которых адаптируются к задаче). И поэтому всю совокупность фиксированных связей системы из S- к A-элементам, можно логически заменить набором (модифицированных по жёсткому правилу) новых входных сигналов, поступающих сразу на А-элементы (устранив тем самым вообще первый слой связей). Но тут как раз не учитывают, что такая модификация превращает нелинейное представление задачи в линейное.

Поэтому просто игнорирование не обучаемых слоев с фиксированными связями (в элементарном перцептроне это S—A связи) позволяет делать неправильные выводы о возможностях нейросети. Так, Минский поступил очень корректно, переформулировав А-элемент как предикат (то есть функцию); наоборот, Уоссермен уже потерял такое представление и у него А-элемент — просто вход (почти эквивалентный S-элементу). При такой терминологической путанице упускается из виду тот факт, что в перцептроне происходит отображение рецептивного поля S-элементов на ассоциативное поле А-элементов, в результате чего и происходит преобразование любой линейно неразделимой задачи в линейно разделимую.

Функциональные заблуждения[править | править вики-текст]

Решение элементарным перцептроном «задачи XOR». Порог всех элементов θ = 0.

Большинство функциональных заблуждений сводятся к якобы невозможности решения перцептроном нелинейно разделяемой задачи. Но вариаций на эту тему достаточно много, рассмотрим главные из них.

Задача 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. Обучающие примеры — все (это важно) 2^{2N} цепочек.
Могут быть вариации данной задачи, например:
Возьмём чёрно-белое изображение размером 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]

Отсюда следует, что:
  1. у Розенблатта число А-элементов равно числу стимулов (обучающих примеров), а не числу входов;
  2. сходимость по Розенблатту, это не стабилизация весов, а наличие всех требуемых классификаций, то есть по сути отсутствие ошибок.

Экспоненциальный рост числа скрытых элементов[править | править вики-текст]

Если весовые коэффициенты к элементам скрытого слоя (А-элементам) фиксированы, то необходимо, чтобы количество элементов скрытого слоя (либо их сложность) экспоненциально возрастало с ростом размерности задачи (числа рецепторов). Тем самым, теряется их основное преимущество — способность решать задачи произвольной сложности при помощи простых элементов.

Розенблаттом было показано, что число А-элементов зависит только от числа стимулов, которые нужно распознать (см. предыдущий пункт или теорему сходимости перцептрона). Таким образом, при возрастании числа рецепторов, если количество А-элементов фиксировано, непосредственно не зависит возможность перцептрона к решению задач произвольной сложности.
Такое заблуждение происходит от следующей фразы Минского:

При исследовании предиката «чётность» мы видели, что коэффициенты могут расти с ростом |R| (числа точек на изображении) экспоненциально.[29]

Кроме того, Минский исследовал и другие предикаты, например «равенство». Но все эти предикаты представляют собой достаточно специфическую задачу на обобщение, а не на распознавание или прогнозирование. Так, например, чтобы перцептрон мог выполнять предикат «четность» — он должен сказать, четно или нет число чёрных точек на чёрно-белом изображении; а для выполнения предиката «равенство» — сказать, равна ли правая часть изображения левой. Ясно, что такие задачи выходят за рамки задач распознавания и прогнозирования, и представляют собой задачи на обобщение или просто на подсчет определенных характеристик. Это и было убедительно показано Минским, и является ограничением не только перцептронов, но и всех параллельных алгоритмов, которые не способны быстрее последовательных алгоритмов вычислить такие предикаты.
Поэтому такие задачи ограничивают возможности всех нейронных сетей и перцептронов в частности, но это никак не связанно с фиксированными связями первого слоя; так как во-первых, речь шла о величине коэффициентов связей второго слоя, а во-вторых, вопрос только в эффективности, а не принципиальной возможности. То есть перцептрон можно обучить и этой задаче, но требуемые для этого емкость памяти и скорость обучения будут больше, чем при применении простого последовательного алгоритма. Введение же обучаемых весовых коэффициентов в первом слое лишь ухудшит положение дел, ибо потребует большего времени обучения, потому что переменные связи между S и A скорее препятствуют, чем способствуют процессу обучения.[30] Причём, при подготовке перцептрона к задаче распознавания стимулов особого типа, для сохранения эффективности потребуются особые условия стохастического обучения[31], что было показано Розенблаттом в экспериментах с перцептроном с переменными S—A связями.

Возможности и ограничения модели[править | править вики-текст]

Возможности модели[править | править вики-текст]

Пример классификации объектов. Зелёная линия — граница классов.

Сам Розенблатт рассматривал перцептрон прежде всего как следующий важный шаг в сторону исследования и использования нейронных сетей, а не как оконченный вариант «машины, способной мыслить»[nb 9]. Ещё в предисловии к своей книге он, отвечая на критику, отмечал, что «программа по исследованию перцептрона связана главным образом не с изобретением устройств, обладающих „искусственным интеллектом“, а с изучением физических структур и нейродинамических принципов»[32].

Розенблатт предложил ряд психологических тестов для определения возможностей нейросетей: эксперименты по различению, обобщению, по распознаванию последовательностей, образованию абстрактных понятий, формированию и свойствам «самосознания», творческого воображения и другие.[33] Некоторые из этих экспериментов далеки от современных возможностей перцептронов, поэтому их развитие происходит больше философски в пределах направления коннективизма. Тем не менее, для перцептронов установлены два важных факта, находящие применение в практических задачах: возможность классификации (объектов) и возможность аппроксимации (границ классов и функций).[34]

Важным свойством перцептронов является их способность к обучению, причём по довольно простому и эффективному алгоритму (см. выше). В последнее время исследователи начинают обращать внимание именно на оригинальную версию перцептрона, так как обучение многослойного перцептрона с помощью метода обратного распространения ошибки выявило существенные ограничения на скорость обучения. Попытки обучать многослойный перцептрон методом обратного распространения ошибок приводят к экспоненциальному росту вычислительных затрат. Если же воспользоваться методом прямого распространения (ГОСТ Р 52633.5-2011 «Защита информации. Техника защиты информации. Автоматическое обучение нейросетевых преобразователей биометрия-код доступа»), то вычислительная сложность алгоритма обучения становится линейной. Это позволяет снять проблему обучения нейронных сетей с очень большим числом входов и выходов, а также иметь любое число слоев сети перцептронов. Подробнее о снятии проклятия размерности можно прочитать в работе Иванова А.И. "Подсознание искусственного интеллекта: программирование автоматов нейросетевой биометрии языком их обучения" http://пниэи.рф/activity/science/bio_neuro.pdf.

Ограничения модели[править | править вики-текст]

Некоторые задачи, которые перцептрон не способен решить: 1, 2 — преобразования группы переносов; 3 — из какого количества частей состоит фигура? 4 — внутри какого объекта нет другой фигуры? 5 — какая фигура внутри объектов повторяется два раза? (3, 4, 5 — задачи на определение «связности» фигур.)

Сам Розенблатт выделил два фундаментальных ограничения для трёхслойных перцептронов (состоящих из одного S-слоя, одного A-слоя и R-слоя): отсутствие у них способности к обобщению своих характеристик на новые стимулы или новые ситуации, а также неспособность анализировать сложные ситуации во внешней среде путём расчленения их на более простые.[17]

В 1969 году Марвин Минский и Сеймур Паперт опубликовали книгу «Перцептроны», где математически показали, что перцептроны, подобные розенблаттовским, принципиально не в состоянии выполнять многие из тех функций, которые хотели получить от перцептронов. К тому же, в то время была слабо развита теория о параллельных вычислениях, а перцептрон полностью соответствовал принципам таких вычислений. По большому счёту, Минский показал преимущество последовательных вычислений перед параллельным в определённых классах задач, связанных с инвариантным представлением. Его критику можно разделить на три темы:

  1. Перцептроны имеют ограничения в задачах, связанных с инвариантным представлением образов, то есть независимым от их положения на сенсорном поле и относительно других фигур. Такие задачи возникают, например, если нам требуется построить машину для чтения печатных букв или цифр так, чтобы эта машина могла распознавать их независимо от положения на странице (то есть чтобы на решение машины не оказывали влияния перенос, поворот, растяжение-сжатие символов)[6]; или если нам нужно определить из скольких частей состоит фигура[35]; или находятся ли две фигуры рядом или нет[36]. Минским было доказано, что этот тип задач невозможно полноценно решить с помощью параллельных вычислений, в том числе — перцептрона.
  2. Перцептроны не имеют функционального преимущества над аналитическими методами (например, статистическими) в задачах, связанных с прогнозированием.[37] Тем не менее, в некоторых случаях они представляют более простой и производительный метод анализа данных.
  3. Было показано, что некоторые задачи в принципе могут быть решены перцептроном, но могут потребовать нереально большого времени[38] или нереально большой памяти[39].

Книга Минского и Паперта существенно повлияла на пути развития науки об искусственном интеллекте, так как переместила научный интерес и субсидии правительственных организаций США на другое направление исследований — символьный подход в ИИ.

Применение перцептронов[править | править вики-текст]

Здесь будут показаны только основы практического применения перцептрона на двух различных задачах. Задача прогнозирования (и эквивалентная ей задача распознавания образов) требует высокой точности, а задача управления агентами — высокой скорости обучения. Поэтому, рассматривая эти задачи, можно полноценно ознакомиться с возможностями перцептрона, однако этим далеко не исчерпываются варианты его использования.

В практических задачах от перцептрона потребуется возможность выбора более чем из двух вариантов, а значит, на выходе у него должно находиться более одного R-элемента. Как показано Розенблаттом, характеристики таких систем не отличаются существенно от характеристик элементарного перцептрона.[40]

Прогнозирование и распознавание образов[править | править вики-текст]

Взаимодействие обучающегося агента со средой. Важной частью такой системы являются обратные связи.

В этих задачах от перцептрона требуется установить принадлежность объекта к какому-либо классу по его параметрам (например, по внешнему виду, форме, силуэту). Причём, точность распознавания будет во многом зависеть от представления выходных реакций перцептрона. Здесь возможны три типа кодирования: конфигурационное, позиционное, и гибридное. Позиционное кодирование, когда каждому классу соответствует свой R-элемент, даёт более точные результаты, чем другие виды. Такой тип использован, например, в работе Э. Куссуль и др. «Перцептроны Розенблатта для распознавания рукописных цифр». Однако оно неприменимо в тех случаях, когда число классов значительно, например, несколько сотен. В таких случаях можно применять гибридное конфигурационно-позиционное кодирование, как это было сделано в работе С. Яковлева «Система распознавания движущихся объектов на базе искусственных нейронных сетей».

Управление агентами[править | править вики-текст]

В искусственном интеллекте часто рассматриваются обучающиеся (адаптирующиеся к окружающей среде) агенты. При этом в условиях неопределённости становится важным анализировать не только текущую информацию, но и общий контекст ситуации, в которую попал агент, поэтому здесь примененяются перцептроны с обратной связью.[41] Кроме того, в некоторых задачах становится важным повышение скорости обучения перцептрона, например, с помощью моделирования рефрактерности.[42]

После периода, известного как «Зима искусственного интеллекта», интерес к кибернетическим моделям возродился в 1980-х годах, так как сторонники символьного подхода в ИИ так и не смогли подобраться к решению вопросов о «Понимании» и «Значении», из-за чего машинный перевод и техническое распознавание образов до сих пор обладает неустранимыми недостатками. Сам Минский публично выразил сожаление, что его выступление нанесло урон концепции перцептронов, хотя книга лишь показывала недостатки отдельно взятого устройства и некоторых его вариаций. Но в основном ИИ стал синонимом символьного подхода, который выражался в составлении все более сложных программ для компьютеров, моделирующих сложную деятельность человеческого мозга.

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

  1. Вариант «перцептрон» — изначальный, используется в переводе книги Розенблатта (1965), также в справочнике: Толковый словарь по искусственному интеллекту / Авторы-составители А. Н. Аверкин, М. Г. Гаазе-Рапопорт, Д. А. Поспелов. — М.: Радио и связь, 1992. — 256 с. Вариант «персептрон» встречается чаще, он возник при переводе книги Минского и Пейперта (1971); см. также: Энциклопедия кибернетики. Том 2. Мих—Яч. — Киев: Гл. изд. УСЭ, 1974. — С. 156—158.
  2. «Марк-1», в частности, был системой, имитирующей человеческий глаз и его взаимодействие с мозгом.
  3. «Трёхслойные» по классификации, принятой у Розенблатта, и «двухслойные» по современной системе обозначений — с той особенностью, что первый слой не обучаемый.
  4. К символьному подходу, относятся, например, создание экспертных систем, организация баз знаний, анализ текстов.
  5. Формально A-элементы, как и R-элементы, представляют собой сумматоры с порогом, то есть одиночные нейроны.
  6. Изложение в этом разделе несколько упрощено из-за сложности анализа на основе предикатов.
  7. Предикат эквивалентен входу лишь в частном случае — только когда он зависит от одного аргумента.
  8. М. М. Бонгард считает эту задачу наисложнейшей для проведения гиперплоскости в пространстве рецепторов.
  9. На первых этапах развития науки об искусственном интеллекте её задача рассматривалась в абстрактном смысле — создание систем, напоминающих по разуму человека (см. искусственный общий интеллект). Современные формулировки задач в ИИ, как правило, более аккуратны.

Источники[править | править вики-текст]

  1. 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.
  2. 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.
  3. Perceptrons: An Associative Learning Network
  4. Появление перцептрона
  5. 1 2 Системы распознавания образов
  6. 1 2 Минский М., Пейперт С., с. 50.
  7. The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain
  8. 1 2 3 4 Розенблатт Ф., с. 102.
  9. Фомин, С. В., Беркинблит, М. Б. Математические проблемы в биологии
  10. Розенблатт, Ф., с. 158—162.
  11. Розенблатт, Ф., с. 162—163.
  12. Брюхомицкий Ю. А. Нейросетевые модели для систем информационной безопасности, 2005.
  13. 1 2 3 Розенблатт Ф., с. 81.
  14. 1 2 3 Розенблатт, Ф., с. 200.
  15. 1 2 3 4 Розенблатт Ф., с. 82.
  16. Розенблатт Ф., с. 83.
  17. 1 2 Розенблатт Ф., с. 93.
  18. Розенблатт, Ф., с. 230.
  19. Минский, Пейперт, с. 11—18.
  20. Минский, Пейперт, с. 18.
  21. Розенблатт, Ф., с. 85—88.
  22. Хайкин С., 2006, с. 96.
  23. Розенблатт, Ф., с. 86.
  24. Хайкин С., 2006, с. 225—243, 304—316.
  25. Уоссермен, Ф. Нейрокомпьютерная техника: Теория и практика, 1992.
  26. Бонгард, М. М., с. 29.
  27. Минский М., Пейперт С., с. 59.
  28. Розенблатт, Ф., с. 101.
  29. Минский, Пейперт, с. 155, 189 (недословно, упрощенно для выразительности).
  30. Розенблатт, стр. 239
  31. Розенблатт, стр. 242
  32. Розенблатт, Ф., с. 18.
  33. Розенблатт, Ф., с. 70—77.
  34. см. Ежов А. А., Шумский С. А. «Нейрокомпьютинг…», 2006. Лекция 3: Обучение с учителем: Распознавание образов
  35. Минский М., Пейперт С., с. 76—98.
  36. Минский М., Пейперт С., с. 113—116.
  37. Минский М., Пейперт С., с. 192—214.
  38. Минский, Пейперт, с. 163—187
  39. Минский, Пейперт, с. 153—162
  40. Розенблатт, Ф., с. 219—224.
  41. Яковлев С. С. Использование принципа рекуррентности Джордана в перцептроне Розенблатта, Журнал «АВТОМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА», Рига, 2009. Virtual Laboratory Wiki.
  42. Яковлев С. С., Investigation of Refractoriness principle in Recurrent Neural Networks, Scientific proceedings of Riga Technical University, Issue 5, Vol.36, RTU, Riga, 2008, P. 41-48. Исследование принципа рефрактерности в рекуррентных нейронных сетях (перевод) ,

Литература[править | править вики-текст]

Ссылки[править | править вики-текст]