Познакомимся С Методом Обратного Распространения Ошибки

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

Перевод данной статьи подготовлен в преддверии запуска нового потока на курсе.

«Алгоритмы для разработчиков» .

Идти!

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

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

Впервые он был описан в 1960-х годах и популяризирован почти 30 лет спустя Румельхартом, Хинтоном и Уильямсом в статье под названием «Изучение представлений с помощью ошибок обратного распространения» .

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

Проще говоря, после каждого прохода по сети обратное распространение ошибки делает проход в противоположном направлении и корректирует параметры модели (веса и смещения).

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

Я считаю, что это поможет читателю понять, как работает обратное распространение ошибки, а также его важность.



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

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



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

Простая иллюстрация четырехслойной нейронной сети.



Входной слой

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

Это могут быть простые скалярные величины или более сложные — векторы или многомерные матрицы.



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

Уравнение, описывающее входные данные xi. Первый набор активаций (а) равен входным значениям.

«Активация» — значение нейрона после применения функции активации.

Подробности смотрите ниже.



Скрытые слои

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

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

Для l = 3:

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

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

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

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

Если вы присмотритесь, то увидите, что все x, z 2 2 , з 3 3 , Вт 1 , Вт 2 1 и б 2 не имеют индексов, показанных на рисунке четырехслойной нейронной сети.

Дело в том, что мы объединили все значения параметров в матрицы, сгруппированные по слоям.

Это стандартный способ работы с нейронными сетями, и он достаточно удобен.

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

В качестве примера возьмем слой 2 и его параметры.

Те же операции можно применить к любому слою нейронной сети.

Вт 1 представляет собой матрицу весов размерности (н, м) , Где н — количество выходных нейронов (нейронов следующего слоя), а м – количество входных нейронов (нейронов предыдущего слоя).

В нашем случае п=2 И м = 4 .



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

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

Икс – входной вектор с размерностью ( м , 1), где м – количество входных нейронов.

В нашем случае м = 4.

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

б 1 – вектор размерного смещения ( н , 1), где н – количество нейронов на текущем слое.

В нашем случае н = 2.

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

Следуя уравнению для z 2 мы можем использовать приведенные выше определения W 1 , х и б 1 чтобы получить уравнение z 2 :

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

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

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

Как видите, з.

2 может быть выражено через z 1 2 и г 2 2 , где z 1 2 и г 2 2 – сумма произведений каждого входного значения x я соответствующему весу W ij 1 .

Это приводит к тому же уравнению для z 2 и доказывает, что матричные представления z 2 2 , з 3 и 3 – верны.



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

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

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

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

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

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



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

Приведенные выше уравнения формируют прямое распространение через нейронную сеть.

Вот краткий обзор:

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

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

с относительно ожидаемого выходного значения й .

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

Оценка между с И й происходит через функцию потерь.

Это может быть так же просто, как Средняя квадратическая ошибка или более сложный, например перекрестная энтропия .

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

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

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

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

й .

Это происходит с помощью метода обратного распространения ошибки.



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

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

.

И .

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

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

Степень коррекции определяется градиентами функции потерь по этим параметрам.

Возникает один вопрос: Зачем рассчитывать градиенты ? Чтобы ответить на этот вопрос, нам сначала нужно пересмотреть некоторые вычислительные концепции: Градиент функции C(x 1 , Икс 2 , …, Икс м ) в точке x называется вектор частных производных От до Икс .



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

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

Икс ( входное значение ).

Другими словами, производная говорит нам, в каком направлении движется C. Градиент показывает, насколько нужно изменить параметр.

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

правило .

За одну гирю (в джк ) л градиент:

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

(1) Правило цепочки (2) По определению m — количество нейронов на l – 1 слое.

(3) Расчет производной (4) Окончательное значение Аналогичную систему уравнений можно применить к (b дж ) л :

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

(1) Правило цепочки (2) Расчет производной (3) Окончательное значение Общая часть в обоих уравнениях часто называется «локальным градиентом» и выражается следующим образом:

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

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

Я не буду сейчас описывать этот процесс.

Градиенты позволяют оптимизировать параметры модели: До достижения критерия остановки выполняются следующие действия:

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

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

Эpsilon (e) — скорость обучения.

Он определяет эффект градиента.

ш И б – матричные представления весов и смещений.

Производная от C по ш или б может быть рассчитан с использованием частных производных C относительно отдельных весов или смещений.

Условие завершения выполняется, как только функция потерь минимизируется.

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

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

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

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

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

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

Я надеюсь, что этот пример сумел пролить свет на математику расчета градиентов.

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

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



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

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

Удачи в вашем путешествии по глубокому обучению! Вот и все.

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

Теги: #математика #Алгоритмы #Большие данные #наука о данных #искусственный интеллект #глубокое обучение #алгоритмы #Математика

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.