Пример 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, в качестве целей - новый вектор, соответствующий желаемым выходам. В процессе обучения сеть не может обеспечить точного решения, то есть свести ошибку к нулю. Однако получается приближение, которое можно наблюдать по кривой обучения. Следует отметить, что данная кривая может менять свою форму от эксперимента к эксперименту, но, в случае успешного обучения, характер функции будет монотонно убывающим.
В результате обучения, ошибка была минимизирована до весьма малого значения, которое практически можно считать равным нулю.
Задача синтеза элемента "исключающего ИЛИ" является также примером задачи классификации. Она отражает общий подход к решению подобного рода задач.
- Системи підтримки прийняття рішень методичні вказівки
- Частина 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 Литература