«Хорошие люди делают ошибки, учатся на них и в следующий раз стараются свести к минимуму эти ошибки, пока не перестанут совершаться новые». - (Цитата с обратным распространением)

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

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

Как объяснено в аннотации к этой статье,

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

Базовая терминология, связанная с обратным распространением информации

Состав функций: это операция, которая принимает две функции f и g и создает функцию h такую, что h (x) = g ( f (x)). В этой операции функция g применяется к результату применения функции f к x.

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

Цепное правило: это правило дифференциации помогает нам дифференцировать композицию функций и определяется как f (g (x)) is f ’(g (x)) ⋅g’ (x).

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

Давайте разберемся с мемоизацией, используя ряд Фибоначчи,

Ряд Фибоначчи: - Сумма двух предыдущих членов, если первый член = 0, а второй член = 1. Например, 0,1,1,2,3,5,8 ……

Следовательно, вкратце fib (n) = fib (n-1) + fib (n-2).

Полностью подключенная нейронная сеть или Полностью подключенный M.L.P: - Нейронная сеть, которая имеет всевозможные комбинации соединений между нейронами, называется F.C.N.N. Обратите внимание, что соединения всегда выполняются от одного слоя к другому, а не внутри слоев.

Обозначения, используемые для понимания М.Л.П.

Эти функции f являются функциями активации, такими как Relu или Sigmoid на каждом нейроне.

Выходы в M.L.P

Вес в M.L.P

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

Позвольте мне пояснить обозначение этих весов, что очень важно для понимания обратного распространения ошибки, на примере.

Следовательно, This W¹ (Вес на уровне 1) является матрицей размером 4 * 3. и аналогичным образом мы можем вычислить для всех скрытых слоев.

Проблема оптимизации: -Наша цель в машинном обучении всегда сводить к минимуму разницу между нашим прогнозируемым результатом (y ^) и фактическим результатом (y). Эта разница также называется функцией потерь / затрат и часто обозначается буквой «L».

Потери = прогнозируемый выпуск (y ^) - фактический выпуск (y).

Мы можем использовать среднеквадратичную ошибку (MSE) или просто квадрат ошибки. Я буду использовать квадратичную ошибку в L, т. Е.

L = (Фактический выход (yi) - Прогнозируемый результат (yi ^)) ².

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

Мы знаем, что из линейной регрессии

Градиентный спуск: - Для решения указанной выше задачи оптимизации нам потребуется алгоритм оптимизации, который называется Градиентный спуск. Это используется для минимизации функции стоимости (L). Он обновляет различные параметры модели машинного обучения, чтобы минимизировать функцию стоимости с помощью правила обновления.

Это «r» или «η» (эта) называется размером шага или скоростью обучения и всегда положительно.

Конвергенция в правиле обновления: -

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

Действия по решению проблемы оптимизации

1) Определите функцию потерь L, которая

Для простоты давайте проигнорируем термин Regularizor.

Включение значения прогнозируемого результата в задачу оптимизации

Здесь W - это W¹, а также W² и W³ (матричное представление весов), как показано на предыдущей диаграмме.

2) Инициализация параметров обучения, т. е. весов

выполняются с использованием случайной инициализации.

3) Градиентный спуск теперь продолжайте изменять эти веса с помощью правила обновления.

4) Выполните обновление до схождения

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

Как вычислить эту производную?

Теперь давайте рассмотрим еще один пример, чтобы лучше понять.

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

Используя вышеупомянутую концепцию 2, можно рассчитать для ∂k / ∂W¹ 11,

Мы храним 7 производных, поэтому для мемоизации требуется немного больше памяти, но это значительно ускоряет работу. Посмотрите, ∂L / ∂O31 используется во всех 20 весах, но мы вычислили 1 раз, сохранили результаты и использовали этот сохраненный результат для остальных 19 весов.

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

Обучение M.L.P

«Обучение нейронной сети означает нахождение лучших весов на ребрах или соединениях с использованием наших обучающих данных». Теперь следующий вопрос, который приходит нам в голову, - каковы эти лучшие веса? Лучшие веса означают веса, которые минимизируют наши L (потери). Когда наши обучающие данные передаются из нашей модели впервые, это часто называется «первая эпоха». Epoch по сути означает передачу всех обучающих данных в нашу модель. После каждой эпохи мы подсчитываем наши потери и смотрим, насколько близко мы подошли к нашему фактическому объему производства. Это называется прямое распространение.

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

Следовательно, обратное распространение вычисляет ошибку на выходе, а затем распределяет этот вывод обратно по сетевому уровню. Этот процесс вперед и назад выполняется несколько раз (или несколько эпох), чтобы получить минимум L.

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

В двух словах о обратном распространении информации

Обратное распространение требует двух шагов

а) Инициализация наших параметров обучения, то есть наших весов на соединениях

б) Эпохи: прямое распространение, затем вычисление потерь, а затем вычисление производных с использованием цепного правила и мемоизации. Обновление весов с использованием обратного распространения.

Повторите шаг b) несколько раз до схождения.

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

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

Если вам понравилась моя работа и вы хотите больше слушать, хлопайте в ладоши в этой статье, а также подписывайтесь на меня, чтобы получать обновления, а также подключайтесь ко мне в LinkedIn через: - https://www.linkedin.com/in/anirudh-pandey-b69a698b /

Использованная литература :-

а) Изучение представлений путем обратного распространения ошибок https://www.nature.com/articles/323533a0