- •Введение
- •Глава 1 системы, основанные на знаниях
- •1.1. История создания искусственного интеллекта
- •1.2. Процесс мышления
- •1.3. Основные понятия и классификация систем, основанных на знаниях
- •1.4. Экспертные системы как элемент искусственного интеллекта
- •1.5. Теоретические аспекты извлечения знаний
- •1.6. Коммуникативные методы извлечения знаний
- •1.7. Текстологические методы извлечения знаний
- •Глава 2 модели представления знаний
- •2.1. Представление знаний и выводы в экспертных системах
- •2.2. Модель представления знаний средствами логики предикатов первого порядка
- •2.3. Представление знаний продукционными правилами
- •2.4. Модель представления знаний в виде фреймов
- •2.5. Представление знаний в виде семантической сети
- •2.6. Модель доски объявлений
- •2.7. Модель представления знаний в виде сценария
- •Глава 3 архитектура и технология разработки экспертных систем
- •3.1. Основные положения
- •3.2. Технология разработки экспертной системы
- •3.3. Механизм вывода (интерпретатор правил)
- •3.4. Взаимодействие пользователей с экспертной системой
- •3.5. Подсистема анализа и синтеза сообщений
- •3.6. Морфологический анализ входных сообщений
- •3.7. Синтаксический анализ входных сообщений
- •3.8. Семантический анализ входных сообщений
- •3.9. Синтез выходных сообщений
- •3.10. Диалоговая подсистема
- •3.11. Объяснительные способности эс
- •Глава 4 применение нечеткой логики в эксперТнЫх системах
- •4.1. Предпосылки возникновения нечеткой логики
- •4.2. Нечеткая логика
- •4.3. Нечеткие подмножества
- •4.4. Нечеткие правила вывода в экспертных системах
- •4.5. Задания для разработки экспертных систем
- •Глава 5 ГенетическиЙ алгоритм
- •5.1. Предисловие
- •5.2. Генетический алгоритм
- •5.3. Параметры и этапы генетического алгоритма
- •5.3.1. Кодирование информации и формирование популяции
- •5.3.2. Оценивание популяции
- •5.3.3. Селекция
- •5.3.4. Скрещивание и формирование нового поколения
- •7.3.5. Мутация
- •5.4. Настройка параметров генетического алгоритма
- •5.5. Канонический генетический алгоритм
- •5.6. Пример работы и анализа генетического алгоритма
- •5.7. Общие рекомендации к программной реализации генетического алгоритма
- •5.8. Задания для лабораторных работ
- •Глава 6 искусственные нейронные сети
- •6.1. Биологические нейронные сети
- •6.2. Формальный нейрон
- •6.3 Нейронные сети
- •6.4. Обучение инс
- •8.5. Алгоритм обратного распространения ошибки
- •6.6. Работа нейронной сети
- •6.7. Пример работы и обучения нейронной сети
- •6.8. Программная реализация
- •6.9. Задания для лабораторных работ
- •Заключение
- •Приложение 1 Контрольные вопросы
- •Приложение 2 Темы рефератов и индивидуальных заданий Темы рефератов
- •Темы индивидуальных заданий
- •Приложение 3 Ресурсы в сети Интернет
- •Список литератуРы
- •Оглавление
8.5. Алгоритм обратного распространения ошибки
В настоящее время существует множество алгоритмов обучения. Наиболее известный из них – алгоритм обратного распространения ошибки. Данный алгоритм используется для минимизации отклонения реальных значений выходных сигналов нейронной сети от требуемых.
В качестве функции ошибки ИНС будем рассматривать следующую величину:
(6.1)
где fi,k – значение выходного сигнала k-го выходного нейрона сети при подаче на её входы i-го набора обучающих данных, – требуемое значение выходного сигнала k-го выходного нейрона для i-го набора данных для обучения. Суммирование ведется по всем нейронам выходного слоя и по всем наборам данных из обучающей выборки. Обучение ИНС направлено на минимизацию функции .
Минимизация методом градиентного спуска обеспечивает подстройку весовых коэффициентов следующим образом:
(6.2)
где – величина изменения веса связи, соединяющей i-й нейрон (q–1) слоя с j-м нейроном слоя q; η – коэффициент скорости обучения, 0< η <1. Таким образом, вес связи изменяется пропорционально её вкладу в значение ошибки нейрона, для которого эта связь является входной, т.к. частная производная по весу показывает зависимость скорости изменения функции ошибки E от изменения этого веса.
Опустим преобразования формулы (6.2) и представим сразу конечный результат (6.3). Подробный вывод формул приведен, например, в [20] и [21]. Изменение веса связи определяется следующим образом:
(6.3)
где δj – значение ошибки j-го нейрона в слое q, xi – значение i-го входного сигнала для j-го нейрона слоя q. Данная формула применима и для настройки смещений нейронов, только вместо xi необходимо подставить «1».
Отметим, что значение ошибки нейрона определяется в зависимости от его положения в сети.
Для нейронов выходного слоя
(6.4)
где yi,k – требуемое, а fi,k – фактическое значение выходного сигнала k-го нейрона для i-го набора данных из обучающей выборки, – значение производной активационной функции k-го нейрона для i-го набора обучающих данных.
Если нейрон принадлежит одному из скрытых слоев, то
(6.5)
где δi(q) – ошибка i-го нейрона в слое q, δj(q+1) – ошибка j-го нейрона в (q+1) слое, wij – вес связи, соединяющей эти нейроны, – значение производной активационной функции i-го нейрона слоя q. Таким образом, значение ошибки нейрона пропорционально его «влиянию» на величины ошибок нейронов следующего слоя, а также скорости изменения его выходного сигнала для k-го набора обучающих данных.
Рассмотрим ИНС с нейронами с лог-сигмоидными функциями активации:
(6.6)
где а – константа, S – взвешенная сумма входных сигналов нейрона, тогда
(6.7)
и формулы (6.4), (6.5) соответственно примут вид
(6.8)
(6.9)
Для реализации алгоритма обратного распространения ошибки может быть использована следующая последовательность действий:
-
Предъявление очередного набора из обучающей выборки на вход нейронной сети.
-
Вычисление выходного сигнала сети.
-
Определение величин ошибок нейронов выходного слоя по формуле (6.4) или (6.8).
-
Определение величин ошибок нейронов скрытых слоев по формулам (6.5) или (6.9).
-
Однократная коррекция весов связей.
-
Если в обучающей выборке есть неиспользованные в данной эпохе наборы данных, то переход на шаг 1.
-
Подсчет ошибки сети по формуле (6.1). Если ошибка меньше заданной, то конец обучения, иначе, начало новой эпохи обучения и переход на шаг 1.
Отметим, что алгоритм обратного распространения ошибки применим только для нейронных сетей, содержащих нейроны с дифференцируемой функцией активации. Т.е. рассмотренный алгоритм не подходит для настройки сетей, построенных на нейронах с пороговыми функциями активации. Для таких сетей применяются другие алгоритмы обучения, например дельта-правило Уидроу-Хоффа [21, 38]. Однако во многих случаях в нейронных сетях используются нейроны с сигмоидальными функциями активации (лог-сигмоидные функции и гиперболический тангенс), что дает возможность применять для настройки и обучения таких сетей градиентные алгоритмы.
В настоящее время создано немало модификаций алгоритма обратного распространения ошибки [21]. Одним из простых, но довольно эффективных является алгоритм, использующий инерционность обучения. В нем вес связи изменяется в соответствии со следующей формулой:
где α – коэффициент инерционности от 0 до 1. Данный алгоритм сходится в среднем в 4–5 раз быстрее стандартного, но использует больший объем памяти.