Эта статья является 3-й/9-й в полной серии:TensorFlow от начального до профессионального
- История глубокого обучения
- Функция активации для глубокого обучения
- Полное понимание алгоритма BP: вывод принципа + демонстрация данных + бой проекта (Часть 1)
- Введение и установка Tensorflow
- Tensorflow от входа до мастерства — основные операции Tensorflow
- Обзор сверточных нейронных сетей
- История развития, принцип и реализация свертки на основе TensorFlow
- Введение в TensorFlow Convolutional Neural Network Набор данных для распознавания рукописных цифр
- 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 (не применимую ни к какой сторонней инфраструктуре глубокого обучения), так что следите за обновлениями! Если у вас есть какие-либо вопросы, добро пожаловать к нам, чтобы общаться!