- •Глава 13. Нейронные сети
- •13.1. Архитектура нейронных сетей
- •Различные виды искусственных нейронов
- •Различные виды функции активации
- •Нейронные сети с прямой связью
- •13.2. Алгоритмы обучения нейронных сетей
- •Критерии ошибок
- •Обратное распространение ошибки
- •Импульс
- •Другие алгоритмы обучения
- •Перекрестное подтверждение
- •13.3. Динамические сети
- •Нейронные сети с временной задержкой
- •13.4. Самоорганизующиеся сети
- •Практическое применение нейронных сетей для задач классификации (кластеризации)
- •Цель классификации
- •Использование нейронНblХ сетей в качестве классификатора
- •Подготовка исходных данных
- •Кодирование выходных значений
- •Вероятностная классификация
- •Классифика торы образов
- •Нейронная сеть с прямой связью как классификатор
- •13.6. Применение нейронных сетей для анализа временных рядов задача анализа временных рядов
- •Статистический анализ временных рядов
- •Сбор данных
- •Нейронные сети как средство добычи данных
- •Очистка и преобразование базы данных
- •Построение модели
- •Программное обеспечение
- •Финансовый анализ на рынке ценных бумаг
- •Литература
Критерии ошибок
Целью процедуры минимизации является отыскание глобального минимума - достижение его называется сходимостью процесса обучения. Поскольку невязка зависит от весов нелинейно, получить решение в аналитической форме невозможно, и поиск глобального минимума осуществляется посредством итерационного процесса - так называемого обучающего алгоритма, который исследует поверхность невязки и стремится обнаружить на ней точку глобального минимума. Обычно в качестве меры погрешности берется средняя квадратичная ошибка (MSE), которая определяется как сумма квадратов разностей между желаемой величиной выхода dk и реально полученными на сети значениями Yk для каждого примера k.
![]()
Здесь р- число примеров в обучающем множестве.
Наряду с такой мерой погрешности широко используется расстояние
Кульбака-Лейблера, связанное с критерием максимума правдоподобия:
![]()
а также некоторые другие.
М
инимизация
величины Е осуществляется с помощью
градиентных методов. В первом из них
берется градиент общей ошибки, и веса
W пересчитываются каждый раз после
обработки всей совокупности обучающих
примеров(<<эпохи»).
Изменение
весов происходит в направлении, обратном
к направлению наибольшей крутизны для
функции стоимости:
Здесь 10 - определяемый пользователем параметр, который называется величиной градиентного шага или коэффициентом обучения. Другой возможный метод носит название стохастического градиентного.
В нем веса пересчитываются после каждого просчета всех примеров из одного обучающего множества, и при этом используется частичная функция стоимости, соответствующая этому, например k-MY, множеству
![]()
Обратное распространение ошибки
Рассмотрим теперь наиболее распространенный алгоритм обучения нейронных сетей с прямой связью - алгоритм обратного распространения ошибки (Backpropagation, ВР), представляющий собой развитие так называемого обобщенного дельта-прав WIG. Этот алгоритм был заново открыт и популяризирован в 1986 г. Ру-мельхартом и МакКлеландом из знаменитой Группы по изучению параллельных распределенных процессов в Массачусетском технологическом институте. В этом пункте мы более подробно рассмотрим математическую суть алгоритма. Он является алгоритмом градиентного спуска, минимизирующим суммарную квадратичную ошибку
![]()
Здесь индекс i пробегает все выходы многослойной сети.
Основная идея ВР состоит в том, чтобы вычислять чувствительность
ошибки сети к изменениям весов. Для этого нужно вычислить частные производные от ошибки по весам. Пусть обучающее множество состоит из Р образцов, и входы k-гo образца обозначены через {х l}. Вычисление частных производных осуществляется по правилу цепи: вес входа i-гo нейрона, идущего от j-гo нейрона, пересчитывается по формуле
![]()
где 1:: - длина шага в направлении, обратном к градиенту.
Если рассмотреть отдельно k-й образец, то соответствующее изменение
весов равно
![]()
Множитель O~ вычисляется через аналогичные множители из после
дующего слоя, и ошибка, таким образом, передается в обратном направлении.
Для выходных элементов мы получаем:
![]()
Для скрытых элементов множитель 0k определяется так:
( 13.13)
с учетом того, что
![]()
(13.14)
получаем:
![]()
где индекс h пробегает номера всех нейронов, на которые воздействует i-й нейрон.
Данный алгоритм используется в двух вариантах. В стохастическом варианте веса пересчитываются каждый раз после просчета очередного образца, а в «эпохальном», или off-line варианте, веса меняются после просчета всего обучающего множества.
