- •Системи підтримки прийняття рішень методичні вказівки
- •Частина 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 Литература
3.1.3 Разделение линейно-неотделимых множеств
Рассмотренная задача синтеза логического элемента "И" может трактоваться как задача распознавания линейно отделимых множеств. На практике же чаще встречаются задачи разделения линейно неотделимых множеств, когда применение персептронов с функцией активации с жёстким ограничением не даст решения. В таких случаях следует использовать иные функции активации.
Показательным примером линейно неотделимой задачи является создание нейронной сети, выполняющей логическую функцию "исключающее ИЛИ".
Пример 3.2. Пусть требуется создать нейронную сеть, выполняющую логическую функцию "исключающее или".
Рассмотрим таблицу истинности этой функции (табл. 3.2).
Таблица 3.2. Таблица истинности логической функции «исключающее ИЛИ»
P1 |
P2 |
A |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
Что же подразумевается под "линейной неотделимостью" множеств? Чтобы ответить на этот вопрос, изобразим множество выходных значений в пространстве входов (рис. 3.7), следуя следующему правилу: сочетания входов P1 и P2, при которых выход A обращается в нуль, обозначаются кружком, а те, при которых A обращается в единицу - крестиком.
Наша цель - провести границу, отделяющую множество нулей от множества крестиков. Из построенной картины на рис. 3.7 видно, что невозможно провести прямую линию, которая бы отделила нули от единиц. Именно в этом смысле множество нулей линейно неотделимо от множества единиц, и персептроны, рассмотренные ранее, в принципе, не могут решить рассматриваемую задачу.
Рисунок 3.7 - Состояния логического элемента "исключающее ИЛИ"
Если же использовать персептроны со специальными нелинейными функциями активации, например, сигмоидными, то решение задачи возможно.
Выберем персептрон (Feed-Forward Back Propagation) с двумя нейронами скрытого слоя, у которых функции активации сигмоидные (TANSIG), и одним выходным нейроном с линейной функцией активации (PURELIN) (рис. 3.8). В качестве функции ошибки укажем MSE (Mean Square Error - средний квадрат ошибки). Напомним, что функция ошибки устанавливается в окне "Создание сети" после выбора типа сети.
Рисунок 3.8 - Сеть для решения задачи "исключающего ИЛИ"
Инициализируем сеть, нажав кнопку Initialize Weights на вкладке Initialize, после чего обучим, указав в качестве входных значений сформированную ранее переменную data1, в качестве целей - новый вектор, соответствующий желаемым выходам. В процессе обучения сеть не может обеспечить точного решения, то есть свести ошибку к нулю. Однако получается приближение, которое можно наблюдать по кривой обучения. Следует отметить, что данная кривая может менять свою форму от эксперимента к эксперименту, но, в случае успешного обучения, характер функции будет монотонно убывающим.
В результате обучения, ошибка была минимизирована до весьма малого значения, которое практически можно считать равным нулю.
Задача синтеза элемента "исключающего ИЛИ" является также примером задачи классификации. Она отражает общий подход к решению подобного рода задач.