Тип нейронной сети прямого распространения
Многослойный перцептрон ( MLP ) — это название современной искусственной нейронной сети прямого распространения , состоящей из полностью связанных нейронов с нелинейным типом функции активации, организованных как минимум в три слоя и отличающихся способностью различать данные, которые не являются линейно разделимыми . [1] Это неправильное название, поскольку оригинальный персептрон использовал ступенчатую функцию Хевисайда вместо нелинейной функции активации (используемой в современных сетях).
Современные сети прямого распространения обучаются с использованием метода обратного распространения ошибки [2] [3] [4] [5] [6] и в просторечии называются «ванильными» нейронными сетями. [7]
График
- В 1967 году Шуничи Амари опубликовал сеть глубокого обучения, впервые использовавшую стохастический градиентный спуск и способную классифицировать нелинейно разделимые классы шаблонов . [14] Сайто, ученик Амари, провел компьютерные эксперименты, используя пятислойную сеть прямого распространения с двумя уровнями обучения.
- В 1985 году Дэвид Э. Румельхарт и др. провели экспериментальный анализ метода . [6] В последующие десятилетия в этот подход было внесено множество усовершенствований, [10] .
- В 2021 году была разработана очень простая архитектура NN, объединяющая два глубоких MLP с пропусками соединений и нормализацией слоев, которая получила название MLP-Mixer; Было показано, что его реализации, содержащие от 19 до 431 миллионов параметров, сопоставимы с преобразователями изображения аналогичного размера в ImageNet и аналогичными задачами классификации изображений . [22]
Математические основы
Функция активации
Если многослойный персептрон имеет линейную функцию активации во всех нейронах, то есть линейную функцию, которая сопоставляет взвешенные входы с выходом каждого нейрона, то линейная алгебра показывает, что любое количество слоев можно свести к двухслойному входу. выходная модель. В MLP некоторые нейроны используют нелинейную функцию активации, которая была разработана для моделирования частоты потенциалов действия или срабатывания биологических нейронов.
Две исторически распространенные функции активации являются сигмоидами и описываются формулой
.
Первый — это гиперболический тангенс , который находится в диапазоне от −1 до 1, а другой — логистическая функция , которая аналогична по форме, но находится в диапазоне от 0 до 1. Вот выходные данные узла (нейрона) и — взвешенная сумма входных соединений. Были предложены альтернативные функции активации, включая функции выпрямителя и softplus . Более специализированные функции активации включают радиальные базисные функции (используются в радиальных базисных сетях — другом классе контролируемых моделей нейронных сетей).![{\displaystyle y_{i}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle я}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle v_ {i}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
В недавних разработках глубокого обучения выпрямленная линейная единица (ReLU) чаще используется как один из возможных способов преодоления числовых проблем , связанных с сигмоидами.
Слои
MLP состоит из трех или более слоев (входной и выходной слой с одним или несколькими скрытыми слоями ) узлов нелинейной активации. Поскольку MLP полностью связаны, каждый узел на одном уровне соединяется с определенным весом с каждым узлом на следующем уровне.![{\displaystyle w_{ij}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Обучение
Обучение происходит в персептроне путем изменения весов соединений после обработки каждого фрагмента данных в зависимости от количества ошибок на выходе по сравнению с ожидаемым результатом. Это пример обучения с учителем , который осуществляется посредством обратного распространения ошибки — обобщения алгоритма наименьших средних квадратов в линейном персептроне.
Мы можем представить степень ошибки в выходном узле в th точке данных (пример обучения) как , где – желаемое целевое значение для th точки данных в узле , и – значение, создаваемое перцептроном в узле, когда th точка данных подается в качестве входных данных.![{\displaystyle j}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle п}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle e_{j}(n)=d_{j}(n)-y_{j}(n)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\ displaystyle d_ {j} (n)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle п}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle j}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle y_ {j} (n)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle j}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle п}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Затем веса узлов можно скорректировать на основе поправок, которые минимизируют ошибку во всем выводе для th точки данных, определяемую выражением![{\displaystyle п}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
.
Используя градиентный спуск , изменение каждого веса равно![{\displaystyle w_{ij}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \Delta w_{ji}(n)=-\eta {\frac {\partial {\mathcal {E}}(n)}{\partial v_{j}(n)}}y_{i}( п)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
где — выход предыдущего нейрона , а — скорость обучения , которая выбирается для того, чтобы веса быстро сходились к ответу, без колебаний. В предыдущем выражении обозначает частную производную ошибки согласно взвешенной сумме входных соединений нейрона .![{\ displaystyle y_ {i} (n)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle я}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle \эта }](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle {\frac {\partial {\mathcal {E}}(n)}{\partial v_{j}(n)}}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle {\mathcal {E}}(n)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\ displaystyle v_ {j} (n)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle я}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Производная, которую необходимо вычислить, зависит от индуцированного локального поля , которое само меняется. Легко доказать, что для выходного узла эту производную можно упростить до![{\displaystyle v_ {j}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
![{\displaystyle -{\frac {\partial {\mathcal {E}}(n)}{\partial v_{j}(n)}}=e_{j}(n)\phi ^{\prime }(v_ {j}(n))}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
где – производная описанной выше функции активации, которая сама по себе не меняется. Анализ более сложен для изменения весов в скрытом узле, но можно показать, что соответствующая производная равна![{\displaystyle \phi ^{\prime }}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
.
Это зависит от изменения весов узлов , которые представляют выходной слой. Таким образом, чтобы изменить веса скрытого слоя, веса выходного слоя изменяются в соответствии с производной функции активации, и поэтому этот алгоритм представляет собой обратное распространение функции активации. [23]![{\displaystyle k}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Рекомендации
- ^ Цыбенко, Г. 1989. Приближение суперпозициями сигмоидальной функции. Математика управления, сигналов и систем , 2 (4), 303–314.
- ^ аб Линнаинмаа, Сеппо (1970). Представление совокупной ошибки округления алгоритма в виде разложения Тейлора локальных ошибок округления (Мастерс) (на финском языке). Университет Хельсинки. стр. 6–7.
- ^ аб Келли, Генри Дж. (1960). «Градиентная теория оптимальных траекторий полета». Журнал АРС . 30 (10): 947–954. дои : 10.2514/8.5282.
- ^ Розенблатт, Фрэнк. Икс. Принципы нейродинамики: перцептроны и теория механизмов мозга. Спартанские книги, Вашингтон, округ Колумбия, 1961 г.
- ^ аб Вербос, Пол (1982). «Применение достижений нелинейного анализа чувствительности» (PDF) . Системное моделирование и оптимизация . Спрингер. стр. 762–770. Архивировано (PDF) из оригинала 14 апреля 2016 года . Проверено 2 июля 2017 г.
- ^ аб Румелхарт, Дэвид Э., Джеффри Э. Хинтон и Р. Дж. Уильямс. «Изучение внутренних представлений путем распространения ошибок». Дэвид Э. Румельхарт, Джеймс Л. Макклелланд и исследовательская группа НДП. (редакторы), Параллельная распределенная обработка: Исследования микроструктуры познания, Том 1: Фонд. Массачусетский технологический институт Пресс, 1986.
- ^ Хасти, Тревор. Тибширани, Роберт. Фридман, Джером. Элементы статистического обучения: интеллектуальный анализ данных, логический вывод и прогнозирование. Спрингер, Нью-Йорк, 2009 г.
- ^ Розенблатт, Франк (1958). «Персептрон: вероятностная модель хранения и организации информации в мозге». Психологический обзор . 65 (6): 386–408. CiteSeerX 10.1.1.588.3775 . дои : 10.1037/h0042519. PMID 13602029. S2CID 12781225.
- ^ аб Розенблатт, Франк (1962). Принципы нейродинамики . Спартан, Нью-Йорк.
- ^ abcdefgh Шмидхубер, Юрген (2022). «Аннотированная история современного искусственного интеллекта и глубокого обучения». arXiv : 2212.11279 [cs.NE].
- ^ Хуан, Гуан-Бин; Чжу, Цинь-Юй; Сью, Чи-Хеонг (2006). «Машина экстремального обучения: теория и приложения». Нейрокомпьютинг . 70 (1): 489–501. CiteSeerX 10.1.1.217.3692 . doi : 10.1016/j.neucom.2005.12.126. S2CID 116858.
- ^ Ивахненко, А.Г. (1973). Кибернетические предсказывающие устройства. Информационная корпорация CCM.
- ^ Ивахненко, А.Г .; Григорьевич Лапа, Валентин (1967). Кибернетика и методы прогнозирования. Американский паб Elsevier. Ко.
- ^ Амари, Шуничи (1967). «Теория адаптивного классификатора шаблонов». IEEE-транзакции . ЕС (16): 279–307.
- ^ Родригес, Омар Эрнандес; Лопес Фернандес, Хорхе М. (2010). «Семиотическое размышление о дидактике правила цепочки». Любитель математики . 7 (2): 321–332. дои : 10.54870/1551-3440.1191 . S2CID 29739148 . Проверено 4 августа 2019 г.
- ^ Лейбниц, Готфрид Вильгельм Фрайхерр фон (1920). Ранние математические рукописи Лейбница: перевод с латинских текстов, опубликованных Карлом Иммануэлем Герхардтом с критическими и историческими примечаниями (Лейбниц опубликовал цепное правило в мемуарах 1676 года). Издательство «Открытый суд». ISBN 9780598818461.
- ^ Линнаинмаа, Сеппо (1976). «Разложение Тейлора накопленной ошибки округления». БИТ Численная математика . 16 (2): 146–160. дои : 10.1007/bf01931367. S2CID 122357351.
- ^ Р. Коллоберт и С. Бенджио (2004). Связи между перцептронами, MLP и SVM. Учеб. Международная конференция. по машинному обучению (ICML).
- ^ Бенджио, Йошуа; Дюшарм, Режан; Винсент, Паскаль; Джанвин, Кристиан (март 2003 г.). «Нейронно-вероятностная языковая модель». Журнал исследований машинного обучения . 3 : 1137–1155.
- ^ Васвани, Ашиш; Шазир, Ноам; Пармар, Ники; Ушкорейт, Якоб; Джонс, Лион; Гомес, Эйдан Н; Кайзер, Лукаш; Полосухин, Илья (2017). «Внимание – это все, что вам нужно». Достижения в области нейронных систем обработки информации . Карран Ассошиэйтс, Инк. 30 .
- ^ Гева, Мор; Шустер, Рой; Берант, Джонатан; Леви, Омер (2021). «Слои прямой связи трансформатора представляют собой память с ключевыми значениями». Материалы конференции 2021 года по эмпирическим методам обработки естественного языка . стр. 5484–5495. doi :10.18653/v1/2021.emnlp-main.446. S2CID 229923720.
- ^ «Документы с кодом - MLP-Mixer: полностью MLP-архитектура для видения» .
- ^ Хайкин, Саймон (1998). Нейронные сети: комплексный фундамент (2-е изд.). Прентис Холл. ISBN 0-13-273350-1.
Внешние ссылки
- Weka: программное обеспечение для анализа данных с открытым исходным кодом и реализацией многослойного персептрона.
- Документация Neuroph Studio реализует этот и некоторые другие алгоритмы.