image
Главная // Курс по ИИ для начинающих // Урок 2.4. Обучение нейронной сети прямого распространения. Метод обратного распространения ошибки

Урок 2.4. Обучение нейронной сети прямого распространения. Метод обратного распространения ошибки

Нейронные сети состоят из нейронов объединенных синаптическими связями в вычислительные структуры.
Пример такой структуры является многослойная искусственная нейронная сеть прямого распространения. По-другому такие структуры называют многослойными персептронами.

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

Нейронная сеть строит сложную функциональную зависимость выхода от входа.

Что такое многослойная нейронная сеть прямого распространения?

На этот вопрос мы уже ответили в предыдущем уроке (ссылка).

Процесс обучения нейронной сети

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

Способы обучения нейронной сети

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


Как происходит обучение нейронных сетей

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

Возьмем для примера температуру воздуха в Москве в июле в разбивке по дням за 10 лет. 

Примем что на вход сети подаются значения температуры сегодня.
На выходе - значения температуры завтра.

Во время обучения вы подаете на вход сети значения температуры сегодня.  На выходе получаете от нее некие значения и сравниваете с эталонным образцом. Например, значения температуры воздуха в Москве 19.07.2020 (вход) и 20.07.2020 (выход). 
На выходе происходит расчет ошибки нейронной сети. Если ошибка велика, происходит подстройка весовых коэффициентов всех связей между нейронами НС на всех промежуточных слоях.

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

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

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

Основные термины, используемые при обучении нейронных сетей

Обучающая выборка - множество примеров, относящихся к одному объекту при определенных условиях его исследования.

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

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

Зачем нужны нейроны смещения

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

Зачем нужны нейроны смещения    

С практической точки зрения

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

Алгоритмы обучения нейронных сетей с учителем

1.) Алгоритмы локальной оптимизации с вычислением частных производных первого порядка:

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

2.) Алгоритмы локальной оптимизации с вычислением частных производных первого и второго порядка:

  • метод Ньютона,
  • методы оптимизации с разреженными матрицами Гессе,
  • квазиньютоновские методы,
  • метод Гаусса-Ньютона,
  • метод Левенберга-Марквардта и др.

3) Стохастические алгоритмы оптимизации:

  • поиск в случайном направлении,
  • имитация отжига,
  • метод Монте-Карло (численный метод статистических испытаний).


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

В 1975 году Пол Вербос разработал метод обратного распространения ошибки (BackPropagation). Этот метод лег в основу одноименного алгоритма.

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

  1. Исходные значения весовых коэффициентов задаются случайными значениями.
  2. Расчет значений всех выходов нейронов всех слоев.
  3. Расчет погрешности между выходным значением нейронной сети и эталонным образцом обучающей выборки.
  4. По полученной погрешности рассчитываются так называемые невязки нейронов выходного (последнего) слоя сети. Невязкой называют величину ошибки (расхождения) приближённого равенства.
  5. Рассчитываются невязки нейронов всех слоев в обратной последовательности начиная с предпоследнего.
  6. Расчет весовых коэффициентов связей между нейронами.
  7. Повторение цикла с шага 2 до тех пор пока не будет выполнено одно из условий:
  • исчерпано заданное предельное количество эпох обучения;
  • достигнут удовлетворительный уровень ошибки по всей обучающей выборке;
  • не происходит уменьшения ошибки обучающей выборки на протяжении заданного предельного количества эпох обучения;
  • исчерпано заданное предельное физическое время обучения.

Математически это выглядит так:

Далее более подробно рассмотрим данный алгоритм в отдельной статье.


Выводы

Нейронные сети требуют обучения. Для обучения необходимы:

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

Оставить комментарий
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Похожие новости

Искусственный интеллект — это просто!