Многослойный перцептрон Румельхарта (Bukikvlkwudw hyjeyhmjku Jrbyl,]gjmg)
Многослойный перцептрон — частный случай перцептрона Розенблатта, в котором один алгоритм обратного распространения ошибки обучает все слои. Название по историческим причинам не отражает особенности данного вида перцептрона, то есть не связано с тем, что в нём имеется несколько слоёв (так как несколько слоёв было и у перцептрона Розенблатта). Особенностью является наличие более чем одного обучаемого слоя (как правило — два или три). Необходимость в большом количестве обучаемых слоёв отпадает, так как теоретически единственного скрытого слоя достаточно, чтобы перекодировать входное представление таким образом, чтобы получить линейную разделимость для выходного представления. Существует предположение, что, используя большее число слоёв, можно уменьшить число элементов в них, то есть суммарное число элементов в слоях будет меньше, чем если использовать один скрытый слой. Это предположение успешно используется в технологиях глубокого обучения и имеет обоснование[1].
История возникновения понятия о многослойном перцептроне
[править | править код]Все виды перцептронов, предложенные Розенблаттом, начиная с 1958 года, являются по современной классификации многослойными. Однако в 1970-е годы интерес к перцептронам снизился, и в 1986 году Румельхарт сконструировал многослойный перцептрон заново. При этом по причине терминологической неточности Румельхарта в литературе[2] распространилось также представление о том, что первоначальный перцептрон Розенблатта был примитивным и однослойным, и лишь Руммельхарт обосновал необходимость введения скрытых слоёв.
В своих исследованиях Розенблатт использовал преимущественно элементарный перцептрон из трёх слоёв, причём веса первого слоя (между S и А элементами) выбирались случайным образом, а затем фиксировались. Сочетание случайности и большого числа нейронов в A-слое обеспечивали высокую вероятность попадания в такое гиперпространство, в котором имелась линейная сепарабельность и гарантировалась сходимость процесса обучения. Однако такой приём тогда не был достаточно изучен и понят, и его некоторые ученые неверно воспринимали как имеющий лишь один «работающий» слой, а фиксированному первому слою не уделяли должного внимания.
В 1969 году Минский и Паперт в своей книге провели критический анализ элементарного перцептрона, выявив ряд ограничений, что послужило причиной снижения интереса к перцептронам у исследователей. Вернувшись через много лет к тематике, Руммельхарт поставил целью создать более эффективный и практичный перцептрон, но для этого нужно было хотя бы сделать попытку продемонстрировать отсутствие ограничений описанных Минским.
В 1986 году Румельхарт публикует сборник статей (коллективную монографию)[3], где он возвращается к дискуссии о перцептронах, и обосновывает необходимость алгоритма обратного распространения ошибки, суть которого в необходимости обучения не только второго, но и первого слоя. При этом он приводит рисунок из книги Минского и Пайперта и подписывает его: «Однослойный перцептрон, анализируемый Минским и Пайпертом». Неточность заключалась в том, что Минский и Пайперт не анализировали однослойный перцептрон; изображённый на рисунке перцептрон Розенблатта был представлен Румельхартом как однослойный, так как первый слой с фиксированными весами был не учтен, отчего без внимания остался факт, что первый слой играл существенную роль в трансформации входного сигнала в многомерное линейно-сепарабельное пространство.
В результате Румельхарт формулирует ошибочный вывод:
В их известной книге «Перцептроны», Минский и Паперт (1969) документируют ограничения перцептрона. Самым простым примером функции, которая не может быть вычислена перцептроном, является «исключающее или» (XOR).
Оригинальный текст (англ.)In their famous book Perceptrons, Minsky and Papert (1969) document the limitations of the perceptron. The simplest example of a function that cannot be computed by the perceptron is the exclusive-or (XOR).
Ссылка на Минского тут недостаточно точна — Минский нигде на протяжении всей своей книги проблему XOR не затрагивал. Кроме того перцептрон Розенблатта решает проблему XOR. Но появление термина «однослойный перцептрон» стало основой ряда недоразумений, вошло в ряд последующих лекций и учебников. В то же время Минский делал не достаточно обоснованное заявление, что «перцептрон работает безупречно только при том условии, что множество исходных данных линейно разделимо», что могло в дальнейшем неверно трактоваться.
Но уже самим автором гипотезы компактности Браверманом Э. М. ещё 1964 году[4] на примере было продемонстрировано как перцептрон Розенблатта решает произвольную задачу не требуя удовлетворения исходных данных гипотезе компактности, а переводя на современную терминологию требовалось лишь достаточность и представительность обучающей выборки:
При трактовке работы персептрона с точки зрения алгоритма потенциалов мы не предъявляли никаких конкретных требований к плоскостям, реализуемым А -элементами. Нам были безразличны коэффициенты плоскостей и направления их «положительных» сторон. Требовалось лишь, чтобы при движении вдоль какой-либо прямой в пространстве рецепторов мы пересекали «с плюса на минус» достаточно большое число плоскостей. Иными словами, в пространстве рецепторов должно было быть достаточно много различным образом ориентированных плоскостей.
Кроме того, на данный момент это заявление Минского опровергнуто С. С. Яковлевым, который анализируя работы Розенблатта, указал какими особенностями архитектуры должен обладать перцептрон (или любая другая нейронная сеть), чтобы формировать пространство признаков, которое удовлетворяет гипотезе компактности. Или что то же самое, описал условия при которых обеспечивается высокая вероятность (более 99,99 %) попадания в такое гиперпространство, в котором имеется линейная сепарабельность и гарантируется сходимость процесса обучения.[5]
Далее, Румельхарт пишет:
Таким образом, мы видим, что XOR не разрешим в двух измерениях, но если мы добавляем соответствующее третье измерение, то есть, соответствующую новую особенность, проблема разрешима. Кроме того, если Вы используете многослойный перцептрон, возможно взять оригинальную двумерную проблему и преобразовать её в соответствующую трехмерную проблему, сделав её решаемой. Действительно, Минский и Паперт знали, что всегда возможно преобразовать любую неразрешимую проблему в разрешимую в многослойном перцептроне. В более общем случае многослойных сетей мы категоризируем элементы в три класса: входные элементы, которые получают входные образцы непосредственно; выходные элементы, для которых есть ассоциативное обучение или выбранный ввод; и скрытые элементы, которые не получают ввод непосредственно и не имеют прямой обратной связи. Это — запас элементов, на основе которых могут быть получены новые свойства и новые внутренние представления. Проблема состоит в том, чтобы знать, какие новые свойства нужны для решения проблемы. Короче говоря, мы должны быть в состоянии обучить промежуточные слои. Вопрос, как? Оригинальная процедура обучения перцептрона относится не более чем к одному слою. Минский и Паперт полагали, что никакая такая общая процедура не может быть найдена.
Оригинальный текст (англ.)Thus, we see that the XOR is not solvable in two dimensions, but if we add the appropriate third dimension, that is, the appropriate new feature, the problem is solvable. Moreover, as indicated in Figure 4, if you allow a multilayered perceptron, it is possible to take the original two-dimensional problem and convert it into the appropriate three-dimensional problem so it can be solved. Indeed, as Minsky and Papert knew, it is always possible to convert any unsolvable problem into a solvable one in a multilayer perceptron. In the more general case of multilayer networks, we categorize units into three classes: input units, which receive the input patterns directly; output units, which have associated teaching or target inputs; and hidden units, which neither receive inputs directly nor are given direct feedback. This is the stock of units from which new features and new internal representations can be created. The problem is to know which new features are required to solve the problem at hand. In short, we must be able to learn intermediate layers. The question is, how? The original perceptron learning procedure does not apply to more than one layer. Minsky and Papert believed that no such general procedure could be found.
Здесь Румельхарт видит решение в том, что необходимо «взять оригинальную двумерную проблему и преобразовать это в соответствующую трехмерную проблему», и обосновывает принципиальную важность многослойности, ошибочно считая что перцептрон Розенблатта этим качеством не обладает. Разница только в том, что Розенблатт смог избежать обучения первого слоя, используя его случайную проекцию на многомерное пространство. Кроме того, Розенблаттом рассматривался полный аналог многослойного перцептрона Румельхарта, под названием перцептрон с переменными S-A связями, где помимо прочего было доказано, что процедура обучения аналогичная обратному распространению ошибки не всегда может гарантировать достижение решения (обеспечить сходимость).
Не только Румельхарт разработал метод обратного распространения ошибки, а уже существовали теоретически работы других исследователей, посвященные тому же вопросу:
- Werbos P. J.[6]
- Галушкин А. И.[7].
- С. И. Барцев и В. А. Охонин, Красноярская группа, публикуют более общую версию метода обратного распространения ошибки — принцип двойственности, применимый также и к бесконечномерным системам, системам с запаздыванием и т. п.[8][9]
но именно работа Руммельхарта возродила практический интерес к перцептронам.
В этой связи Уоссермен[10] сказал:
Хотя подобное дублирование является обычным явлением для каждой научной области, в искусственных нейронных сетях положение с этим намного серьёзнее из-за пограничного характера самого предмета исследования. Исследования по нейронным сетям публикуются в столь различных книгах и журналах, что даже самому квалифицированному исследователю требуются значительные усилия, чтобы быть осведомленным о всех важных работах в этой области.
По причине этих неточностей в литературе распространилось ошибочное мнение о примитивности перцептрона Розенблатта, и что лишь Руммельхарт, создав свой многослойный перцептрон, открыв принципиальную возможность производить линейную сепарацию и решать проблему XOR, хотя открытие Руммельхарта состояло преимущественно в практической модификации многослойной схемы и разработке принципиально нового метода обучения.
Отличия многослойного перцептрона от перцептрона Розенблатта
[править | править код]В 1988 году Минский переиздал книгу «Перцептроны», в которую включил новые главы. В них, в частности, анализируются отличия между обучением перцептрона методом коррекции ошибки и обучением многослойного перцептрона Румельхарта методом обратного распространения ошибки. Минский показал, что качественно отличий нет, оба способа решают сопоставимые задачи и с той же эффективностью и ограничениями. Разница лишь в способе достижения решения.
Существуют следующие отличия многослойного перцептрона Румельхарта от перцептрона Розенблатта:
- Использование нелинейной функции активации, как правило сигмоидальной.
- Число обучаемых слоев больше одного. Чаще всего в приложениях используется не более трёх.
- Сигналы, поступающие на вход и получаемые с выхода, не двоичные, а могут кодироваться десятичными числами, которые нужно нормализовать так, чтобы значения были на отрезке от 0 до 1 (нормализация необходима как минимум для выходных данных, в соответствии с функцией активации — сигмоидой).
- Допускается произвольная архитектура связей (в том числе и полносвязные сети).
- Ошибка сети вычисляется не как число неправильных образов после итерации обучения, а как некоторая статистическая мера невязки между нужным и получаемым значением.
- Обучение проводится не до отсутствия ошибок после обучения, а до стабилизации весовых коэффициентов при обучении или прерывается ранее, чтобы избежать переобучения.
Многослойный перцептрон будет обладать функциональными преимуществами по сравнению с перцептроном Розенблатта только в том случае, если в ответ на стимулы не просто будет выполнена какая-то реакция (поскольку уже в перцептроне может быть получена реакция любого типа), а выразится в повышении эффективности выработки таких реакций. Например, улучшится способность к обобщению, то есть к правильным реакциям на стимулы, которым перцептрон не обучался. Но на данный момент таких обобщающих теорем нет, существует лишь множество исследований различных стандартизированных испытаний, на которых сравниваются различные архитектуры.
См. также
[править | править код]Примечания
[править | править код]- ↑ Yoshua Bengio, Aaron Courville, Pascal Vincent Representation Learning: A Review and New Perspectives Архивная копия от 23 декабря 2015 на Wayback Machine, 2014
- ↑ например, в Уоссермен, Ф. Нейрокомпьютерная техника: Теория и практика = Neural Computing. Theory and Practice. — М.: Мир, 1992. — 240 с. — ISBN 5-03-002115-9. Архивировано 30 июня 2009 года. Архивированная копия . Дата обращения: 1 июня 2011. Архивировано 30 июня 2009 года.
- ↑ Parallel Distributed Processing: Explorations in the Microstructures of Cognition / Ed. by Rumelhart D. E. and McClelland J. L.— Cambridge, MA: MIT Press, 1986.
- ↑ Обучение машины классификации объектов, Аркадьев А. Г., Браверман Э. М., Изд-во «Наука», Главная редакция физико-математической литературы, М., 1971, 192 стр.
- ↑ S. Jakovlev. Архитектура перцептрона, обеспечивающая компактность описания образов = Perceptron architecture ensuring pattern description compactnes // Scientific proceedings of Riga Technical University, RTU. — Riga, 2009.
- ↑ Werbos P. J. 1974. Beyond regression: New tools for prediction and analysis in the behavioral sciences. PhD thesis, Harward University
- ↑ Галушкин А.И. Синтез многослойных систем распознавания образов. — М.: «Энергия», 1974.
- ↑ Барцев С. И., Охонин В. А. Адаптивные сети обработки информации. Красноярск : Ин-т физики СО АН СССР, 1986. Препринт N 59Б. — 20 с.
- ↑ Горбань А. Н., Обучение нейронных сетей Архивная копия от 9 августа 2010 на Wayback Machine. М.: изд. СССР-США СП «Параграф», 1990. 160 с.
- ↑ Уоссермен, Ф. Нейрокомпьютерная техника: Теория и практика = Neural Computing. Theory and Practice. — М.: Мир, 1992. — 240 с.
Литература
[править | править код]- Ф. Уоссермен. Нейрокомпьютерная техника: Теория и практика. — М.: «Мир», 1992.
- Саймон Хайкин. Нейронные сети: полный курс = Neural Networks: A Comprehensive Foundation. — 2-е изд. — М.: «Вильямс», 2006. — С. 1104. — ISBN 0-13-273350-1.
Ссылки
[править | править код]- Книга Kevin Swingler «Applying Neural Networks. A practical Guide» (перевод Ю. П. Маслобоева) (недоступная ссылка)
- Миркес Е. М., Нейроинформатика. Учебное пособие с программами для выполнения лабораторных работ. 2003. ISBN 5-7636-0477-6 . Содержит лекции и программное обеспечение, в том числе — для моделирования многослойных перцептронов
- Сайт Виктора Царегородцева, содержащий научные статьи по применению многослойного перцептрона
- Flood: An open source neural networks C++ library.
- Weka: Open source data mining software with multilayer perceptron implementation.