5.2.3.2 Начало поиска метода
Сегодня этот метод известен под названием «метод обратного распространения ошибки» [backward propagation of errors], причём в разговорном английском языке это название уже давно сократилось до backpropagation или даже жаргонного backprop. Хотя многие современные популярные источники относят появление этого метода к 1970-м или даже 1980-м гг., в действительности непрерывный вариант метода обратного распространения ошибки был описан ещё в начале 1960-х гг. в работах Генри Келли и Артура Брайсона[1], [2]. Вообще-то, Келли и Брайсон не занимались исследованиями в области нейронных сетей, их интересовал расчёт оптимальных траекторий летательных аппаратов. Например, в статье Келли «Градиентная теория оптимальных полётных маршрутов» (Gradient Theory of Optimal Flight Paths), опубликованной в 1960 г., в качестве примера рассматривалась задача управления космическим кораблём, использующим солнечный парус для путешествия между орбитами Земли и Марса[3].
В 1962 г. Стюарт Дрейфус, младший брат Хьюберта Дрейфуса, смог несколько упростить метод Келли и Брайсона, используя принцип динамического программирования и цепное правило, применяемое при вычислении производной сложной функции[4]. В 1960-е гг. решением сходных проблем, помимо Келли, Брайсона и Дрейфуса, занимался целый ряд учёных в разных странах. Например, в СССР исследования в этой области вёл один из самых знаменитых советских математиков — Лев Понтрягин[5]. Потерявший в 14 лет зрение из-за несчастного случая (взрыва примуса), Понтрягин, благодаря собственному упорству и деятельной помощи матери, смог не только преодолеть выпавшие на его долю трудности, но и сделать выдающуюся научную карьеру[6].
Однако работы этих учёных на тот момент оказались не замечены сообществом коннекционистов. В 1970 г. в магистерской диссертации финского исследователя Сеппо Линнайнмаа был представлен метод автоматического дифференцирования дискретных связанных сетей с помощью вложенных дифференцируемых функций. Описанный Линнайнмаа алгоритм фактически соответствует современной версии метода обратного распространения ошибки, однако и здесь данный метод рассматривался вне связи с нейросетевыми моделями[7].
В наши дни неизвестны свидетельства того, что Розенблатт задумывался о применении методов градиентного спуска для обучения перцептронов. Впрочем, авторство самого термина back propagation принадлежит именно Розенблатту[8]. Один из разделов «Принципов нейродинамики», озаглавленный «Процедуры коррекции ошибки с обратным распространением» (Back-Propagating Error Correction Procedures), посвящён описанию алгоритма обучения трёхслойного перцептрона с переменными S—A-связями[9]. Однако описанный Розенблаттом метод не имеет практически ничего общего с тем, что в наши дни называют методом обратного распространения ошибки. Использование функции Хевисайда в качестве функции активации в розенблаттовских перцептронах делало применение градиентного спуска невозможным. В несколько более выгодном положении оказался Уидроу: он успешно применял градиентный спуск при обучении однослойного ADALINE, однако в случае с MADALINE он наталкивался на ту же проблему — ступенчатая функция активации теряла важную для вычисления градиента информацию[10].
Идея применить для обучения многослойных нейронных сетей метод, уже хорошо известный специалистам в области автоматического дифференцирования сложных функций, независимо возникла у советских и американских математиков. В США её впервые высказал Пол Вербос в диссертационной работе, увидевшей свет в 1974 г.[11]
В начале 1970-х гг. Вербос посетил Минского в MIT и предложил ему совместную работу, идеей которой было продемонстрировать, что многослойные перцептроны могут преодолеть существующие ограничения за счёт модификации модели искусственного нейрона. Идея заключалась в замене функции активации на дифференцируемую функцию и применении метода обратного распространения ошибки для обучения многослойных сетей, составленных из таких нейронов. Однако Минский (сюрприз! сюрприз!) не выказал интереса. Вербосу не удалось заинтересовать этой идеей и других учёных из MIT, Гарварда и прочих вузов, с которыми он связывался.
По иронии судьбы Вербос черпал вдохновение отчасти в одной из ранних работ Минского, в которой тот предложил использовать обучение с подкреплением в качестве способа для создания универсального ИИ. Впрочем, первые попытки реализации этого метода были не более успешны, чем первые опыты с многослойными перцептронами[12].
Другим неожиданным источником вдохновения для Пола Вербоса стала теория психодинамики Зигмунда Фрейда. Идеи Фрейда о принципах работы нервной системы привели Вербоса к мысли о том, что обучение в естественной нейронной сети основано на распространении подкрепления в направлении обратном нормальному течению сигнала при возникновении реакции на стимул. Это озарение, пришедшее в голову Вербоса в 1967 г., отражено в его набросках к диссертации, выполненных пятью годами позже. На тот момент ему, правда, не удалось придумать конкретный алгоритм, воплощающий этот принцип[13].
- ↑ Dreyfus S. E. (1990). Artificial Neural Networks, Back Propagation, and the Kelley-Bryson Gradient Procedure / Journal of Guidance, Control, and Dynamics, Vol. 13, Num. 5 // https://doi.org/10.2514/3.25422
- ↑ Schmidhuber J. (2015). Deep learning in neural networks: An overview / Neural Networks. Volume 61, January 2015, pp. 85—117 // https://doi.org/10.1016/j.neunet.2014.09.003
- ↑ Kelley H. J. (1960). Gradient Theory of Optimal Flight Paths / American Rocket Society Journal, Vol. 30, Num. 10, October 1960 // https://doi.org/10.2514/8.5282
- ↑ Dreyfus S. E. (1990). Artificial Neural Networks, Back Propagation, and the Kelley-Bryson Gradient Procedure / Journal of Guidance, Control, and Dynamics, Vol. 13, Num. 5 // https://doi.org/10.2514/3.25422
- ↑ Schmidhuber J. (2015). Who Invented Backpropagation? // http://people.idsia.ch/~juergen/who-invented-backpropagation.html
- ↑ Понтрягин Л. С. (1998). Жизнеописание Л. С. Понтрягина, математика, составленное им самим. — М.: КомКнига // https://e-libra.ru/books/243417-zhizneopisanie-l-s-pontryagina-matematika-sostavlennoe-im-samim.html
- ↑ Schmidhuber J. (2015). Who Invented Backpropagation? // http://people.idsia.ch/~juergen/who-invented-backpropagation.html
- ↑ Chauvin Y., Rumelhart D. E. (2013). Backpropagation: Theory, Architectures, and Applications. Psychology Press // https://books.google.ru/books?id=B71nu3LDpREC
- ↑ Rosenblatt F. (1961). Principles of Neurodynamics. Perceptrons and the Theory of Brain Mechanisms. Cornell aeronautical lab inc., Buffalo, New York. Defense Technical Information Center // https://books.google.ru/books?id=Tk2tDAEACAAJ
- ↑ Widrow B., Lehr M. A. (1990). 30 years of adaptive neural networks: perceptron, Madaline, and backpropagation / Proceedings of the IEEE, Vol. 78, Iss. 9, pp. 1415—1442 // https://doi.org/10.1109/5.58323
- ↑ Werbos P. (1974). Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences. PhD thesis, Harvard University, Cambridge, MA.
- ↑ Werbos J. P. (2006). Backwards Differentiation in AD and Neural Nets: Past Links and New Opportunities / Bücker M, Corliss G., Naumann U., Hovland P., Norris B. (2006). Automatic Differentiation: Applications, Theory, and Implementations. Lecture Notes in Computational Science and Engineering book series (LNCSE, volume 50). Springer Berlin Heidelberg // https://books.google.ru/books?id=nyvRV4J89VoC
- ↑ Werbos P. J. (1994). The Roots of Backpropagation: From Ordered Derivatives to Neural Networks and Political Forecasting. Wiley & Sons Ltd // https://books.google.ru/books?id=WdR3OOM2gBwC