- •Предисловие.
- •1. Основные задачи искусственного интеллекта.
- •1.1. История развития систем искусственного интеллекта.
- •1.2. Обзор основных направлений в области искусственного интеллекта
- •1.3. Решение задач и искусственный интеллект
- •1.3.1. Графовое представление задачи в пространстве состояний.
- •1.3.2. Стратегии поиска в пространстве состояний
- •2. Проблемная область искусственного интеллекта
- •2.1. Представление знаний
- •2.2 Модели представления знаний
- •2.2.1. Семантические сети
- •2.2.2. Фреймы
- •2.2.3. Формальные логические модели
- •2.2.4. Продукционная модель
- •2.2.5. Вывод на знаниях
- •3. Сильные методы решения задач. Экспертные системы
- •3.1. Структура экспертных систем
- •3.2. Классификация экспертных систем
- •3.3. Отличие эс от других программных продуктов
- •3.4. Цикл работы экспертных систем
- •3.5. Технология проектирования и разработки экспертных систем
- •4. Принятие решений в условиях неопределенности
- •4.1. Нечеткая логика
- •4.1.1. Нечеткие множества
- •4.1.2. Более строгое представление о нечетких множествах
- •4.1.3. Основные характеристики нечетких множеств
- •4.1.4. Примеры нечетких множеств и их характеристик
- •4.1.5. Операции над нечеткими множествами
- •4.1.6. Четкое множество α-уровня (или уровня α)
- •4.1.7. Нечеткая и лингвистическая переменные
- •4.1.8. Нечеткие числа
- •5. Машинное обучение на основе нейронных сетей
- •5.1. Биологический нейрон и его математическая модель
- •5.1.1. Биологический нейрон
- •5.1.2. Искусственный нейрон
- •5.2. Нейросети
- •5.2.1. Классификация и свойства нейросетей
- •5.2.2. Обучение искусственных нейронных сетей
- •5.3. Теорема Колмогорова
- •5.4. Персептрон
- •5.4.1. Алгоритм обучения персептрона
- •5.4.2. Линейная разделимость и персептронная представляемость
- •Логическая функция
- •Входы и выходы нейронов сети,
- •5.5. Сеть обратного распространения
- •5.5.1. Алгоритм обучения сети обратного распространения
- •5.6. Сеть встречного распространения
- •5.6.1. Сеть Кохонена. Классификация образов
- •5.6.2. Алгоритм обучения сети Кохонена
- •5. 6.3. Нейроны Гроссберга. Входные и выходные звезды
- •5.6.4. О бучение входной звезды
- •5.6.5. Обучение выходной звезды
- •5.6.6. Двухслойная сеть встречного распространения
- •5.6.7. Алгоритм обучения сети встречного распространения
- •5.7. Стохастические сети
- •5.7.1. Обучение Больцмана
- •5.7.2. Обучение Коши
- •5.8. Сети с обратными связями
- •5.8.1. Сеть Хопфилда
- •5.8.2. Правило обучения Хебба
- •5.8.3. Процедура ортогонализации образов
- •5.9. Сеть дап (двунаправленная ассоциативная память)
- •5.10. Сеть арт (адаптивная резонансная теория)
- •5.10.1. Алгоритм функционирования сети арт-1
- •Список иллюстраций
Таблица 5.3.
реализующей
функцию XOR
S
Y
0 1 0 1
0 0 1 1
0 1 1 2
0 1 1 2
0 1 1 1
0 0 0 1
0 1 1 0
0 1 1 0
Входы и выходы нейронов сети,
Упражнения
5.1. Укажите возможные значения весов и порога однонейронного персептрона с двумя входами, реализующего логическую функцию AND.
5.2. Напишите программу, обучающую однонейронный персептрон распознаванию изображений «крестиков» и «ноликов». Входные образы (10—15 штук) представляют собой графические изображения. Каждое изображение разбито на квадраты (или пиксели) и от каждого квадрата на персептрон подается вход. Если в квадрате имеется линия (или пиксель окрашен в черный цвет), то от него подается единица, в противном случае—ноль. Множество квадратов на изображении задает, таким образом, множество нулей и единиц, которое и подается на входы персептрона (рис. 6.10). Цель состоит в том, чтобы научить персептрон давать единичный выход при подаче на него множества входов, задающих «крестик», и нулевой выход в случае «нолика».
Рис. 6.10. Модель персептрона, отделяющего «крестики» от «ноликов»
5.3. Напишите программу, обучающую десятинейронный персептрон распознаванию изображений цифр. Каждый нейрон должен давать единичный выход при подаче на вход изображения, соответствующего его порядковому номеру, и нулевой для всех остальных изображений.
5.5. Сеть обратного распространения
Рассмотренный в предыдущем параграфе алгоритм обучения однослойного персептрона очень прост. Однако долгие годы не удавалось обобщить этот алгоритм на случай многослойных сетей, что спровоцировало в научных кругах значительный спад интереса к нейронным сетям. Только в 1986 году Румельхарт (D. E. Rumelhart) разработал эффективный алгоритм корректировки весов, названный алгоритмом обратного распространения ошибок (back propagation).
Нейронные сети обратного распространения — это современный инструмент поиска закономерностей, прогнозирования, качественного анализа. Такое название — сети обратного распространения — они получили из-за используемого алгоритма обучения, в котором ошибка распространяется от выходного слоя к входному, т. е. в направлении, противоположном направлению распространения сигнала при нормальном функционировании сети.
Нейронная сеть обратного распространения состоит из нескольких слоев нейронов, причем каждый нейрон предыдущего слоя связан с каждым нейроном последующего слоя. В большинстве практических приложений оказывается достаточно рассмотрения двухслойной нейронной сети, имеющей входной (скрытый) слой нейронов и выходной слой (рис. 6.11).
Матрицу
весовых коэффициентов от входов к
скрытому слою обозначим
W,
а
матрицу весов, соединяющих скрытый и
выходной слой - V.
Для
индексов примем следующие обозначения:
входы будем нумеровать только индексом
i,
элементы скрытого слоя — индексом j,
а выходы — индексом
k.
Число
входов сети равно n,
число
нейронов в скрытом слое
— m,
число
нейронов в выходном слое – p.
Пусть сеть обучается на выборке
При обучении нейронной сети ставится задача минимизации целевой функции ошибки, которая находится по методу наименьших квадратов:
,
где
—
полученное реальное значение k-го
выхода нейросети при подаче на
нее одного из входных образов обучающей
выборки;
—
требуемое (целевое)
значение k-го
выхода для этого образа.
Рис. 6.11. Нейронная сеть обратного распространения
Обучение нейросети производится известным оптимизационным методом градиентного спуска, т. е. на каждой итерации изменение веса производится по формулам
,
где
—
параметр, определяющий скорость
обучения.
В
качестве активационной функции в сети
обратного распространения
обычно используется сигмоидальная
функция
,
где s
- взвешенная
сумма входов нейрона. Эта функция удобна
для вычислений в градиентном методе,
так как имеет простую производную:
Функция
ошибки в явном виде не содержит
зависимости от весовых коэффициентов
и
,
поэтому для вычисления производных
воспользуемся формулами дифференцирования
сложной функции:
,
где
—
взвешенная сумма входных сигналов k-го
нейрона
выходного слоя.
Обозначим
значение
выхода j-го
нейрона скрытого слоя. Тогда
и
.
Так
как
то
Наконец,
.
Таким образом, получили выражение для
производной:
Выведем
теперь формулу для производной
Аналогично
запишем:
.
Здесь
,
поэтому
(
- i-я
компонента
поданного на
вход образа обучающей выборки);
Так как функция ошибки не зависит в
явном виде от выходов скрытого слоя,
то производная усложняется:
.
Воспользовавшись
имеющимися выражениями для
и
,
запишем:
Если
ввести обозначение
получим следующие выражения для
производных:
