Что такое обратное распространение ошибки

Обратное распространение ошибки

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

Содержание

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

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

В таком случае, выходное значение нейрона — взвешенная сумма всех его входных значений:

где [math]w_1[/math] и [math]w_2[/math] — веса на ребрах, соединяющих входные вершины с выходной. Следовательно, ошибка зависит от весов ребер, входящих в нейрон. И именно это нужно менять в процессе обучения. Распространенный алгоритм для поиска набора весов, минимизирующего ошибку — градиентный спуск. Метод обратного распространения ошибки используется для вычисления самого «крутого» направления для спуска.

Дифференцирование для однослойной сети [ править ]

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

Множитель [math]\textstyle\frac<1><2>[/math] добавлен чтобы предотвратить возникновение экспоненты во время дифференцирования. На результат это не повлияет, потому что позже выражение будет умножено на произвольную величину скорости обучения (англ. learning rate).

[math]o_j = \varphi(\text_j) = \varphi\left(\sum_^n w_o_k\right).[/math]

Функция активации [math]\varphi[/math] нелинейна и дифференцируема. Одна из распространенных функций активации — сигмоида:

[math] \varphi(z) = \frac 1 <1+e^<-z>>[/math]

у нее удобная производная:

Находим производную ошибки [ править ]

Вычисление частной производной ошибки по весам [math]w_[/math] выполняется с помощью цепного правила:

Производная выходного значения нейрона [math]j[/math] по его входному значению — это просто частная производная функции активации (предполагается что в качестве функции активации используется сигмоида):

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

Первый множитель легко вычислим, если нейрон находится в выходном слое, ведь в таком случае [math]o_j = y[/math] и

Тем не менее, если [math]j[/math] произвольный внутренний слой сети, нахождение производной [math]E[/math] по [math]o_j[/math] менее очевидно.

Следовательно, производная по [math]o_j[/math] может быть вычислена если все производные по выходным значениям [math]o_\ell[/math] следующего слоя известны.

Если собрать все месте:

Алгоритм [ править ]

Недостатки алгоритма [ править ]

Несмотря на многочисленные успешные применения обратного распространения, оно не является универсальным решением. Больше всего неприятностей приносит неопределённо долгий процесс обучения. В сложных задачах для обучения сети могут потребоваться дни или даже недели, она может и вообще не обучиться. Причиной может быть одна из описанных ниже.

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

Паралич сети [ править ]

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

Локальные минимумы [ править ]

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

Источник

Знакомимся с методом обратного распространения ошибки

Всем привет! Новогодние праздники подошли к концу, а это значит, что мы вновь готовы делиться с вами полезным материалом. Перевод данной статьи подготовлен в преддверии запуска нового потока по курсу «Алгоритмы для разработчиков».

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

Метод обратного распространения ошибки – вероятно самая фундаментальная составляющая нейронной сети. Впервые он был описан в 1960-е и почти 30 лет спустя его популяризировали Румельхарт, Хинтон и Уильямс в статье под названием «Learning representations by back-propagating errors».

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

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

Определяем модель нейронной сети

Четырехслойная нейронная сеть состоит из четырех нейронов входного слоя, четырех нейронов на скрытых слоях и 1 нейрона на выходном слое.

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки
Простое изображение четырехслойной нейронной сети.

Входной слой

На рисунке нейроны фиолетового цвета представляют собой входные данные. Они могут быть простыми скалярными величинами или более сложными – векторами или многомерными матрицами.

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки
Уравнение, описывающее входы xi.

Первый набор активаций (а) равен входным значениям. «Активация» — это значение нейрона после применения функции активации. Подробнее смотрите ниже.

Скрытые слои

Конечные значения в скрытых нейронах (на рисунке зеленого цвета) вычисляются с использованием z l – взвешенных входов в слое I и a I активаций в слое L. Для слоев 2 и 3 уравнения будут следующими:

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

W 2 и W 3 – это веса на слоях 2 и 3, а b 2 и b 3 – смещения на этих слоях.

Активации a 2 и a 3 вычисляются с помощью функции активации f. Например, эта функция f является нелинейной (как сигмоид, ReLU и гиперболический тангенс) и позволяет сети изучать сложные паттерны в данных. Мы не будем подробно останавливаться на том, как работают функции активации, но, если вам интересно, я настоятельно рекомендую прочитать эту замечательную статью.

Давайте возьмем слой 2 и его параметры в качестве примера. Те же самые операции можно применить к любому слою нейронной сети.
W 1 – это матрица весов размерности (n, m), где n – это количество выходных нейронов (нейронов на следующем слое), а m – число входных нейронов (нейронов в предыдущем слое). В нашем случае n = 2 и m = 4.

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

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

x – входной вектор размерностью (m, 1), где m – число входных нейронов. В нашем случае m = 4.

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

b 1 – это вектор смещения размерности (n, 1), где n – число нейронов на текущем слое. В нашем случае n = 2.

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

Теперь внимательно посмотрите на иллюстрацию нейронной сети выше:

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

Выходной слой

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

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

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

Прямое распространение и оценка

Приведенные выше уравнения формируют прямое распространение по нейронной сети. Вот краткий обзор:

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

(1) – входной слой
(2) – значение нейрона на первом скрытом слое
(3) – значение активации на первом скрытом слое
(4) – значение нейрона на втором скрытом слое
(5) – значение активации на втором скрытом уровне
(6) – выходной слой

Заключительным шагом в прямом проходе является оценка прогнозируемого выходного значения s относительно ожидаемого выходного значения y.

Выходные данные y являются частью обучающего набора данных (x, y), где x – входные данные (как мы помним из предыдущего раздела).

Оценка между s и y происходит через функцию потерь. Она может быть простой как среднеквадратичная ошибка или более сложной как перекрестная энтропия.

Мы назовем эту функцию потерь С и обозначим ее следующим образом:

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

Где cost может равняться среднеквадратичной ошибке, перекрестной энтропии или любой другой функции потерь.

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

Обратное распространение ошибки и вычисление градиентов

Опираясь на статью 1989 года, метод обратного распространения ошибки:

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

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

Возникает один вопрос: Зачем вычислять градиенты?

Чтобы ответить на этот вопрос, нам сначала нужно пересмотреть некоторые понятия вычислений:

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

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

Градиент показывает, насколько необходимо изменить параметр x (в положительную или отрицательную сторону), чтобы минимизировать С.

Вычисление этих градиентов происходит с помощью метода, называемого цепным правилом.
Для одного веса (w jk )l градиент равен:

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

(1) Цепное правило
(2) По определению m – количество нейронов на l – 1 слое
(3) Вычисление производной
(4) Окончательное значение
Аналогичный набор уравнений можно применить к (b j )l
:

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

(1) Цепное правило
(2) Вычисление производной
(3) Окончательное значение

Общая часть в обоих уравнениях часто называется «локальным градиентом» и выражается следующим образом:

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

«Локальный градиент» можно легко определить с помощью правила цепи. Этот процесс я не буду сейчас расписывать.

Градиенты позволяют оптимизировать параметры модели:

Пока не будет достигнут критерий остановки выполняется следующее:

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

Заключительную часть этого раздела я хочу посвятить простому примеру, в котором мы рассчитаем градиент С относительно одного веса (w 22 )2.

Давайте увеличим масштаб нижней части вышеупомянутой нейронной сети:

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

Визуальное представление обратного распространения в нейронной сети
Вес (w 22 )2 соединяет (a 2 )2 и (z 2 )2, поэтому вычисление градиента требует применения цепного правила на (z 2 )3 и (a 2 )3:

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

Вычисление конечного значения производной С по (a 2 )3 требует знания функции С. Поскольку С зависит от (a 2 )3, вычисление производной должно быть простым.

Я надеюсь, что этот пример сумел пролить немного света на математику, стоящую за вычислением градиентов. Если захотите узнать больше, я настоятельно рекомендую вам посмотреть Стэндфордскую серию статей по NLP, где Ричард Сочер дает 4 замечательных объяснения обратного распространения.

Заключительное замечание

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

На этом все. Приглашаем всех на бесплатный вебинар по теме «Дерево отрезков: просто и быстро».

Источник

Сверточная нейронная сеть, часть 2: обучение алгоритмом обратного распространения ошибки

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

Обучение сверточной нейронной сети

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

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

Алгоритм обратного распространения ошибки

Для обучения описанной нейронной сети был использован алгоритм обратного распространения ошибки (backpropagation). Этот метод обучения многослойной нейронной сети называется обобщенным дельта-правилом. Метод был предложен в 1986 г. Румельхартом, Макклеландом и Вильямсом. Это ознаменовало возрождение интереса к нейронным сетям, который стал угасать в начале 70-х годов. Данный алгоритм является первым и основным практически применимым для обучения многослойных нейронных сетей.

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

Основные соотношения метода обратного распространения ошибки получены при следующих обозначениях:

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

Величина ошибки определяется по формуле 2.8 среднеквадратичная ошибка:

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

Неактивированное состояние каждого нейрона j для образа p записывается в виде взвешенной суммы по формуле 2.9:

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

Выход каждого нейрона j является значением активационной функции

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки, которая переводит нейрон в активированное состояние. В качестве функции активации может использоваться любая непрерывно дифференцируемая монотонная функция. Активированное состояние нейрона вычисляется по формуле 2.10:

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

В качестве метода минимизации ошибки используется метод градиентного спуска, суть этого метода сводится к поиску минимума (или максимума) функции за счет движения вдоль вектора градиента. Для поиска минимума движение должно быть осуществляться в направлении антиградиента. Метод градиентного спуска в соответствии с рисунком 2.7.

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

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

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

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

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

Ошибка нейрона Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкиобычно записывается в виде символа δ (дельта). Для выходного слоя ошибка определена в явном виде, если взять производную от формулы 2.8, то получим t минус y, то есть разницу между желаемым и полученным выходом. Но как рассчитать ошибку для скрытых слоев? Для решения этой задачи, как раз и был придуман алгоритм обратного распространения ошибки. Суть его заключается в последовательном вычислении ошибок скрытых слоев с помощью значений ошибки выходного слоя, т.е. значения ошибки распространяются по сети в обратном направлении от выхода к входу.

Ошибка δ для скрытого слоя рассчитывается по формуле 2.13:
Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

Расчет ошибки на подвыборочном слое

Расчет ошибки на подвыборочном слое представляется в нескольких вариантах. Первый случай, когда подвыборочный слой находится перед полносвязным, тогда он имеет нейроны и связи такого же типа, как в полносвязном слое, соответственно вычисление δ ошибки ничем не отличается от вычисления δ скрытого слоя. Второй случай, когда подвыборочный слой находится перед сверточным, вычисление δ происходит путем обратной свертки. Для понимания обратно свертки, необходимо сперва понять обычную свертку и то, что скользящее окно по карте признаков (во время прямого распространения сигнала) можно интерпретировать, как обычный скрытый слой со связями между нейронами, но главное отличие — это то, что эти связи разделяемы, то есть одна связь с конкретным значением веса может быть у нескольких пар нейронов, а не только одной. Интерпретация операции свертки в привычном многослойном виде в соответствии с рисунком 2.8.

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки
Рисунок 2.8 — Интерпретация операции свертки в многослойный вид, где связи с одинаковым цветом имеют один и тот же вес. Синим цветом обозначена подвыборочная карта, разноцветным – синаптическое ядро, оранжевым – получившаяся свертка

Теперь, когда операция свертки представлена в привычном многослойном виде, можно интуитивно понять, что вычисление дельт происходит таким же образом, как и в скрытом слое полносвязной сети. Соответственно имея вычисленные ранее дельты сверточного слоя можно вычислить дельты подвыборочного, в соответствии с рисунком 2.9.
Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки
Рисунок 2.9 — Вычисление δ подвыборочного слоя за счет δ сверточного слоя и ядра

Обратная свертка – это тот же самый способ вычисления дельт, только немного хитрым способом, заключающийся в повороте ядра на 180 градусов и скользящем процессе сканирования сверточной карты дельт с измененными краевыми эффектами. Простыми словами, нам необходимо взять ядро сверточной карты (следующего за подвыборочным слоем) повернуть его на 180 градусов и сделать обычную свертку по вычисленным ранее дельтам сверточной карты, но так чтобы окно сканирования выходило за пределы карты. Результат операции обратной свертки в соответствии с рисунком 2.10, цикл прохода обратной свертки в соответствии с рисунком 2.11.
Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки
Рисунок 2.10 — Результат операции обратной свертки

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки
Рисунок 2.11 — Повернутое ядро на 180 градусов сканирует сверточную карту

Расчет ошибки на сверточном слое

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

Заключение

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

Источники

Обратное распространение ошибки в сверточных слоях
раз и два

Еще можно почитать в РГБ диссертацию Макаренко: АЛГОРИТМЫ И ПРОГРАММНАЯ СИСТЕМА КЛАССИФИКАЦИИ

Источник

Алгоритм обучения многослойной нейронной сети методом обратного распространения ошибки (Backpropagation)

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

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

Теоретическая часть

Данный материал предполагает знакомство с основами нейронных сетей, однако я считаю возможным ввести читателя в курс темы без излишних мытарств по теории нейронных сетей. Итак, для тех, кто впервые слышит словосочетание «нейронная сеть», предлагаю воспринимать нейронную сеть в качестве взвешенного направленного графа, узлы ( нейроны ) которого расположены слоями. Кроме того, узел одного слоя имеет связи со всеми узлами предыдущего слоя. В нашем случае у такого графа будут иметься входной и выходной слои, узлы которых выполняют роль входов и
выходов соответственно. Каждый узел ( нейрон ) обладает активационной функцией — функцией, ответственной за вычисление сигнала на выходе узла ( нейрона ). Также существует понятие смещения, представляющего из себя узел, на выходе которого всегда появляется единица. В данной статье мы будем рассматривать процесс обучения нейронной сети, предполагающий наличие «учителя», то есть процесс обучения, при котором обучение происходит путем предоставления сети последовательности обучающих примеров с правильными откликами.

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

Архитектура

На рисунке 1 показана многослойная нейронная сеть с одним слоем скрытых нейронов ( элементы Z ).

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

Описание алгоритма

Алгоритм, представленный далее, применим к нейронной сети с одним скрытым слоем, что является допустимой и адекватной ситуацией для большинства приложений. Как уже было сказано ранее, обучение сети включает в себя три стадии: подача на входы сети обучающих данных, обратное распространение ошибки и корректировка весов. В ходе первого этапа каждый входной нейрон Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкиполучает сигнал и широковещательно транслирует его каждому из скрытых нейронов Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки. Каждый скрытый нейрон затем вычисляет результат его активационной функции ( сетевой функции ) и рассылает свой сигнал Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкивсем выходным нейронам. Каждый выходной нейрон Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки, в свою очередь, вычисляет результат своей активационной функции Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки, который представляет собой ничто иное, как выходной сигнал данного нейрона для соответствующих входных данных. В процессе обучения, каждый нейрон на выходе сети сравнивает вычисленное значение Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкис предоставленным учителем Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки( целевым значением ), определяя соответствующее значение ошибки для данного входного шаблона. На основании этой ошибки вычисляется Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки. Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкииспользуется при распространении ошибки от Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкидо всех элементов сети предыдущего слоя ( скрытых нейронов, связанных с Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки), а также позже при изменении весов связей между выходными нейронами и скрытыми. Аналогичным образом вычисляется Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкидля каждого скрытого нейрона Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки. Несмотря на то, что распространять ошибку до входного слоя необходимости нет, Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкииспользуется для изменения весов связей между нейронами скрытого слоя и входными нейронами. После того как все Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкибыли определены, происходит одновременная корректировка весов всех связей.

Обозначения:

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

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкиВходной вектор обучающих данных Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки
Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкиВектор целевых выходных значений, предоставляемых учителемЧто такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки
Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкиСоставляющая корректировки весов связей Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки, соответствующая ошибке выходного нейрона Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки; также, информация об ошибке нейрона Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки, которая распространяется тем нейронам скрытого слоя, которые связаны с Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки.
Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкиСоставляющая корректировки весов связейЧто такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки, соответствующая распространяемой от выходного слоя к скрытому нейрону Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкиинформации об ошибке.
Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкиСкорость обучения.
Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкиНейрон на входе с индексом i. Для входных нейронов входной и выходной сигналы одинаковы — Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки.
Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкиСмещение скрытого нейрона j.
Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкиСкрытый нейрон j; Суммарное значение подаваемое на вход скрытого элемента Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкиобозначается Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки: Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки
Сигнал на выходе Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки( результат применения к Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкиактивационной функции ) обозначается Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки: Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки
Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкиСмещение нейрона на выходе.
Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкиНейрон на выходе под индексом k; Суммарное значение подаваемое на вход выходного элемента Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкиобозначается Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки: Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки. Сигнал на выходе Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки( результат применения к Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкиактивационной функции ) обозначается Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки:

Функция активации

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

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки
Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

Алгоритм обучения

Алгоритм обучения выглядит следующим образом:

Шаг 0.

Инициализация весов ( веса всех связей инициализируются случайными небольшими значениями ).

Шаг 1.

До тех пор пока условие прекращения работы алгоритма неверно, выполняются шаги 2 — 9.

Шаг 2.

Для каждой пары < данные, целевое значение >выполняются шаги 3 — 8.

Распространение данных от входов к выходам:
Шаг 3.

Каждый входной нейрон Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкиотправляет полученный сигнал Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкивсем нейронам в следующем слое ( скрытом ).

Шаг 4.

Каждый скрытый нейрон Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкисуммирует взвешенные входящие сигналы: Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкии применяет активационную функцию: Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкиПосле чего посылает результат всем элементам следующего слоя ( выходного ).

Шаг 5.

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

Обратное распространение ошибки:
Шаг 6.

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

Шаг 7.

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

Шаг 8. Изменение весов.

Каждый выходной нейрон Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкиизменяет веса своих связей с элементом смещения и скрытыми нейронами: Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки
Каждый скрытый нейрон Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкиизменяет веса своих связей с элементом смещения и выходными нейронами: Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

Шаг 9.

Проверка условия прекращения работы алгоритма.

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

Выбор первоначальных весов и смещения

Введем обозначения:
Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкиколичество входных нейронов
Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкиколичество скрытых нейронов
Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибкифактор масштабирования:
Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки
Процедура состоит из следующих простых шагов:
Для каждого скрытого нейрона Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки:
инициализировать его вектор весов ( связей с входными нейронами ):

Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

вычислить Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки
переинициализировать веса: Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки
задать значение смещения: Что такое обратное распространение ошибки. Смотреть фото Что такое обратное распространение ошибки. Смотреть картинку Что такое обратное распространение ошибки. Картинка про Что такое обратное распространение ошибки. Фото Что такое обратное распространение ошибки

Практическая часть

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

Интерфейс нейронных связей представлен ниже, каждая связь хранит вес и указатель на нейрон:

Каждая активационная функция наследует от абстрактного класса, реализуя саму функцию и производную:

За производство нейронов ответственна нейронная фабрика:

Сама нейронная сеть хранит указатели на нейроны, организованные
слоями ( вообще, указатели на нейроны хранятся в векторах, которые
нужно заменить на объекты-слои ), включает в себя абстрактную
фабрику нейронов, а также алгоритм обучения сети.

И, наконец, сам интерфейс класса, ответственного за обучение сети:

Весь код доступен на github: Sovietmade/NeuralNetworks

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

Источник

Добавить комментарий

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