[ссылки] [литература] [проекты] [программы] [методические указания] [монографии и статьи] [вопросы и ответы] [школы] [учебники]
ENG  |   Карта сайта
Информация
Проект преследует цель популяризации идей применения природных механизмов функционирования для решения задач прогнозирования, оптимизации и поддержки принятия решений

Cписок рассылки
Открыть в новом окне

  1. Введение
  2. Генетические алгоритмы (1)
  3. Генетические алгоритмы (2)
  4. Генетические алгоритмы (3)
  5. Тренды
  6. Полиномиальные тренды
  7. Тригонометрические тренды
  8. Нейронные сети
  9. Метод наименьших квадратов
  10. Метод обратного распространения ошибки
  11. Множественная линейная модель
  12. Нестандартный выпуск. Анкета
  13. МЛМ. Пример расчета
  14. RBF-сеть
  15. Сеть встречного распространения
  16. Первая интерполяционная формула Ньютона
  17. МГУА (1)
  18. Вторая интерполяционная формула Ньютона
  19. Метод Брандона
  20. МГУА (2)
  21. Интерполяционные формулы Гаусса
  22. Интерполяционные формулы Стирлинга и Лагранжа
  23. МГУА (3)
  24. МГУА (4)
  25. Предварительная обработка данных (1)
  26. Предварительная обработка данных (2)
  27. Предварительная обработка данных (3)
  28. Box-counting
  29. Гетероскедастичность
  30. Введение в нечеткую логику
  31. Обобщённый метод наименьших квадратов
  32. Прогнозирование с помощью функций с гибкой структурой
  33. Автокорреляция
  34. Дистрибутивно-лаговые модели (1)
  35. Дистрибутивно-лаговые модели (2)
  36. Дистрибутивно-лаговые модели (3)
  37. Моделирование данных при помощи кривых для восстановления пробелов в таблицах (1)
  38. Нестандартный выпуск. Анонс книги Цейтлина Н.А."Опыт аналитического статистика"
  39. Алгоритм ZET
  40. Алгоритм ZetBraid
  41. Метод эволюционной кластеризации
  42. Эволюционный метод восстановления пропусков в данных
  43. Алгоритмы кластеризации класса FOREL

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

 

         Как вершиной творчества А.С.Пушкина стал “Евгений Онегин”, как основой прикладного применения теории вероятностей является нормальное распределение так и квинтэссенцией теории нейронных сетей предстал алгоритм обратного распространения ошибки (АОРО). Для решения каких задач прогнозирования применим АОРО?


         Рассмотрим некоторую сложную систему (экономическую, техническую, социальную,..) (рис. 1).

 

         Обозначим  - вектор входных воздействий,  - вектор выходных величин, F – функциональное преобразование, осуществляемое системой S. Например  оличество ресурсов,  - фондовооруженность,  - энергоёмкость производства,  - квалификация сотрудников и т.д.,  - количество произведённой продукции,  - себестоимость продукции,  - валовый доход. Очевидно, , , а чистая прибыль  

                                            (*)

         Идентификация последней зависимости – дело почти безнадёжное известными интегро-дифференциальными методами. Нейронная сеть может решить эту постижимым только ею одной способом, правда, по указанному алгоритму. Эта идентификация не совсем обычная, она синтетическая. Это означает, что зависимость (*) аналитически получена так и не будет. Но по заданным значениям вектора  будет вычислять и даже определять чувствительность изменения Z к изменению каждой компоненты .

 

         Алгоритм back propagation приведён ниже с выделением этапов обучения и использования НС (нейронной сети).


Рассмотрим нейронную сеть (перцептрон) следующего вида (рис. 2)

 В шаре Аn нейронов, в шаре Sl нейронов, в шаре Rm нейронов. Нейроны слоя А никаких функций не выполняют. Функционирует нейронная сеть следующим образом. Изначально существуют начальные данные в виде таблицы 1.

 

Таблица 1. – Исходные данные.

……

……

……

……

……

……

……

……

……

……

……

……

……

……

……

……

 

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

                                 Таблица 2. – Пример.

1

1

2

0

1

1

1

2

3

-1

2

0.5

9

9

18

0

81

1

 

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

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

, ,

, ,  .

У каждого из этих выражений есть свои преимущества и недостатки. Наиболее часто используют выражения (1) и (4). Далее для каждого нейрона скрытого слоя S вычисляется сумма , , называемая активацией (activation). На выходе нейронов слоя S получаем , где f(*) – активационная функция. Для нашего примера и для большинства других рационально использовать также функции  (гиперболический тангенс) и

 (классический сигмоид).

Поскольку область значений , то вместе с ним уместно использовать нормировку , а с , где  (1),(2),(5). Кроме того при необходимости используют смещения (bios) для нейронов, для получения нужной области на выходе.

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

, где

 - реальное значение j-го выхода сети при поданном i-м образе,  - вычисленное. Минимизировать сумму можно, как сказано выше, путём адаптации весовых коэффициентов. Сделать это весьма проблематично, поскольку слоёв для постройки два, а ошибки, как известно, имеют свойство накапливаться. В 1986 году Руммельхарт Хинтон и Вильямс предложили алгоритм обратного распространения ошибки, главная идея которого состояла в том, что ошибку на последнем слое можно просто вычислить, а соответственно, по методу градиентного спуска скорректировать весовые коэффициенты последнего спуска. Далее используя тот факт, что входы нейронов следующего шара являются выходами нейронов предыдущего шара, вычислить ошибки и скорректировать весовые коэффициенты других слоёв.

 

Алгоритм ОРО для сети с тремя входами, двумя выходами и тремя нейронами скрытого слоя.

 

Шаг 1.        Инициализируем весовые  коэффициенты случайными числами.

Шаг 2.         Подаём на вход обучающий образ и рассчитываем выход сети (описано выше).

Шаг 3.         Рассчитываем ошибки выходного шара. В нашем случае

                  

                   .

Шаг 4.        Рассчитываем ошибки предыдущего шара по формуле

                           

                   В таком случае:

                           

                           

                            .

         Осуществляем коррекцию весовых коэффициентов следующим образом:

         а) для последнего (второго) слоя:

,

где    ;   ; ;    ; ; ;

         б) для предпоследнего слоя:

; ; ;

; ; ;

; ; .

Вместо вышеперечисленных выражений можно было бы воспользоваться и такими:

,

где - коэффициент инерционности, - номер текущей итерации, Î(0;1).

Шаг 5.        Если поданы все входные образы, то переход на шаг 5, иначе переход на шаг 2 (подаём следующий образ).

Шаг 6.        Если  , то переход на шаг 7, иначе снова переходим на шаг 2 (подаём первый образ).

Шаг 7.        Подаём на вход уже обученной сети контрольный вектор X и сеть рассчитает Y (решается задача прогнозирования).

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

 

 

РЕКЛАМА:

Администрация сайта: ()
Используются технологии uCoz