Полное понимание алгоритма BP: вывод принципа + демонстрация данных + бой проекта (Часть 1)

искусственный интеллект

Эта статья является 3-й/9-й в полной серии:TensorFlow от начального до профессионального

Алгоритм обратного распространения ошибки (сокращенно алгоритм BP) — важная идеологическая основа глубокого обучения, а также обязательные базовые знания для начинающих! Эта статья надеется, что читатели смогут полностью понять принцип и процесс расчета алгоритма BP с четким контекстом и подробным описанием.

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

Читатели в процессе обучения, у которых есть какие-либо вопросы, приглашаем присоединиться к нашей группе обмена (отсканируйте QR-код в конце статьи, чтобы присоединиться) и обсудить с вами!

1.BPВывод алгоритма

Рис. 1. Простая трехслойная нейронная сеть.

На рисунке 1 показана простая трехслойная (два скрытых слоя, один выходной слой) структура нейронной сети. Предположим, мы используем эту нейронную сеть для решения задачи двух классов. Мы даем этой сети входную выборку и получаем результат посредством прямой операции. . Диапазон выходного значения равен 0. Например, чем ближе значение к 0, тем больше вероятность того, что образец относится к классу «0», и наоборот.

1.1Расчет прямого распространения

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

Входные образцы:

Параметры сети первого уровня:

Параметры сети второго уровня:

Параметры сети третьего уровня:

1.1.1Вычисление первого скрытого слоя

Рис. 2 Расчет первого скрытого слоя

1.1.2Расчет второго скрытого слоя

Рисунок 3 Расчет второго скрытого слоя

1.1.3Вычисление выходного слоя

Рис. 4. Слой вывода вычислений

который:

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

2.Графический алгоритм БП

Рисунок 5 Графический алгоритм BP

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

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

Параметры сети первого уровня:

Параметры сети второго уровня:

Параметры сети третьего уровня:

2.1прямое распространение

Сначала мы инициализируем параметры нейронной сети и вычисляем первый слой нейронов:

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

 

 

Затем рассчитайте погрешность второго скрытого слоя по формуле расчета погрешности:

Наконец, вычислите погрешность первого скрытого слоя:

 

2.3обновить параметры

В предыдущем разделе мы рассчитали погрешность каждого слоя.Теперь нам нужно использовать погрешность и градиент каждого слоя для обновления параметров каждого слоя.Формулы обновления весаW и смещенияb выглядят следующим образом:

Обычно обновление веса W добавляет член регуляризации, чтобы избежать переобучения.Здесь, чтобы упростить расчет, мы опускаем член регуляризации. В приведенной выше формуле — скорость обучения, и мы устанавливаем ее значение равным 0,1. Расчет обновления параметра относительно прост, а метод расчета для каждого слоя одинаков, поэтому в этой статье демонстрируется только обновление параметра первого скрытого слоя:

3.резюме

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