Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В машинном обучении , прямого распространения ( backprop , [1] BP ) широко используется алгоритм для обучения Feedforward нейронных сетей . Обобщения обратного распространения существуют для других искусственных нейронных сетей (ИНС) и для функций в целом. Все эти классы алгоритмов обычно называются «обратным распространением». [2] В установке нейронной сети , вычисляет обратное распространение градиента от функции потерь по отношению к весам сети для одного ввода-вывод , например, и делает этоэффективно , в отличие от наивного прямого вычисления градиента по каждому весу в отдельности. Эта эффективность делает возможным использование градиентных методов для обучения многослойных сетей, обновления весов для минимизации потерь; Обычно используются градиентный спуск или такие варианты, как стохастический градиентный спуск . Алгоритм обратного распространения работает путем вычисления градиента функции потерь по отношению к каждому весу по правилу цепочки , вычисления градиента по одному слою за раз, итерации назад от последнего уровня, чтобы избежать избыточных вычислений промежуточных членов в цепном правиле; это пример динамического программирования . [3]

Термин обратное распространение строго относится только к алгоритму вычисления градиента, а не к тому, как градиент используется; однако этот термин часто используется в широком смысле для обозначения всего алгоритма обучения, включая способ использования градиента, например, стохастический градиентный спуск. [4] Обратное распространение обобщает вычисление градиента в правиле дельты , которое является однослойной версией обратного распространения, и, в свою очередь, обобщается путем автоматического дифференцирования , где обратное распространение является частным случаем обратного накопления (или «обратного режима»). [5] Термин обратное распространение и его общее использование в нейронных сетях было объявлено вRumelhart, Hinton & Williams (1986a) , затем развитая и популяризированная в Rumelhart, Hinton & Williams (1986b) , но эта техника была независимо повторно открыта много раз и имела много предшественников, относящихся к 1960-м годам; см. § История . [6] Современный обзор дан в учебнике по глубокому обучению Goodfellow, Bengio & Courville (2016) . [7]

Обзор [ править ]

Обратное распространение вычисляет градиент в весовом пространстве нейронной сети прямого распространения относительно функции потерь . Обозначим:

  • : input (вектор признаков)
  • : целевой вывод
    Для классификации выходными данными будет вектор вероятностей классов (например,, а целевой выход - это конкретный класс, закодированный с помощью переменной one-hot / dummy (например, ).
  • : функция потерь или "функция стоимости" [a]
    Для классификации это обычно перекрестная энтропия (XC, log loss ), а для регрессии - это квадратичная потеря ошибок (SEL).
  • : количество слоев
  • : веса между слоем и , где вес между -м узлом в слое и -м узлом в слое [b]
  • : функции активации на уровне
    Для классификации последний уровень обычно является логистической функцией для двоичной классификации и softmax (softargmax) для классификации нескольких классов, в то время как для скрытых слоев это традиционно была сигмоидальная функция (логистическая функция или другие) на каждом узле (координата), но сегодня более разнообразен, с обычным выпрямителем ( рампа , ReLU ).

При выводе обратного распространения используются другие промежуточные величины; они вводятся по мере необходимости ниже. Члены смещения не обрабатываются специально, поскольку они соответствуют весу с фиксированным входным значением 1. Для целей обратного распространения ошибки конкретная функция потерь и функции активации не имеют значения, если они и их производные могут быть эффективно оценены.

Общая сеть представляет собой комбинацию композиции функций и умножения матриц :

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

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

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

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

Обратное распространение может быть выражено для простых сетей с прямой связью в терминах умножения матриц или, в более общем смысле, в терминах присоединенного графа .

Умножение матриц [ править ]

Для базового случая сети с прямой связью, где узлы на каждом уровне подключены только к узлам непосредственно следующего уровня (без пропуска каких-либо слоев), и есть функция потерь, которая вычисляет скалярные потери для окончательного вывода, обратное распространение может быть понимается просто умножением матриц. [c] По сути, обратное распространение вычисляет выражение для производной функции стоимости как произведение производных между каждым слоем слева направо - «назад» - с градиентом весов между каждым слоем, являющимся простой модификацией частичных произведений. («ошибка, распространяющаяся в обратном направлении»).

Для пары вход-выход потери составляют:

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

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

Этими членами являются: производная функции потерь; [d] производные функций активации; [e] и матрицы весов: [f]

Градиент - это транспонирование производной выхода по входу, поэтому матрицы транспонируются, а порядок умножения меняется на противоположный, но элементы остаются теми же:

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

Введение вспомогательной величины для частичных продуктов (умножение справа налево), интерпретируемой как «ошибка на уровне » и определяемой как градиент входных значений на уровне :

Обратите внимание, что это вектор, длина которого равна количеству узлов на уровне ; каждый компонент интерпретируется как «стоимость, относящаяся к (значению) этого узла».

Тогда градиент весов в слое равен:

Фактор заключается в том, что веса между уровнем и уровнем влияют на уровень пропорционально входам (активациям): входы фиксированы, веса меняются.

Можно легко вычислить рекурсивно как:

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

По сравнению с наивным вычислением форвардов (используя для иллюстрации):

есть два ключевых отличия от обратного распространения ошибки:

  1. С точки зрения вычислений, можно избежать очевидного дублирования слоев и не только.
  2. Умножение, начиная с - распространение ошибки в обратном направлении - означает, что каждый шаг просто умножает вектор ( ) на матрицы весов и производных активаций . Напротив, умножение вперед, начиная с изменений на более раннем уровне, означает, что каждое умножение умножает матрицу на матрицу . Это намного дороже и соответствует отслеживанию каждого возможного пути изменения в одном слое вперед к изменениям в слое (для умножения на, с дополнительными умножениями для производных активаций), который излишне вычисляет промежуточные величины того, как изменения веса влияют на значения скрытых узлов.

Присоединенный граф [ править ]

Для более общих графиков и других расширенных вариантов обратное распространение можно понимать в терминах автоматического дифференцирования , где обратное распространение является частным случаем обратного накопления (или «обратного режима»). [5]

Интуиция [ править ]

Мотивация [ править ]

Цель любого алгоритма контролируемого обучения - найти функцию, которая наилучшим образом отображает набор входных данных на их правильный выход. Мотивацией для обратного распространения является обучение многослойной нейронной сети таким образом, чтобы она могла изучать соответствующие внутренние представления, позволяющие изучить любое произвольное отображение ввода и вывода. [8]

Обучение как проблема оптимизации [ править ]

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

Простая нейронная сеть с двумя входными блоками (каждый с одним входом) и одним выходным блоком (с двумя входами)

Изначально перед тренировкой веса будут выставляться случайным образом. Затем нейрон учится на обучающих примерах , которые в данном случае состоят из набора кортежей, где и являются входными данными для сети, а t - правильным выходом (выход, который сеть должна выдавать с этими входными данными, когда она была обучена). Исходная сеть, заданная и , вычислит выходной сигнал y, который, вероятно, отличается от t (с учетом случайных весов). Функция потерь используется для измерения расхождения между целевым выходом t и вычисленным выходом y . Для регрессионного анализа Проблемы квадрата ошибка может быть использована в качестве функции потерь, для классификации категорично crossentropy может быть использовано.

В качестве примера рассмотрим проблему регрессии, используя квадратную ошибку как потерю:

где E - несоответствие или ошибка.

Рассмотрим сеть на одном тренировочном случае: . Таким образом, входные и равны 1 и 1 соответственно, а правильный выход, t равен 0. Теперь, если соотношение между выходом y сети по горизонтальной оси и ошибкой E по вертикальной оси, результатом будет парабола. Минимальная часть параболы соответствует выходным у которого сводит к минимуму ошибки E . Для одного учебного случая минимум также касается горизонтальной оси, что означает, что ошибка будет равна нулю, и сеть может выдать выходной сигнал y, который точно соответствует целевому выходу t.. Следовательно, проблема отображения входов в выходы может быть сведена к задаче оптимизации поиска функции, которая будет производить минимальную ошибку.

Поверхность ошибок линейного нейрона для одного обучающего случая

Однако выход нейрона зависит от взвешенной суммы всех его входов:

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

В этом примере после введения обучающих данных функция потерь становится

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

Один из часто используемых алгоритмов для поиска набора весов, который минимизирует ошибку, - это градиентный спуск . При обратном распространении вычисляется направление наискорейшего спуска функции потерь по сравнению с текущими синаптическими весами. Затем веса могут быть изменены в направлении наискорейшего спуска, и ошибка будет эффективно минимизирована.

Вывод [ править ]

Метод градиентного спуска включает вычисление производной функции потерь по весам сети. Обычно это делается с помощью обратного распространения ошибки. Предполагая, что один выходной нейрон, [h] функция ошибки в квадрате равна

куда

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

Для каждого нейрона его выход определяется как

где функция активации является нелинейной и дифференцируемым (даже если РЕЛ не в одной точке). Исторически используемая функция активации - это логистическая функция :

который имеет удобную производную:

Вход в нейрон - это взвешенная сумма выходов предыдущих нейронов. Если нейрон находится в первом слое после входного слоя, входной слой - это просто входы в сеть. Количество входных единиц нейрона составляет . Переменная обозначает вес между нейроном предыдущего слоя и нейроном текущего слоя.

Нахождение производной ошибки [ править ]

Схема искусственной нейронной сети для иллюстрации используемых здесь обозначений

Вычисление частной производной ошибки по весу выполняется с использованием цепного правила дважды:

В последнем множителе правой части вышеизложенного только один член в сумме зависит от , так что

Если нейрон находится в первом слое после входного, это справедливо .

Производная выхода нейрона по отношению к его входу - это просто частная производная функции активации:

что для случая функции логистической активации :

Это причина того, что обратное распространение требует, чтобы функция активации была дифференцируемой . (Тем не менее, функция активации ReLU , которая недифференцируема при 0, стала довольно популярной, например, в AlexNet )

Первый фактор легко оценить, находится ли нейрон в выходном слое, потому что тогда и

Если половина квадратной ошибки используется как функция потерь, мы можем переписать ее как

Однако, если он находится в произвольном внутреннем слое сети, поиск производной по менее очевиден.

Рассматривая функцию, в которой входами являются все нейроны, получающие входные данные от нейрона ,

и взяв полную производную по , получается рекурсивное выражение для производной:

Следовательно, производная по может быть вычислена, если известны все производные по выходным сигналам следующего слоя - ближайшим к выходному нейрону. [Обратите внимание, что если какой-либо из нейронов в наборе не был подключен к нейрону , они были бы независимы от них, и соответствующая частная производная при суммировании обратилась бы в нуль до 0.]

Подставляя уравнение. 2 , уравнение. 3 Уравнение 4 и Уравнение. 5 в уравнении. 1 получаем:

с

if - это логистическая функция, а ошибка - квадратная ошибка:

Для обновления веса с помощью градиентного спуска, нужно выбрать скорость обучения, . Изменение веса должно отражать влияние увеличения или уменьшения . Если , увеличение увеличивается ; наоборот, при увеличении уменьшается . Новое добавляется к старому весу и произведению скорости обучения и градиента, умноженному на гарантии, которые изменяются так, что всегда уменьшаются . Другими словами, в приведенном ниже уравнении всегда изменяется в сторону уменьшения:

Функция потери [ править ]

Функция потерь - это функция, которая отображает значения одной или нескольких переменных на действительное число, интуитивно представляя некоторую «стоимость», связанную с этими значениями. Для обратного распространения функция потерь вычисляет разницу между выходными данными сети и ожидаемыми выходными данными после того, как обучающий пример распространился по сети.

Предположения [ править ]

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

Пример функции потерь [ править ]

Позвольте быть векторам в .

Выберите функцию ошибки, измеряющую разницу между двумя выходами. Стандартный выбор - это квадрат евклидова расстояния между векторами и :

Затем функцию ошибок по обучающим примерам можно записать как среднее значение потерь по отдельным примерам:

Ограничения [ править ]

Градиентный спуск может найти локальный минимум вместо глобального.
  • Градиентный спуск с обратным распространением не гарантирует нахождение глобального минимума функции ошибок, а только локального минимума; кроме того, у него есть проблемы с переходом через плато в ландшафте функций ошибок. Эта проблема, вызванная невыпуклостью функций ошибок в нейронных сетях, долгое время считалась серьезным недостатком, но Yann LeCun et al. утверждают, что во многих практических задачах это не так. [10]
  • Обучение обратному распространению не требует нормализации входных векторов; однако нормализация может улучшить производительность. [11]
  • Обратное распространение требует, чтобы производные функций активации были известны во время проектирования сети.

История [ править ]

Термин обратное распространение и его общее использование в нейронных сетях было объявлено в Rumelhart, Hinton & Williams (1986a) , затем разработано и популяризировано в Rumelhart, Hinton & Williams (1986b) , но этот метод был независимо повторно открыт много раз, и у него было много предшественников. к 1960-м годам. [6] [12]

Основы непрерывного обратного распространения ошибки были получены в контексте теории управления Генри Дж. Келли в 1960 г. [13] и Артуром Э. Брайсоном в 1961 г. [14] [15] [16] [17] [18] Они использовали принципы динамического программирования . В 1962 году Стюарт Дрейфус опубликовал более простой вывод, основанный только на цепном правиле . [19] Брайсон и Хо описали его как метод многоступенчатой ​​динамической оптимизации системы в 1969 году. [20] [21] Обратное распространение было получено несколькими исследователями в начале 60-х годов.[17] и реализован для работы на компьютерах еще в 1970 году Сеппо Линнаинмаа . [22] [23] [24] Пол Вербос был первым в США, кто предложил использовать его для нейронных сетей после его глубокого анализа в своей диссертации 1974 года. [25] Хотя в 1970 году Линнаинмаа не применялся к нейронным сетям, он опубликовал общий метод автоматического дифференцирования (AD). [23] [24] Хотя это и вызывает большие споры, некоторые ученые считают, что на самом деле это был первый шаг к разработке алгоритма обратного распространения. [17] [18] [22] [26] В 1973 году Дрейфус адаптирует параметрыконтроллеров пропорционально градиентам ошибок. [27] В 1974 г. Вербос упомянул возможность применения этого принципа к искусственным нейронным сетям [25], а в 1982 г. он применил метод AD Линнаинмаа к нелинейным функциям. [18] [28]

Позже метод Вербоса был переоткрыт и описан в 1985 году Паркером [29] [30] и в 1986 году Румелхартом , Хинтоном и Уильямсом . [12] [30] [31] Рамелхарт, Хинтон и Уильямс экспериментально показали, что этот метод может генерировать полезные внутренние представления входящих данных в скрытых слоях нейронных сетей. [8] [32] [33] Ян Лекун , изобретатель архитектуры сверточной нейронной сети, предложил современную форму алгоритма обучения с обратным распространением нейронных сетей в своей докторской диссертации в 1987 году. В 1993 году Эрик Ван выиграл международный образец. конкурс признания через обратное распространение.[17] [34]

В 2000-х он потерял популярность, но вернулся в 2010-х, извлекая выгоду из дешевых и мощных вычислительных систем на базе графических процессоров . Это было особенно верно в исследованиях распознавания речи , машинного зрения , обработки естественного языка и изучения структуры языка (в которых оно использовалось для объяснения множества явлений, связанных с изучением первого [35] и второго языка [36] ).

Обратное распространение ошибок было предложено для объяснения таких компонентов ERP человеческого мозга, как N400 и P600 . [37]

См. Также [ править ]

  • Искусственная нейронная сеть
  • Биологическая нейронная сеть
  • Катастрофическое вмешательство
  • Ансамблевое обучение
  • AdaBoost
  • Переоснащение
  • Нейронное обратное распространение
  • Обратное распространение во времени

Заметки [ править ]

  1. ^ Используйтедля функции потерь, чтобы можнобыло использовать для количества слоев
  2. ^ Это следует из Nielsen (2015) и означает, что (слева) умножение на матрицусоответствует преобразованию выходных значений слояво входные значения слоя: столбцы соответствуют входным координатам, строки соответствуют выходным координатам.
  3. ^ Этот раздел в основном следует и резюмирует Nielsen (2015) .
  4. ^ Производная функции потерь является ковектором , поскольку функция потерь является скалярной функцией нескольких переменных.
  5. ^ Функция активации применяется к каждому узлу отдельно, поэтому производная - это просто диагональная матрица производной на каждом узле. Это часто представляется как произведение Адамара с вектором производных, обозначенное как, которое математически идентично, но лучше соответствует внутреннему представлению производных в виде вектора, а не диагональной матрицы.
  6. ^ Такумножение матрицы является линейной, производная от умножения на матрицу только матрица:.
  7. ^ Можно заметить, что многослойные нейронные сети используют нелинейные функции активации, поэтому пример с линейными нейронами кажется непонятным. Однако, хотя поверхность ошибок многослойных сетей намного сложнее, локально они могут быть аппроксимированы параболоидом. Поэтому линейные нейроны используются для простоты и облегчения понимания.
  8. ^ Может быть несколько выходных нейронов, и в этом случае ошибка равна квадрату нормы вектора разности.

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

  1. Goodfellow, Bengio & Courville, 2016 , стр. 200 , «Алгоритм обратного распространения (Rumelhart et al. , 1986a), часто называемый просто обратным распространением , ...»
  2. Goodfellow, Bengio & Courville, 2016 , стр. 200 , «Кроме того, обратное распространение часто неправильно понимают как специфическое для многослойных нейронных сетей, но в принципе оно может вычислять производные от любой функции»
  3. Goodfellow, Bengio & Courville, 2016 , стр. 214 , «Эту стратегию заполнения таблиц иногда называют динамическим программированием ».
  4. Goodfellow, Bengio & Courville, 2016 , стр. 200 , «Термин обратное распространение часто неправильно понимается как означающий весь алгоритм обучения для многослойных нейронных сетей. Обратное распространение относится только к методу вычисления градиента, в то время как другие алгоритмы, такие как стохастический градиентный спуск, используются для обучения с использованием этого градиент ".
  5. ^ Б Гудфелий, Bengio & Courville (2016 , стр.  217 -218), «описанная здесь алгоритм обратного распространения только один подход к автоматической дифференциации. Это частный случай более широкого класса методов , называемых накоплением обратного режима . "
  6. ^ a b Goodfellow, Bengio & Courville (2016 , стр.  221 ), «Эффективные приложения цепного правила, основанные на динамическом программировании, начали появляться в 1960-х и 1970-х годах, в основном для приложений управления (Kelley, 1960; Bryson and Denham, 1961 ; Dreyfus, 1962; Bryson and Ho, 1969; Dreyfus, 1973), но также и для анализа чувствительности (Linnainmaa, 1976) ... Идея, наконец, получила практическое воплощение после того, как была независимо повторно открыта различными способами (LeCun, 1985; Parker, 1985; Rumelhart et al. , 1986a). В книге Parallel Distributed Processing представлены результаты некоторых из первых успешных экспериментов с обратным распространением в главе (Rumelhart et al., 1986b), который внес большой вклад в популяризацию обратного распространения и положил начало очень активному периоду исследований в области многослойных нейронных сетей ».
  7. Goodfellow, Bengio & Courville (2016 , 6.5 обратное распространение и другие алгоритмы дифференцирования , стр. 200–220)
  8. ^ а б Румелхарт, Дэвид Э .; Хинтон, Джеффри Э .; Уильямс, Рональд Дж. (1986a). «Изучение представлений путем обратного распространения ошибок». Природа . 323 (6088): 533–536. Bibcode : 1986Natur.323..533R . DOI : 10.1038 / 323533a0 . S2CID  205001834 .
  9. ^ Нильсен (2015) , «Какие предположения нам нужно сделать относительно нашей функции затрат ... для того, чтобы можно было применить обратное распространение? Первое предположение, которое нам нужно, состоит в том, что функцию стоимости можно записать как среднее значение. ... над функциями затрат ... для отдельных примеров обучения ... Второе предположение о стоимости, которое мы делаем, состоит в том, что ее можно записать как функцию выходных данных нейронной сети ... "
  10. ^ ЛеКун, Янн; Бенхио, Йошуа; Хинтон, Джеффри (2015). «Глубокое обучение». Природа . 521 (7553): 436–444. Bibcode : 2015Natur.521..436L . DOI : 10,1038 / природа14539 . PMID 26017442 . S2CID 3074096 .  
  11. ^ Бакленд, Мэтт; Коллинз, Марк (2002). Методы ИИ для программирования игр . Бостон: Премьер Пресс. ISBN 1-931841-08-X.
  12. ^ а б Румельхарт; Хинтон; Уильямс (1986). «Изучение представлений путем обратного распространения ошибок» (PDF) . Природа . 323 (6088): 533–536. Bibcode : 1986Natur.323..533R . DOI : 10.1038 / 323533a0 . S2CID 205001834 .  
  13. ^ Келли, Генри Дж. (1960). «Градиентная теория оптимальных траекторий полета». Журнал ARS . 30 (10): 947–954. DOI : 10.2514 / 8.5282 .
  14. ^ Брайсон, Артур Э. (1962). «Градиентный метод оптимизации многоэтапных процессов распределения». Труды Гарвардского унив. Симпозиум на цифровых компьютерах и их приложения, 3-6 апреля 1961 . Кембридж: Издательство Гарвардского университета. OCLC 498866871 . 
  15. ^ Дрейфус, Стюарт Э. (1990). «Искусственные нейронные сети, обратное распространение и процедура градиента Келли-Брайсона». Журнал наведения, управления и динамики . 13 (5): 926–928. Bibcode : 1990JGCD ... 13..926D . DOI : 10.2514 / 3.25422 .
  16. ^ Мизутани, Эйдзи; Дрейфус, Стюарт; Нисио, Кеничи (июль 2000 г.). «О выводе обратного распространения MLP из формулы градиента оптимального управления Келли-Брайсона и ее применении» (PDF) . Труды Международной совместной конференции IEEE по нейронным сетям.
  17. ^ а б в г Шмидхубер, Юрген (2015). «Глубокое обучение в нейронных сетях: обзор». Нейронные сети . 61 : 85–117. arXiv : 1404,7828 . DOI : 10.1016 / j.neunet.2014.09.003 . PMID 25462637 . S2CID 11715509 .  
  18. ^ a b c Шмидхубер, Юрген (2015). «Глубокое обучение» . Scholarpedia . 10 (11): 32832. Bibcode : 2015SchpJ..1032832S . DOI : 10,4249 / scholarpedia.32832 .
  19. ^ Дрейфус, Стюарт (1962). «Численное решение вариационных задач». Журнал математического анализа и приложений . 5 (1): 30–45. DOI : 10.1016 / 0022-247x (62) 90004-5 .
  20. ^ Рассел, Стюарт ; Норвиг, Питер (1995). Искусственный интеллект: современный подход . Энглвудские скалы: Прентис-холл. п. 578. ISBN 0-13-103805-2. Самый популярный метод обучения в многослойных сетях называется обратным распространением. Впервые он был изобретен Брайсоном и Хо в 1969 году, но до середины 1980-х его более или менее игнорировали.
  21. ^ Брайсон, Артур Эрл; Хо, Ю-Чи (1969). Прикладное оптимальное управление: оптимизация, оценка и управление . Уолтем: Блейсделл. OCLC 3801 . 
  22. ^ a b Griewank, Андреас (2012). «Кто изобрел обратный способ дифференциации?». Истории оптимизации . Documenta Matematica, Extra Volume ISMP. С. 389–400. S2CID 15568746 . 
  23. ^ а б Сеппо Линнаинмаа (1970). Представление совокупной ошибки округления алгоритма в виде разложения Тейлора локальных ошибок округления. Магистерская работа (на финском языке), Univ. Хельсинки, 6–7.
  24. ^ a b Linnainmaa, Сеппо (1976). «Разложение Тейлора накопленной ошибки округления». BIT Численная математика . 16 (2): 146–160. DOI : 10.1007 / bf01931367 . S2CID 122357351 . 
  25. ^ a b Тезис и некоторую дополнительную информацию можно найти в его книге, Werbos, Paul J. (1994). Корни обратного распространения: от упорядоченных производных к нейронным сетям и политическому прогнозированию . Нью-Йорк: Джон Вили и сыновья. ISBN 0-471-59897-6.
  26. ^ Griewank, Andreas; Вальтер, Андреа (2008). Оценка производных: принципы и методы алгоритмической дифференциации, второе издание . СИАМ. ISBN 978-0-89871-776-1.
  27. ^ Дрейфус, Стюарт (1973). «Вычислительное решение задач оптимального управления с запаздыванием». IEEE Transactions по автоматическому контролю . 18 (4): 383–385. DOI : 10,1109 / tac.1973.1100330 .
  28. ^ Werbos, Paul (1982). «Применение достижений в нелинейном анализе чувствительности» (PDF) . Системное моделирование и оптимизация . Springer. С. 762–770.
  29. Перейти ↑ Parker, DB (1985). «Изучение логики». Центр вычислительных исследований в области экономики и менеджмента. Кембридж, Массачусетс: Массачусетский технологический институт. Cite journal requires |journal= (help)
  30. ^ a b Герц, Джон. (1991). Введение в теорию нейронных вычислений . Крог, Андерс., Палмер, Ричард Г. Редвуд-Сити, Калифорния: Addison-Wesley Pub. Co. p. 8. ISBN 0-201-50395-6. OCLC  21522159 .
  31. ^ Андерсон, Джеймс Артур, (1939- ...)., Изд. Розенфельд, Эдвард, изд. (1988). Нейрокомпьютерные основы исследований . MIT Press. ISBN 0-262-01097-6. OCLC  489622044 .CS1 maint: multiple names: authors list (link) CS1 maint: extra text: authors list (link)
  32. ^ Румелхарт, Дэвид Э .; Хинтон, Джеффри Э .; Уильямс, Рональд Дж. (1986b). «8. Изучение внутренних представлений путем распространения ошибок» . В Румелхарте, Дэвид Э .; Макклелланд, Джеймс Л. (ред.). Параллельная распределенная обработка: исследования микроструктуры познания . Том 1: Основы. Кембридж: MIT Press. ISBN 0-262-18120-7.
  33. ^ Alpaydin, Ethem (2010). Введение в машинное обучение . MIT Press. ISBN 978-0-262-01243-0.
  34. ^ Ван, Эрик А. (1994). «Прогнозирование временных рядов с использованием сети Connectionist с внутренними линиями задержки». В Вайгенд, Андреас С .; Гершенфельд, Нил А. (ред.). Прогнозирование временных рядов: прогнозирование будущего и понимание прошлого . Труды Семинара перспективных исследований НАТО по сравнительному анализу временных рядов. Том 15. Литература: Эддисон-Уэсли. С. 195–217. ISBN 0-201-62601-2. S2CID  12652643 .
  35. ^ Чанг, Франклин; Dell, Gary S .; Бок, Кэтрин (2006). «Становление синтаксическим». Психологический обзор . 113 (2): 234–272. DOI : 10.1037 / 0033-295x.113.2.234 . PMID 16637761 . 
  36. ^ Janciauskas, Marius; Чанг, Франклин (2018). «Вклад и возрастные вариации в изучении второго языка: учет коннекционистов» . Когнитивная наука . 42 : 519–554. DOI : 10.1111 / cogs.12519 . PMC 6001481 . PMID 28744901 .  
  37. ^ Фитц, Хартмут; Чанг, Франклин (2019). «Языковые ERP отражают обучение через распространение ошибок прогнозирования». Когнитивная психология . 111 : 15–52. DOI : 10.1016 / j.cogpsych.2019.03.002 . hdl : 21.11116 / 0000-0003-474D-8 . PMID 30921626 . S2CID 85501792 .  

Дальнейшее чтение [ править ]

  • Гудфеллоу, Ян ; Бенхио, Йошуа ; Курвиль, Аарон (2016). «6.5 Обратное распространение и другие алгоритмы дифференцирования» . Глубокое обучение . MIT Press. С. 200–220. ISBN 9780262035613.
  • Нильсен, Майкл А. (2015). «Как работает алгоритм обратного распространения ошибки» . Нейронные сети и глубокое обучение . Определение Press.
  • Маккафри, Джеймс (октябрь 2012 г.). "Обратное распространение нейронных сетей для программистов" . Журнал MSDN .
  • Рохас, Рауль (1996). «Алгоритм обратного распространения ошибки» (PDF) . Нейронные сети: систематическое введение . Берлин: Springer. ISBN 3-540-60505-3.

Внешние ссылки [ править ]

  • Учебник по нейронной сети обратного распространения в Викиверситете
  • Бернацкий, Мариуш; Влодарчик, Пшемыслав (2004). «Принципы обучения многослойной нейронной сети с использованием обратного распространения ошибки» .
  • Карпаты, Андрей (2016). «Лекция 4: Обратное распространение, нейронные сети 1» . CS231n . Стэнфордский университет - через YouTube .
  • "Что на самом деле делает обратное распространение?" . 3Синий1Коричневый . 3 ноября 2017 г. - через YouTube .