- •А.П. Ротштейн Интеллектуальные технологии идентификации
- •Глава 1
- •1.1. Нечеткие множества
- •1.1.1. Основные понятия теории нечетких множеств
- •1.1.2. Свойства нечетких множеств
- •1.1.3. Операции над нечеткими множествами
- •1.1.4. Некоторые дополнительные понятия
- •1.1.5. Нечеткие отношения
- •1.1.6. Нечеткие числа
- •1.1.7. Нечеткость и вероятность
- •1.2. Генетические алгоритмы
- •1.2.1. Принципы построения генетических алгоритмов
- •1.2.2. Основные операции генетических алгоритмов
- •1.2.3. Стратегии поиска
- •1.2.4. Отличие от классического поиска
- •1.2.5. Преимущества генетических алгоритмов
- •1.2.6. Терминология
- •1.2.7. Примеры генетической оптимизации
- •1.3. Нейронные сети
- •1.3.1. Основные понятия
- •1.3.2. Имитация нервных клеток
- •1.3.4. Обучение нейронных сетей
- •1.3.5. Метод обратного распространения ошибки
- •Глава 2
- •2.1. Лингвистические правила в принятии решений
- •2.1.1. Автоматическое управление
- •2.1.2. Ситуационное управление
- •2.1.3. Медицинская диагностика
- •2.1.4. Многокритериальная оценка
- •2.1.5. Многофакторный анализ
- •2.2. Принятие решений и идентификация
- •2.3. Принципы лингвистического моделирования
- •Глава 3
- •3.1. Формализация исходной информации
- •3.1.1. Входы и выходы объекта
- •3.1.2. Лингвистические переменные
- •3.1.3. Нечеткая база знаний
- •3.1.4. Функции принадлежности
- •3.2. Объекты с дискретным выходом
- •3.2.1. Постановка задачи
- •3.2.2. Нечеткие логические уравнения
- •3.2.3. Алгоритм аппроксимации
- •3.3. Объекты с непрерывным выходом
- •3.3.1. Постановка задачи
- •3.3.2. Алгоритм аппроксимации
- •3.4. Применение композиционного правила вывода
- •3.4.1. Постановка задачи
- •3.4.2. Нечеткий логический вывод
- •3.4.3. Интерпретация вывода
- •3.5. Иерархические объекты
- •3.5.1. Обобщенное дерево логического вывода
- •3.5.2. Нечеткие логические уравнения
- •Глава 4
- •4.1. Нечеткое представление неопределенных параметров
- •4.2. Учет влияющих факторов
- •4.3. Нечеткое обобщение аналитических моделей
- •4.3.1. Принцип обобщения Заде
- •4.3.3. Модифицированный принцип обобщения
- •4.4. Методика нечеткого обобщения аналитических моделей
- •Глава 5
- •5.1. Задачи оптимальной настройки
- •5.1.1. Веса правил
- •5.1.2. Объект с непрерывным выходом
- •5.1.3. Объект с дискретным выходом
- •5.1.4. Критерии качества идентификации
- •5.2. Настройка параметрических функций принадлежности
- •5.2.1. Кодирование
- •5.2.2. Скрещивание
- •5.2.3. Мутация
- •5.2.4. Функция соответствия
- •5.2.5. Выбор родителей
- •5.2.6. Генерация популяции
- •5.2.7. Генетический алгоритм
- •5.3. Настройки -уровневых функций принадлежности
- •5.3.1. Аналитические модели функций принадлежности
- •5.3.2. Настройки модели с дискретным выходом
- •5.3.3. Настройки модели с непрерывным выходом
- •5.3.4. Кодирование и скрещивание
- •5.3.5. Мутация
- •5.3.6. Функция соответствия
- •5.3.7. Генерация популяции
- •5.3.8. Генетический алгоритм
- •5.4. Компьютерные эксперименты
- •5.4.1. Методика экспериментов
- •5.4.2. Объекты с непрерывным выходом
- •5.4.3. Объекты с дискретным выходом
- •5.4.4. Исследование -уровневой настройки
- •5.5. Извлечение знаний из экспериментальных данных
- •5.5.1. Постановка задачи
- •5.5.2. Критерий оптимизации
- •5.5.3. Генетический алгоритм оптимизации
- •5.5.4. Пример
- •5.6. Объект "много входов - много выходов"
- •Глава 6
- •6.1. Нейронная идентификация
- •6.1.1. Нейронная сеть как универсальный аппроксиматор
- •6.1.2. Обучение нейронной сети
- •6.1.3. Компьютерные эксперименты
- •6.2.1. Лингвистический аппроксиматор
- •6.2.2. Нейро-лингвистический аппроксиматор
- •6.2.3. Обучение нейро-нечеткой сети
- •6.2.4. Компьютерные эксперименты
- •6.3. Сравнение с нейронной идентификацией
- •Глава 7
- •7.1. Принцип слияния целей и ограничений
- •7.1.1. Нечёткие цели и ограничения
- •7.1.2. Нечёткие решения
- •7.2. Метод построения функции принадлежности
- •7.2.1.Постановка задачи
- •7.2.2. Основные определения и соотношения
- •7.2.3. Алгоритм построения функции принадлежности
- •7.3. Многокритериальный анализ вариантов
- •7.3.1. Общие принципы
- •7.3.2. Критерии как нечеткие множества
- •7.3.3. Равновесные критерии
- •7.3.4. Неравновесные критерии
- •7.4. Пример многокритериального анализа
- •7.4.1.Критерии оценки вариантов
- •Глава 8
- •8.1. Система fuzzy expert
- •8.1.1. Структура системы
- •8.1.2. Экранные формы
- •8.2. Диагностика ишемической болезни сердца
- •8.2.1. Типы диагнозов и параметры состояния больного
- •8.2.2. Нечеткая база знаний
- •8.2.3. Нечеткие логические уравнения
- •8.2.4 Грубые функции принадлежности
- •8.2.5. Алгоритм принятия решения
- •8.2.6. Тонкая настройка нечеткой базы знаний
- •8.3. Прогнозирование количества заболеваний
- •8.3.1. Экспериментальные данные
- •8.3.2. Экспертно-лингвистические закономерности
- •8.3.3. Модель прогнозирования
- •8.3.4. Настройка модели прогнозирования
- •8.4. Идентификация коэффициента сцепления "автомобиль-дорога"
- •8.4.1. Методика идентификации
- •8.4.2. Структурная идентификация
- •8.4.3. Параметрическая идентификация
- •8.4.4. Пример и сравнение с действующей методикой
- •8.5. Многофакторный анализ технологического процесса биоконверсии
- •8.5.1. Этапы и принципы моделирования
- •8.5.2. Дерево вывода
- •8.5.3. Нечеткие матрицы знаний
- •8.5.4. Нечеткий логический вывод и дефаззификация
- •8.5.5. Примеры моделирования
- •8.6. Оценка дипломных проектов
- •8.6.1. Интегральные и частные показатели
- •8.6.2. Уровни качества
- •8.6.3. Оценка частных показателей по принципу термометра
- •8.6.4. Оценка интегрального показателя
- •8.6.5. Возможные обобщения
- •8.7. Оценка кредитоспособности инновационных проектов
- •8.7.1. Типы решений и частные показатели качества
- •8.7.2. Нечеткие базы знаний
- •8.7.3. Функции принадлежности и примеры оценки
- •8.8. Управление динамической системой
- •8.8.1. Объект управления
- •8.8.2. Классическая модель управления
- •8.8.3. Нечеткая модель управления
- •8.8.4. Связь с функциями Ляпунова
1.3.5. Метод обратного распространения ошибки
Этот метод обучения многослойной нейронной сети называется обобщенным дельта-правилом или правилом error backpropagation (обратного распространения ошибки). Метод был предложен в 1986 г. Румельхартом, Макклеландом и Вильямсом. Это ознаменовало возрождение интереса к нейронным сетям, который стал угасать в начале 70-х годов. Позже было обнаружено, что Паркер опубликовал подобные результаты в 1982 г., а Вербос выполнил такую работу в 1984 г. Однако такова природа науки, что ученые, работающие независимо друг от друга, не могут использовать все то прогрессивное, что есть в других областях, и поэтому часто случается повторение уже достигнутого. Однако статья Руммельхарта и др., опубликованная в журнале Nature (1986), является до сих пор наиболее цитируемой в этой области.
Обучение сети начинается с предъявления образа и вычисления соответствующей реакции. Сравнение с желаемой реакцией дает возможность изменять веса связей таким образом, чтобы сеть на следующем шаге могла выдавать более точный результат. Обучающее правило обеспечивает настройку весов связей. Информация о выходах сети является исходной для нейронов предыдущих слоев. Эти нейроны могут настраивать веса своих связей для уменьшения погрешности на следующем шаге.
Когда мы предъявляем ненастроенной сети входной образ, она будет выдавать некоторый случайный выход. Функция ошибки представляет собой разность между текущим выходом сети и идеальным выходом, который необходимо получить. Для успешного обучения сети требуется приблизить выход сети к желаемому выходу, т. е. последовательно уменьшать величину функции ошибки. Это достигается настройкой межнейронных связей. Обобщенное дельта-правило обучает сеть путем вычисления функции ошибки для заданного входа с последующим ее обратным распространением (вот откуда название !) от каждого слоя к предыдущему. Каждый нейрон в сети имеет свои веса, которые настраиваются, чтобы уменьшить величину функции ошибки. Для нейронов выходного слоя известны их фактические и желаемые значения выходов. Поэтому настройка весов связей для таких нейронов является относительно простой. Однако для нейронов предыдущих слоев настройка не столь очевидна. Интуитивно ясно, что нейроны внутренних слоев, которые связаны с выходами, имеющими большую погрешность, должны изменять свои веса значительно сильнее, чем нейроны, соединенные с почти корректными выходами. Другими словами, веса данного нейрона должны изменяться прямо пропорционально ошибке тех нейронов, с которыми данный нейрон связан. Вот почему обратное распространение этих ошибок через сеть позволяет корректно настраивать веса связей между всеми слоями. В этом случае величина функции ошибки уменьшается и сеть обучается.
Основные соотношения метода обратного распространения ошибки получены в [76] при следующих обозначениях:
-
величина функции ошибки для образа
;
-
желаемый выход нейрона
для
образа
;
-
действительный выход нейрона
для
образа
;
-
вес связи между
-м
и
-м
нейронами.
Пусть функция ошибки прямо пропорциональна квадрату разности между действительным и желательным выходами для всей обучающей выборки:
(1.1)
Множитель
вводится
для упрощения операции дифференцирования.
Активация каждого нейрона для образа записывается в виде взвешенной суммы:
(1.2)
Выход
каждого нейрона
является
значением пороговой функции
,
которая активизируется взвешенной
суммой. В многослойной сети это обычно
сигмоидная функция, хотя может
использоваться любая непрерывно
дифференцируемая монотонная функция:
(1.3)
Можно записать по правилу цепочки:
(1.4)
Для второго сомножителя в (1.4), используя (1.2), получаем:
(1.5)
поскольку
,
за исключением случая
=
,
когда эта производная равна единице.
Изменение ошибки как функция изменения входов нейрона определяется так:
(1.6)
Поэтому (1.4) преобразуется к виду:
(1.7)
Следовательно,
уменьшение величины
означает
изменение веса пропорционально
:
(1.8)
где h - коэффициент пропорциональности, влияющий на скорость обучения.
Теперь
нам необходимо знать значение
для
каждого нейрона. Используя (1.6) и правило
цепочки, можно записать:
(1.9)
Исходя из (1.3), записываем второй сомножитель в (1.9):
(1.10)
Теперь рассмотрим первый сомножитель в (1.9). Согласно (1.1), нетрудно получить:
(1.11)
Поэтому
(1.12)
Последнее соотношение является полезным для выходных нейронов, поскольку для них известны целевые и действительные значения выходов. Однако для нейронов внутренних слоев целевые значения выходов не известны.
Таким образом, если нейрон - не выходной нейрон, то снова используя правило цепочки, а также соотношения (1.2) и (1.6), можно записать:
(1.13)
(1.14)
Здесь сумма по исчезает, поскольку частная производная не равна нулю лишь в одном случае, так же как и в (1.5). Подставив (1.14) в (1.9), получим окончательное выражение:
(1.15)
Уравнения (1.12) и (1.15) составляют основу метода обучения многослойной сети.
Преимущество использования сигмоидной функции в качестве нелинейного элемента состоит в том, что она очень напоминает шаговую функцию и, таким образом, может демонстрировать поведение, подобное естественному нейрону. Сигмоидная функция определяется как
и имеет
диапазон 0 <
<
1.
-
положительная константа, влияющая на
растяжение функции: увеличение
сжимает
функцию, а при
функция
приближается
к функции Хевисайда. Этот коэффициент
может использоваться в качестве параметра
усиления, поскольку для слабых входных
сигналов угол наклона будет довольно
крутым и функция будет изменяться
довольно быстро, производя значительное
усиление сигнала. Для больших входных
сигналов угол наклона и, соответственно,
усиление будут намного меньшими. Это
означает, что сеть может принимать
большие сигналы и при этом оставаться
чувствительной к слабым изменениям
сигнала.
Однако главный смысл в использовании данной функции состоит в том, что она имеет простую производную, и это значительно облегчает применение backpropagation-метода. Если выход нейрона задается как
,
то
производная по отношению к данному
нейрону
вычисляется
так:
,
т. е. является простой функцией от выходов нейронов.
1.3.6. Алгоритм настройки нейронной сети
Ниже приведен алгоритм настройки многослойной нейронной сети с использованием backpropagation-правила обучения. Для его применения необходимо, чтобы нейроны имели непрерывно дифференцируемую нелинейную пороговую функцию активации. Пусть это будет сигмоидная функция , поскольку она имеет простую производную.
Алгоритм обучения состоит в следующем.
1°. Задать начальные значения весов и порогов каждого нейрона.
Всем весам и порогам присваиваются малые случайные значения.
2°. Представить входной и выходной образы из обучающей выборки.
Пусть
-
текущий входной образ,
-
текущий выходной образ из обучающей
выборки, где
-
число нейронов входного слоя,
-
число нейронов выходного слоя. При
этом
(смещение)
и
.
При
решении задач классификации образ
может
состоять из нулей, кроме одного элемента,
равного 1, который и будет определять
класс текущего входного образа.
3°. Рассчитать действительные значения выходов.
Значения выходов нейронов каждого слоя рассчитываются как
и передаются на входы нейронов следующего слоя. Выходные значения нейронов выходного слоя равны .
4°. Провести модификацию весов связей.
Начиная от выходного слоя и, двигаясь в обратном направлении, необходимо изменять веса связей следующим образом:
,
где
-
вес связи между
-м
и
-м
нейронами на
-м
шаге;
h - скорость обучения;
- скорость изменения ошибки для нейрона при предъявлении образа .
Для нейронов выходного слоя
,
для нейронов внутренних слоев
,
где под знаком суммы стоят величины, относящиеся к нейронам последующего слоя.
