- •Лекции по курсу «Системы обработки экономической информации»
- •Тема 1. Общее представление о Data Mining
- •1. Что такое Data Mining
- •2. Области использования Data Mining
- •3. Типы закономерностей
- •Классы систем Data Mining
- •Тема «Документальные (полнотекстовые) системы данных и знаний»
- •1. Назначение и основные понятия
- •3. Формальное представление смыслового содержания текста
- •Общая функциональная структура дипс
- •Тема «Обработка и поиск текстовой информации»
- •Обработка входящей текстовой информации
- •Поиск текстовой информации
- •Эффективность дипс
- •1. Обработка входящей текстовой информации
- •2. Поиск текстовой информации
- •Оценка качества дипс
- •Тема «знания и их представление»
- •Понятие о знании
- •Логические модели
- •3. Продукционные модели
- •4. Фреймовая модель представления знаний
- •5.Семантические сети
- •Тема «Особенности обработки информации у человека»
- •1. Основные понятия
- •2. Конструкт как единица мыслительной деятельности
- •3. Понятие как единица мыслительной деятельности
- •4. Мысленные модели
- •5. Когнитивные модели.
- •6. Объектно-схемные или качественные модели.
- •7. Синтез моделей с различными уровнями семантики и формализации
- •Тема «Нейросети»
- •Назначение и основные понятия
- •Одиночный нейрон
- •Простые нейросети
- •Назначение и основные понятия
- •2. Структура нейросетей
- •Тема «Нейросети»
- •1. Методы обучения нейронных сетей
- •2. Модель нейронной сети с обратным распространением ошибки
- •1. Методы обучения нейронных сетей
- •Применение нейросетей
- •1) Общая характеристика нейросетевых технологий
- •2 Классы решаемых задач
- •3) Области использования нейросетей
- •Общая характеристика нейросетевых технологий
- •2. Классы решаемых задач
- •3. Области использования нейросетей
- •Тема «Генетические алгоритмы»
- •Классы задач оптимизации
- •Методы решения оптимизационных задач
- •Эволюционные вычисления
- •Основы теории генетических алгоритмов
- •Решение задач с помощью генетических алгоритмов
- •Генетические алгоритмы и нейросети
- •Тема «Метод группового учета аргументов»
- •Особенности моделирования экономических систем
- •Идеология и использование мгуа
- •Общее описание метода мгуа
- •Особенности моделирования экономических систем
- •Идеология и использование мгуа
- •Общее описание метода мгуа
- •Вопросы к 1 модулю «Системы обработки экономической информации»
- •1. Что такое Data Mining
- •Области использования Data Mining
- •Классы систем Data Mining
Тема «Нейросети»
Вопросы:
1. Методы обучения нейронных сетей
2. Модель нейронной сети с обратным распространением ошибки
1. Методы обучения нейронных сетей
Обучение — это процесс, при котором свободные параметры нейронной сети адаптируются в результате ее непрерывной стимуляции внешним окружением. Тип обучения определяется тем способом, которым производятся изменения параметров.
В современной литературе кроме термина “обучение” также используются равноправные понятия “тренировка сети” и “настройка параметров сети”.
В общем можно выделить два основных вида обучения: контролируемое обучение (supervised learning) и самообучение (self-organized learning). Первый вид подразумевает наличие “учителя”, который наблюдает реакцию сети и направляет изменения ее параметров. Во втором случае сеть самоорганизуется под действием внешней среды и изучает ее самостоятельно, без помощи “учителя”. Самообучение свойственно задачам распознавания образов и классификации. При решении задач управления обычно используется контролируемое обучение НС.
Существует две разновидности контролируемого обучения: прямое контролируемое обучение и стимулируемое обучение (reinforcement learning). Так как первый вид появился раньше второго и более распространен, то обычно на него ссылаются просто как на контролируемое обучение.
На рис.1. представлена схема прямого контролируемого обучения. Присутствующий на ней “учитель” обладает знаниями о внешней среде, представленными в виде набора образцов вход-выход. Пара таких образцов называется тренировочным шаблоном, который включает в себя, соответственно, входной шаблон и выходной шаблон. Множество этих пар данных называется тренировочным набором шаблонов.
НС изначально никакими знаниями не обладает. В процессе обучения “учитель” и сеть подвергаются воздействию со стороны внешней среды, то есть на их входы поступает тренировочный сигнал, совпадающий с одним из входных шаблонов. “Учитель” сообщает сети, какова должна быть правильная (желаемая) реакция на поступившее воздействие, выдавая соответствующий выходной шаблон. На основании величины ошибки между реальным и желаемым выходами сети по определенному правилу проводится настройка ее синаптических связей. Повторяя этот процесс итеративно можно настроить НС так, что она будет эмулировать “учителя”, то есть его знания о внешней среде перейдут к ней.
Рис.1. Схема прямого контролируемого обучения
Типичными задачами, решаемыми с помощью прямого обучения, являются аппроксимация неизвестной функции, описываемой набором данных, и идентификация динамического объекта. В этих задачах известны входные сигналы и правильная реакция на них, то есть тренировочный набор шаблонов.
Наиболее известным методом прямого контролируемого обучения слойных прямонаправленных НС является алгоритм обратного распространения ошибки (backpropagation algorithm), представляющий собой обобщение метода наименьших квадратов. Однако, по такой схеме могут работать и другие методы.
Стимулируемое обучение не использует знания “учителя” о желаемом выходе НС, вместо этого обучение проводится по результату оценки проводимого сетью преобразования вход-выход. Оценку выполняет внешнее окружение после подачи на вход сети тренировочного воздействия. При этом настройка параметров НС проводится так, чтобы максимизировать скалярный индекс этой оценки, называемый стимулом (reinforcement signal).
Наиболее характерным примером системы стимулируемого обучения является адаптивная система управления. В ней обучаемой частью является контроллер, а объект управления, внешние воздействия и сигналы задания выступают его внешней средой. В результате воздействия из этой среды контроллер вырабатывает определенный управляющий сигнал, который переводит объект управления в новое состояние. При этом качество управления можно оценить лишь по выходному сигналу объекта. Так как требуемая реакция контроллера, обеспечивающая заданное состояние объекта, заранее неизвестна, то нельзя сформировать тренировочный набор шаблонов, и, следовательно, применить прямое контролируемое обучение. В этом случае возможно лишь стимулируемое обучение контроллера по качеству работы всей системы управления в целом, то есть по оценке состояния внешней среды.
Перечисленные проблемы могут быть решены при использовании методов глобальной оптимизации. Наиболее эффективным из них является генетический алгоритм (ГА). Рассматривая НС как единый набор параметров, ГА способен осуществлять ее оптимальную настройку при размерности поискового пространства достаточной для решения большинства практических задач. При этом спектр рассматриваемых приложений гораздо превосходит возможности алгоритма обратного распространения ошибки [33].
2. Модель нейронной сети с обратным распространением ошибки
Одним из наиболее простых и распространенных алгоритмов обучения нейроосетей по методу обучения с учителем является метод обратного распространения ошибки (back propagation), и представляющий собой некоторое расширение метода наименьших квадратов. Рассмотрим его детальнее.
. Согласно методу наименьших квадратов, минимизируемой целевой функцией ошибки НС является величина:
(1)
где
– реальное выходное состояние нейрона
j выходного слоя N нейронной сети при
подаче на ее входы p-го образа; djp
– идеальное (желаемое) выходное состояние
этого нейрона.
Суммирование ведется по всем нейронам выходного слоя и по всем обрабатываемым сетью образам. Минимизация ведется методом градиентного спуска, что означает подстройку весовых коэффициентов следующим образом:
(2)
Здесь wij – весовой коэффициент синаптической связи, соединяющей i-ый нейрон слоя n-1 с j-ым нейроном слоя n, – коэффициент скорости обучения, 0<<1.
Показано, что:
(3)
Здесь под yj, как и раньше, подразумевается выход нейрона j, а под sj – взвешенная сумма его входных сигналов, то есть аргумент активационной функции. Так как множитель dyj/dsj является производной этой функции по ее аргументу, из этого следует, что производная активационной функция должна быть определена на всей оси абсцисс. В связи с этим функция единичного скачка и прочие активационные функции с неоднородностями не подходят для рассматриваемых НС. В них применяются такие гладкие функции, как гиперболический тангенс или классический сигмоид с экспонентой.
Третий множитель sj/wij, очевидно, равен выходу нейрона предыдущего слоя yi(n-1).
Что касается первого множителя в (3), он легко раскладывается следующим образом:
(5)
Здесь суммирование по k выполняется среди нейронов слоя n+1.
Введя новую переменную
(6)
мы получим рекурсивную формулу для расчетов величин j(n) слоя n из величин k(n+1) более старшего слоя n+1.
(7)
Для выходного же слоя
(8)
Теперь мы можем записать (2) в раскрытом виде:
(9)
Иногда для придания процессу коррекции весов некоторой инерционности, сглаживающей резкие скачки при перемещении по поверхности целевой функции, (9) дополняется значением изменения веса на предыдущей итерации
(10)
где – коэффициент инерционности, t – номер текущей итерации.
Таким образом, полный алгоритм обучения НС с помощью процедуры обратного распространения строится так:
1. Подать на входы сети один из возможных образов и в режиме обычного функционирования НС, когда сигналы распространяются от входов к выходам, рассчитать значения последних. Напомним, что
(11)
где M – число нейронов в слое n-1 с учетом нейрона с постоянным выходным состоянием +1, задающего смещение; yi(n-1)=xij(n) – i-ый вход нейрона j слоя n.
yj(n) = f(sj(n)), где f() – сигмоид (12)
yq(0)=Iq, (13)
где Iq – q-ая компонента вектора входного образа.
2. Рассчитать (N) для выходного слоя по формуле (8).
Рассчитать по формуле (9) или (10) изменения весов w(N) слоя N.
3. Рассчитать по формулам (7) и (9) (или (7) и (10)) соответственно (n) и w(n) для всех остальных слоев, n=N-1,...1.
4. Скорректировать все веса в НС
(14)
5. Если ошибка сети существенна, перейти на шаг 1. В противном случае – конец.
Рис.
1. Диаграмма
сигналов в сети при обучении по алгоритму
обратного распространения
Из выражения (9) следует, что когда выходное значение yi(n-1) стремится к нулю, эффективность обучения заметно снижается. При двоичных входных векторах в среднем половина весовых коэффициентов не будет корректироваться[3], поэтому область возможных значений выходов нейронов [0,1] желательно сдвинуть в пределы [-0.5,+0.5], что достигается простыми модификациями логистических функций. Например, сигмоид с экспонентой преобразуется к виду
(15)
Теперь коснемся вопроса емкости НС, то есть числа образов, предъявляемых на ее входы, которые она способна научиться распознавать. Для сетей с числом слоев больше двух, он остается открытым. Как показано в [4], для НС с двумя слоями, то есть выходным и одним скрытым слоем, детерминистская емкость сети Cd оценивается так:
Nw/Ny<Cd<Nw/Nylog(Nw/Ny) (16)
где Nw – число подстраиваемых весов, Ny – число нейронов в выходном слое.
Следует отметить, что данное выражение получено с учетом некоторых ограничений. Во-первых, число входов Nx и нейронов в скрытом слое Nh должно удовлетворять неравенству Nx+Nh>Ny. Во-вторых, Nw/Ny>1000. Однако вышеприведенная оценка выполнялась для сетей с активационными функциями нейронов в виде порога, а емкость сетей с гладкими активационными функциями, например – (15), обычно больше. Кроме того, фигурирующее в названии емкости прилагательное "детерминистский" означает, что полученная оценка емкости подходит абсолютно для всех возможных входных образов, которые могут быть представлены Nx входами. В действительности распределение входных образов, как правило, обладает некоторой регулярностью, что позволяет НС проводить обобщение и, таким образом, увеличивать реальную емкость. Так как распределение образов, в общем случае, заранее не известно, мы можем говорить о такой емкости только предположительно, но обычно она раза в два превышает емкость детерминистскую.
В продолжение разговора о емкости НС логично затронуть вопрос о требуемой мощности выходного слоя сети, выполняющего окончательную классификацию образов. Дело в том, что для разделения множества входных образов, например, по двум классам достаточно всего одного выхода. При этом каждый логический уровень – "1" и "0" – будет обозначать отдельный класс. На двух выходах можно закодировать уже 4 класса и так далее. Однако результаты работы сети, организованной таким образом, можно сказать – "под завязку", – не очень надежны. Для повышения достоверности классификации желательно ввести избыточность путем выделения каждому классу одного нейрона в выходном слое или, что еще лучше, нескольких, каждый из которых обучается определять принадлежность образа к классу со своей степенью достоверности, например: высокой, средней и низкой. Такие НС позволяют проводить классификацию входных образов, объединенных в нечеткие (размытые или пересекающиеся) множества. Это свойство приближает подобные НС к условиям реальной жизни.
Рассматриваемая НС имеет несколько "узких мест". Во-первых, в процессе обучения может возникнуть ситуация, когда большие положительные или отрицательные значения весовых коэффициентов сместят рабочую точку на сигмоидах многих нейронов в область насыщения. Малые величины производной от логистической функции приведут в соответствие с (7) и (8) к остановке обучения, что парализует НС. Во-вторых, применение метода градиентного спуска не гарантирует, что будет найден глобальный, а не локальный минимум целевой функции. Эта проблема связана еще с одной, а именно – с выбором величины скорости обучения. Доказательство сходимости обучения в процессе обратного распространения основано на производных, то есть приращения весов и, следовательно, скорость обучения должны быть бесконечно малыми, однако в этом случае обучение будет происходить неприемлемо медленно. С другой стороны, слишком большие коррекции весов могут привести к постоянной неустойчивости процесса обучения. Поэтому в качестве обычно выбирается число меньше 1, но не очень маленькое, например, 0.1, и оно, вообще говоря, может постепенно уменьшаться в процессе обучения. Кроме того, для исключения случайных попаданий в локальные минимумы иногда, после того как значения весовых коэффициентов застабилизируются, кратковременно сильно увеличивают, чтобы начать градиентный спуск из новой точки. Если повторение этой процедуры несколько раз приведет алгоритм в одно и то же состояние НС, можно более или менее уверенно сказать, что найден глобальный максимум, а не какой-то другой.
