Автор работы: Пользователь скрыл имя, 18 Декабря 2013 в 19:54, лекция
Термин «нейронные сети» сформировался к середине 50-х годов XX века. Основные результаты в этой области связаны с именами У. Маккалоха, Д Хебба, Ф. Розенблатта, М. Минского, Дж. Хопфилда. Приведем краткую историческую справку. 1943 г. У. Маккалох (W. McCulloch) и У. Питтс (W. Pitts) предложили модель нейрона и сформулировали основные положения теории функционирования головного мозга. 1949 г. Д. Хебб (D. Hebb) высказал идеи о характере соединений нейронов мозга и их взаимодействии (клеточные ансамбли, синаптическая пластичность). Впервые предложил правила обучения нейронной сети.
Согласно методу наименьших квадратов, минимизируемой целевой функцией ошибки нейронной сети является величина:
E(w) = 2 (1.3)
где - реальное выходное состояние нейрона j выходного слоя нейронной сети при подаче на ее входы k-го образа, - требуемое выходное состояние этого нейрона.
Суммирование ведется по всем нейронам выходного слоя и по всем обрабатываемым сетью образам. Минимизация методом градиентного спуска обеспечивает подстройку весовых коэффициентов следующим образом:
(1.4)
где - весовой коэффициент синаптической связи, соединяющей i-й нейрон слоя (q-1) с j-м нейроном слоя q, - коэффициент скорости обучения, 0 < <1
В соответствии с правилом
дифференцирования сложной
где - взвешенная сумма входных сигналов нейрона j, то есть аргумент активационной функции. Так как производная активационной функции должна быть определена на всей оси абсцисс, то функция единичного скачка и прочие активационные функции с неоднородностями не подходят для рассматриваемых нейронных сетей. В них применяются такие гладкие функции, как гиперболический тангенс или классический сигмоид с экспонентой. Например, в случае гиперболического тангенса:
Третий множитель ds/dwil равен выходу нейрона предыдущего слоя уi(q-1)
Что касается первого множителя в (1.5), он легко раскладывается следующим образом:
Здесь суммирование по r выполняется среди нейронов слоя (q+1). Введя новую переменную:
получим рекурсивную формулу для расчетов величин слоя q из величин более старшего слоя (q+1)
Для выходного слоя:
Теперь можно записать (1.4) в раскрытом виде:
Иногда для придания процессу
коррекции весов некоторой
где - коэффициент инерционности; t- номер текущей итерации.
Таким образом, полный алгоритм
обучения нейронной сети с помощью
процедуры обратного
ШАГ 1. Подать на входы сети один из возможных образов и в режиме обычного функционирования нейронной сети, когда сигналы распространяются от входов к выходам, рассчитать значения последних. Напомним, что:
где L - число нейронов в слое (q-1) с учетом нейрона с постоянным выходным состоянием +1, задающего смещение; - i-й вход нейрона j слоя q,
где f{ •) - сигмоид,
где хг- r-я компонента вектора входного образа.
ШАГ 2. Рассчитать для выходного слоя по формуле (1.10)
Рассчитать по формуле (1.11) или (1.12) изменения весов слоя Q.
ШАГ 3. Рассчитать по формулам (1.9) и (1.11) (или (1.9) и (1.12) соответственно и для всех остальных слоев, q=(Q-1)...1.
ШАГ 4. Скорректировать все веса в нейронной сети:
ШАГ 5. Если ошибка сети существенна, перейти на шаг 1. В противном случае - конец.
Сети на шаге 1 попеременно
в случайном порядке
Существует метод исключения локальных минимумов и паралича сети, заключающийся в применении стохастических нейронных сетей.
В алгоритме обратного
распространения вычисляется
При большой величине шага
сходимость будет более быстрой,
но имеется опасность перепрыгнуть
через решение или в случае
сложной формы поверхности
Обычно этот алгоритм видоизменяется таким образом, чтобы включать слагаемое импульса (или инерции). Это способствует продвижению в фиксированном направлении, поэтому, если было сделано несколько шагов в одном и том же направлении, то алгоритм увеличивает скорость, что иногда позволяет избежать локального минимума, а также быстрее проходить плоские участки.
На каждом шаге алгоритма на вход сети поочередно подаются все обучающие примеры, реальные выходные значения сети сравниваются с требуемыми значениями, и вычисляется ошибка. Значение ошибки, а также градиента поверхности ошибок используется для корректировки весов, после чего все действия повторяются. Процесс обучения прекращается либо когда пройдено определенное количество эпох, либо когда ошибка достигнет некоторого определенного малого уровня, либо когда ошибка перестанет уменьшаться.
Рассмотрим проблемы обобщения и переобучения нейронной сети более подробно. Обобщение - это способность нейронной сети делать точный прогноз на данных, не принадлежащих исходному обучающему множеству. Переобучение же представляет собой чрезмерно точную подгонку, которая имеет место, если алгоритм обучения работает слишком долго, а сеть слишком сложна для такой задачи или для имеющегося объема данных.
Продемонстрируем проблемы
обобщения и переобучения на примере
аппроксимации некоторой
Графики полиномов могут иметь различную форму, причем, чем выше степень и число членов, тем более сложной может быть эта форма. Для исходных данных можно подобрать полиномиальную кривую (модель) и получить, таким образом, объяснение имеющейся зависимости. Данные могут быть зашумлены, поэтому нельзя считать, что лучшая модель в точности проходит через все имеющиеся точки.
Полином низкого порядка
может лучше объяснять
Нейронные сети сталкивается с такими же трудностями. Сети с большим числом весов моделируют более сложные функции и, следовательно, склонны к переобучению. Сети же с небольшим числом весов могут оказаться недостаточно гибкими, чтобы смоделировать имеющиеся зависимости. Например, сеть без скрытых слоев моделирует лишь обычную линейную функцию.
Как же выбрать правильную степень сложности сети? Почти всегда более сложная сеть дает меньшую ошибку, но это может свидетельствовать не о хорошем качестве модели, а о переобучении сети.
Выход состоит в использовании
контрольной кросс-проверки. Для
этого резервируется часть
Описанные проблемы приводят к тому, что при практической работе с нейронными сетями приходится экспериментировать с большим числом различных сетей, порой обучая каждую из них по несколько раз и сравнивая полученные результаты. Главным показателем качества результата является здесь контрольная ошибка. При этом, в соответствии с общесистемным принципом, из двух сетей с приблизительно равными ошибками контроля имеет смысл выбрать ту, которая проще.
Необходимость многократных экспериментов приводит к тому, что контрольное множество начинает играть ключевую роль в выборе модели и становится частью процесса обучения. Тем самым ослабляется его роль как независимого критерия качества модели. При большом числе экспериментов есть большая вероятность выбрать удачную сеть, дающую хороший результат на контрольном множестве. Однако для того чтобы придать окончательной модели должную надежность, часто (когда объем обучающих примеров это позволяет) поступают следующим образом: резервируют тестовое множество примеров. Итоговая модель тестируется на данных из этого множества, чтобы убедиться, что результаты, достигнутые на обучающем и контрольном множествах примеров, реальны, а не являются артефактами процесса обучения. Разумеется, для того чтобы хорошо играть свою роль, тестовое множество должно быть использовано только один раз: если его использовать повторно для корректировки процесса обучения, то оно фактически превратится в контрольное множество.
С целью ускорения процесса
обучения сети предложены многочисленные
модификации алгоритма
1) Функции ошибки:
• интегральные функции ошибки по всей совокупности обучающих примеров
• функции ошибки целых и дробных степеней:
2) Процедуры определения
величины шага на каждой
• дихотомия
• инерционные соотношения
• отжиг
3) Процедуры определения направления шага:
• с использованием матрицы производных второго порядка (метод Ньютона)
• с использованием направлений на нескольких шагах (партан метод)