- •Системи підтримки прийняття рішень методичні вказівки
- •Частина 1
- •Содержание
- •1 Лабораторная работа № 1. Создание хранилищ данных. Olap – технология анализа данных 14
- •2 Лабораторная работа № 2. Прогнозирование с помощью нейронных сетей в программе Deductor 43
- •2.3 Контрольные вопросы 59
- •3 Лабораторная работа № 3. Знакомство с Neural Network
- •4 Рекомендованная литература 78 Введение в сппр
- •1 Лабораторная работа № 1 Тема: Создание хранилища данных. Olap – технология анализа данных.
- •1.1 Аналитическая платформа Deductor
- •1.2 Хранилища данных – подготовка данных для анализа
- •Принципы организации хранилища:
- •1.3 Описание бизнес-задачи по созданию аналитической отчетности аптечной сети
- •1.4 Создание хранилища данных в системе Deductor
- •1.5 Анализ данных с помощью кросс-таблиц и визуализации
- •1.5.2 Срезы из хранилища данных и olap кубы
- •1.5.3 Кросс-диаграмма
- •1.5.4 Фильтрация данных в кубе
- •1.6 Задание к лабораторной работе
- •1.7 Контрольные вопросы
- •2 Лабораторная работа № 2 Тема: Нейронные сети. Прогнозирование с помощью нейронной сети в программе Deductor
- •2.1 Нейронные сети: основные понятия
- •2.1.1 Искусственный нейрон и нейронная сеть
- •2.1.2 Обучение
- •2.1.3. Нейронные сети обратного распространения
- •2.2 Прогнозирование с помощью нейронных сетей в Deductor
- •2.2.1 Исходные данные
- •2.2.2 Расчет автокорреляции столбцов
- •2.2.3 Удаление аномалий и сглаживание
- •2.2.4 Скользящее окно 12 месяцев назад
- •2.2.5 Обучение нейросети
- •2.2.6 Построение прогноза
- •2.2.7 Результат
- •2.2.8 Выводы
- •2.3 Контрольные вопросы
- •2.4 Рынок нейропакетов
- •3 Лабораторная работа №3 Тема: зНакомство с neural network toolbox пакета mAtlab
- •3.1 Нейронные сети: графический интерфейс пользователя
- •3.1.1 Управляющие элементы nnTool
- •3.1.3 Разделение линейно-неотделимых множеств
- •Пример 3.2. Пусть требуется создать нейронную сеть, выполняющую логическую функцию "исключающее или".
- •3.1.4 Задача аппроксимации
- •Пример 3.3. Необходимо выполнить аппроксимацию функции , где , а n - число точек функции.
- •3.2 Функции Matlab для работы с нейронными сетями
- •1) Линейная функция активации purelin.
- •2) Логистическая функция активации logsig.
- •3) Создание новой нейронной сети и ее обучение
- •3.3 Задание к лабораторной работе
- •3.4. Контрольные вопросы
- •4 Литература
2.1.2 Обучение
Способность к обучению является основным свойством мозга. Для искусственных нейронных сетей под обучением понимается процесс настройки архитектуры сети (структуры связей между нейронами) и весов синаптических связей (влияющих на сигналы коэффициентов) для эффективного решения поставленной задачи. Обычно обучение нейронной сети осуществляется на некоторой выборке. По мере процесса обучения, который происходит по некоторому алгоритму, сеть должна все лучше и лучше (правильнее) реагировать на входные сигналы.
Выделяют три парадигмы обучения: с учителем, самообучение и смешанная. В первом способе известны правильные ответы к каждому входному примеру, а веса подстраиваются так, чтобы минимизировать ошибку. Обучение без учителя позволяет распределить образцы по категориям за счет раскрытия внутренней структуры и природы данных. При смешанном обучении комбинируются два вышеизложенных подхода.
Существует большое число алгоритмов обучения, ориентированных на решение разных задач. Среди них выделяет алгоритм обратного распространения ошибки, который является одним из наиболее успешных современных алгоритмов. Его основная идея заключается в том, что изменение весов синапсов происходит с учетом локального градиента функции ошибки. Разница между реальными и правильными ответами нейронной сети, определяемыми на выходном слое, распространяется в обратном направлении (рис. 2.3) — навстречу потоку сигналов. В итоге каждый нейрон способен определить вклад каждого своего веса в суммарную ошибку сети. Простейшее правило обучения соответствует методу наискорейшего спуска, то есть изменения синаптических весов пропорционально их вкладу в общую ошибку.
Рисунок 2.3. Метод обратного распространения ошибки для многослойной полносвязанной нейронной сети
Конечно, при таком обучении нейронной сети нет уверенности, что она обучилась наилучшим образом, поскольку всегда существует возможность попадания алгоритма в локальный минимум (рис. 2.4). Для этого используются специальные приемы, позволяющие «выбить» найденное решение из локального экстремума. Если после нескольких таких действий нейронная сеть сходится к тому же решению, то можно сделать вывод о том, что найденное решение, скорее всего, оптимально.
Рисунок 2.4 - Метод градиентного спуска при минимизации ошибки
2.1.3. Нейронные сети обратного распространения
Такое название – сети обратного распространения (back propagation) они получили из-за используемого алгоритма обучения, в котором ошибка распространяется от выходного слоя к входному, т.е. в направлении, противоположном направлению распространения сигнала при нормальном функционировании сети.
Нейронная сеть обратного распространения состоит из нескольких слоев нейронов, причем каждый нейрон слоя i связан с каждым нейроном слоя i+1, т.е. речь идет о полносвязной НС.
При обучении ставится задача минимизации целевой функции ошибки НС, которая находится по методу наименьших квадратов – формула (2.6).
Мы будем реализовывать стохастический градиентный спуск, то есть будем подправлять веса после каждого обучающего примера и, таким образом, "двигаться" в многомерном пространстве весов. Чтобы "добраться" до минимума ошибки, нам нужно "двигаться" в сторону, противоположную градиенту, то есть, на основании каждой группы правильных ответов, добавлять к каждому весу wi,j :
(2.7)
где η– параметр, определяющий скорость обучения.
(2.8)
где yj – значение выхода j-го нейрона;
Sj – взвешенная сумма входных сигналов, определяемая по формуле (2.5).
При этом множитель (2.9)
где xi – значение i-го входа нейрона.
Второй множитель есть производная активационной функции по ее аргументу. Из этого следует, что производная активационной функции должна быть определена на всей оси абсцисс.
Далее рассмотрим определение первого множителя формулы (2.8)
(2.10)
где k – число нейронов в слое n+1.
Введем вспомогательную переменную .
Тогда мы сможем определить рекурсивную формулу для вычисления n-ного из величин слоя :
|
(2.11) |
Нахождение же для последнего слоя НС не представляет трудности, так как нам известен целевой вектор, т.е. вектор тех значений, которые должна выдавать НС при данном наборе входных значений.
|
(2.12) |
И наконец, запишем формулу (2.7) в раскрытом виде
(2.13)
Рассмотрим теперь полный алгоритм обучения нейросети:
Подать на вход НС один из требуемых образов и определить значения выходов нейронов нейросети.
Рассчитать для выходного слоя НС по формуле (2.12) и рассчитать изменения весов выходного слоя N по формуле (2.13).
Рассчитать по формулам (2.11) и (2.13) соответственно и для остальных слоев НС, n = N-1..1
Скорректировать все веса НС
(2.14)
Если ошибка существенна, то перейти на шаг 1
На этапе 2 сети поочередно в случайном порядке предъявляются вектора из обучающей последовательности.
Рисунок 2.5 – Схема обучения нейронной сети