- •Введение
- •Глава 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 раз быстрее стандартного, но использует больший объем памяти.
