обратное распространение - Backpropagation


Из Википедии, свободной энциклопедии

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

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

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

мотивация

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

Интуиция

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

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

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

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

где Е это расхождение или ошибка.

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

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

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

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

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

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

Вывод для однослойных сетей

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

где

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

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

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

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

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

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

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

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

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

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

Производная от выхода нейрона по отношению к его входу является просто частной производной функции активации (при условии , Вот что логистическая функция используется):

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

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

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

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

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

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

Собираем все вместе:

с

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

функция потерь

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

Предположения

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

Функция Пример потери

Пусть векторы в .

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

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

Ограничения

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

история

Основы непрерывного обратного распространения были получены в контексте теории управления по Генри Дж Келли в 1960 году и Arthur E. Брайсон в 1961 году они использовали принципы динамического программирования . В 1962 году Стюарт Дрейфус опубликовал более простой вывод , основанный только на цепного правила . Брайсон и Хо описали его в качестве многоступенчатой динамической системы методы оптимизации в 1969 году.

Обратное распространение было получено несколько исследователями в начале 60 -х лет и реализовано для запуска на компьютерах в начале 1970 г. Сеппо Linnainmaa Примерами 1960 исследователи включают Arthur E. Брайсон и -Е-Ч Хи в 1969 году Поль Werbos были первым в США , чтобы предположить , что он может быть использован для нейронных сетей после анализа его в глубине в его 1974 докторской диссертации. В 1986 году в рамках работы David E. Rumelhart , Джеффри Э. Хинтон , Рональд Дж Уильямс и Джеймс McClelland , обратное распространение получили признание.

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

В 1973 году Дрейфус используется алгоритм обратного распространения для адаптации параметров контроллеров пропорционально градиентам ошибок. В 1974 годе Werbos упомянул о возможности применения этого принципа в искусственные нейронные сети, а в 1982 году он применил метод AD Linnainmaa к нейронным сетям в пути , который используется сегодня.

В 1986 году Rumelhart , Хинтон и Williams экспериментально показал , что этот метод может генерировать полезные внутренние представления входных данных в скрытых слоях нейронных сетей. В 1993 году Ван был первым , чтобы выиграть международный конкурс распознавания образов с помощью обратного распространения.

В 2000 - х годах он попал в немилость, но вернулся в 2010s, извлечение преимуществ из дешевых, мощных GPU -На вычислительных систем. Это было особенно актуально в языковой структуру учебного исследования, где Коннекшионистские модели , использующие этот алгоритм уже были в состоянии объяснить целый ряд явлений , связанные с обучением первого и второго языком.

Смотрите также

Заметки

Рекомендации

внешняя ссылка