Нейронная сеть прямого распространения ( FNN ) — один из двух основных типов искусственных нейронных сетей , характеризующийся направлением потока информации между ее слоями. [2] Его поток является однонаправленным, что означает, что информация в модели течет только в одном направлении — вперед — от входных узлов, через скрытые узлы (если таковые имеются) и к выходным узлам, без каких-либо циклов или петель [2] (в отличие от рекуррентных нейронных сетей , [3] которые имеют двунаправленный поток). Современные сети прямого распространения обучаются с использованием обратного распространения , [4] [5] [6] [7] [8] и в разговорной речи называются «ванильными» нейронными сетями. [9]
Первая — гиперболический тангенс , который изменяется от -1 до 1, а вторая — логистическая функция , которая похожа по форме, но изменяется от 0 до 1. Здесь представлен выход th-го узла (нейрона), а это взвешенная сумма входных соединений. Были предложены альтернативные функции активации, включая функции выпрямителя и softplus . Более специализированные функции активации включают радиальные базисные функции (используемые в радиальных базисных сетях , другом классе контролируемых моделей нейронных сетей).
В последних разработках в области глубокого обучения выпрямленный линейный блок (ReLU) все чаще используется как один из возможных способов преодоления численных проблем, связанных с сигмоидами.
Обучение
Обучение происходит путем изменения весов соединений после обработки каждого фрагмента данных на основе количества ошибок в выходных данных по сравнению с ожидаемым результатом. Это пример контролируемого обучения , и оно осуществляется посредством обратного распространения .
Мы можем представить степень ошибки в выходном узле в th точке данных (пример обучения) как , где — желаемое целевое значение для th точки данных в узле , а — значение, полученное в узле, когда th точка данных задана в качестве входных данных.
Затем веса узлов можно скорректировать на основе поправок, которые минимизируют ошибку во всем выводе для th-й точки данных, заданной как
где — выход предыдущего нейрона , а — скорость обучения , которая выбирается для того, чтобы веса быстро сходились к ответу, без колебаний. В предыдущем выражении обозначает частную производную ошибки в соответствии с взвешенной суммой входных связей нейрона .
Производная, которую нужно вычислить, зависит от индуцированного локального поля , которое само по себе меняется. Легко доказать, что для выходного узла эта производная может быть упрощена до
где — производная функции активации, описанной выше, которая сама по себе не меняется. Анализ более сложен для изменения весов в скрытом узле, но можно показать, что соответствующая производная —
.
Это зависит от изменения весов узлов th, которые представляют выходной слой. Таким образом, чтобы изменить веса скрытого слоя, веса выходного слоя изменяются в соответствии с производной функции активации, и поэтому этот алгоритм представляет собой обратное распространение функции активации. [10]
История
Хронология
Около 1800 года Лежандр (1805) и Гаусс (1795) создали простейшую сеть прямой связи, состоящую из одного слоя веса с линейными функциями активации. Она была обучена методом наименьших квадратов для минимизации среднеквадратической ошибки , также известным как линейная регрессия . Лежандр и Гаусс использовали ее для прогнозирования движения планет по данным обучения. [11] [12] [13] [14] [15]
В 1958 году Фрэнк Розенблатт предложил многослойную модель персептрона , состоящую из входного слоя, скрытого слоя со случайными весами, которые не обучались, и выходного слоя с обучаемыми связями. [17] RD Joseph (1960) [18] упоминает еще более раннее устройство, похожее на персептрон: [13] «Фарли и Кларк из лаборатории Линкольна Массачусетского технологического института фактически опередили Розенблатта в разработке устройства, похожего на персептрон». Однако «они отказались от этой темы».
В 1960 году Джозеф [18] также обсуждал многослойные персептроны с адаптивным скрытым слоем. Розенблатт (1962) [19] : раздел 16 цитировал и принимал эти идеи, также отдавая должное работе HD Block и BW Knight. К сожалению, эти ранние усилия не привели к рабочему алгоритму обучения для скрытых единиц, т. е. глубокому обучению .
В 1965 году Алексей Григорьевич Ивахненко и Валентин Лапа опубликовали Group Method of Data Handling , первый работающий алгоритм глубокого обучения , метод обучения произвольно глубоких нейронных сетей. [20] [21] Он основан на послойном обучении с помощью регрессионного анализа. Избыточные скрытые единицы отсекаются с помощью отдельного проверочного набора. Поскольку функции активации узлов являются полиномами Колмогорова-Габора, это были также первые глубокие сети с мультипликативными единицами или «воротами». [13] Он был использован для обучения восьмислойной нейронной сети в 1971 году.
В 1967 году Шуничи Амари сообщил [22] о первой многослойной нейронной сети, обученной стохастическим градиентным спуском , которая была способна классифицировать нелинейно разделимые классы образов. Студент Амари Сайто провел компьютерные эксперименты, используя пятислойную сеть прямого распространения с двумя обучающими слоями. [13]
В 1970 году Сеппо Линнайнмаа опубликовал современную форму обратного распространения в своей магистерской диссертации (1970). [23] [24] [13] GM Ostrovski и др. переиздали ее в 1971 году. [25] [26] Пол Вербос применил обратное распространение к нейронным сетям в 1982 году [7] [27] (его докторская диссертация 1974 года, переизданная в книге 1994 года, [28] еще не описывала алгоритм [26] ). В 1986 году Дэвид Э. Румельхарт и др. популяризировали обратное распространение, но не ссылались на оригинальную работу. [29] [8]
При использовании порога, т. е. линейной функции активации , полученный линейный пороговый блок называется персептроном . (Часто этот термин используется для обозначения только одного из этих блоков.) Несколько параллельных нелинейных блоков способны аппроксимировать любую непрерывную функцию из компактного интервала действительных чисел в интервал [−1,1], несмотря на ограниченную вычислительную мощность одного блока с линейной пороговой функцией. [31]
Персептроны можно обучать с помощью простого алгоритма обучения, который обычно называется дельта-правилом . Он вычисляет ошибки между вычисленными выходными данными и данными выборки выходных данных и использует их для создания корректировки весов, тем самым реализуя форму градиентного спуска .
Многослойный персептрон
Многослойный персептрон ( MLP ) — неправильное название современной искусственной нейронной сети прямого распространения, состоящей из полностью связанных нейронов (отсюда иногда используемый синоним полностью связанной сети ( FCN )), часто с нелинейной функцией активации, организованной по крайней мере в три слоя, примечательной тем, что она способна различать данные, которые не являются линейно разделимыми . [32]
^ Ферри, К. и Кайзер, С. (2019). Нейронные сети для младенцев . Справочники. ISBN 978-1492671206.{{cite book}}: CS1 maint: multiple names: authors list (link)
^ Аб Зелл, Андреас (1994). Simulation Neuronaler Netze [ Моделирование нейронных сетей ] (на немецком языке) (1-е изд.). Аддисон-Уэсли. п. 73. ИСБН3-89319-554-8.
^ Шмидхубер, Юрген (2015-01-01). «Глубокое обучение в нейронных сетях: обзор». Neural Networks . 61 : 85–117. arXiv : 1404.7828 . doi : 10.1016/j.neunet.2014.09.003. ISSN 0893-6080. PMID 25462637. S2CID 11715509.
^ Линнайнмаа, Сеппо (1970). Представление кумулятивной ошибки округления алгоритма как разложения Тейлора локальных ошибок округления (Мастерс) (на финском языке). Университет Хельсинки. стр. 6–7.
^ Келли, Генри Дж. (1960). «Градиентная теория оптимальных траекторий полета». ARS Journal . 30 (10): 947–954. doi :10.2514/8.5282.
^ Розенблатт, Франк. x. Принципы нейродинамики: персептроны и теория мозговых механизмов. Spartan Books, Вашингтон, округ Колумбия, 1961
^ ab Werbos, Paul (1982). "Применение достижений в нелинейном анализе чувствительности" (PDF) . Моделирование и оптимизация систем . Springer. стр. 762–770. Архивировано (PDF) из оригинала 14 апреля 2016 г. . Получено 2 июля 2017 г. .
^ ab Rumelhart, David E., Geoffrey E. Hinton и RJ Williams. «Изучение внутренних представлений путем распространения ошибок». Дэвид Э. Румельхарт, Джеймс Л. Макклелланд и исследовательская группа PDP. (редакторы), Параллельная распределенная обработка: Исследования микроструктуры познания, Том 1: Основы. MIT Press, 1986.
^ Хасти, Тревор. Тибширани, Роберт. Фридман, Джером. Элементы статистического обучения: добыча данных, вывод и прогнозирование. Springer, Нью-Йорк, 2009.
^ Розенблатт, Франк (1958). «Персептрон: вероятностная модель хранения и организации информации в мозге». Psychological Review . 65 (6): 386–408. CiteSeerX 10.1.1.588.3775 . doi :10.1037/h0042519. PMID 13602029. S2CID 12781225.
^ Джозеф, РД (1960). Вклад в теорию персептрона, Отчет Корнельской авиационной лаборатории № VG-11 96--G-7, Буффало .
^ Линнайнмаа, Сеппо (1970). Представление кумулятивной ошибки округления алгоритма как разложения Тейлора локальных ошибок округления (Мастерс) (на финском языке). Университет Хельсинки. стр. 6–7.
^ Линнаинмаа, Сеппо (1976). «Разложение Тейлора накопленной ошибки округления». BIT Numerical Mathematics . 16 (2): 146–160. doi :10.1007/bf01931367. S2CID 122357351.
^ Островский, ГМ, Волин, ЮМ и Борис, ВВ (1971). О вычислении производных. Wiss. Z. Tech. Hochschule for Chemistry, 13:382–384.
^ ab Schmidhuber, Juergen (25 октября 2014 г.). «Кто изобрел обратное распространение?». IDSIA, Швейцария. Архивировано из оригинала 30 июля 2024 г. Получено 14 сентября 2024 г.
^ Андерсон, Джеймс А.; Розенфельд, Эдвард, ред. (2000). Говорящие сети: устная история нейронных сетей. MIT Press. doi :10.7551/mitpress/6626.003.0016. ISBN978-0-262-26715-1.
^ Вербос, Пол Дж. (1994). Корни обратного распространения: от упорядоченных производных к нейронным сетям и политическому прогнозированию . Нью-Йорк: John Wiley & Sons. ISBN0-471-59897-6.
^ Rumelhart, David E.; Hinton, Geoffrey E.; Williams, Ronald J. (октябрь 1986 г.). «Изучение представлений с помощью обратного распространения ошибок». Nature . 323 (6088): 533–536. Bibcode :1986Natur.323..533R. doi :10.1038/323533a0. ISSN 1476-4687.
^ Бенжио, Йошуа; Дюшарм, Режан; Винсент, Паскаль; Жанвен, Кристиан (март 2003 г.). «Нейронная вероятностная языковая модель». Журнал исследований машинного обучения . 3 : 1137–1155.
^ Ауэр, Питер; Харальд Бургштайнер; Вольфганг Маас (2008). «Правило обучения для очень простых универсальных аппроксиматоров, состоящих из одного слоя персептронов» (PDF) . Нейронные сети . 21 (5): 786–795. doi :10.1016/j.neunet.2007.12.036. PMID 18249524. Архивировано из оригинала (PDF) 2011-07-06 . Получено 2009-09-08 .