Культура
Искусство
Языки
Языкознание
Вычислительная техника
Информатика
Финансы
Экономика
Биология
Сельское хозяйство
Психология
Ветеринария
Медицина
Юриспруденция
Право
Физика
История
Экология
Промышленность
Энергетика
Этика
Связь
Автоматика
Математика
Электротехника
Философия
Религия
Логика
Химия
Социология
Политология
Геология
|
Медведев В.С., Потемкин В.Г. Нейронные сети. MATLAB 6. В. Г. Потемкин
|
Название |
В. Г. Потемкин
|
Анкор |
Медведев В.С., Потемкин В.Г. Нейронные сети. MATLAB 6.doc |
Дата |
26.04.2017 |
Размер |
14.83 Mb. |
Формат файла |
|
Имя файла |
Медведев В.С., Потемкин В.Г. Нейронные сети. MATLAB 6.doc |
Тип |
Книга
#3790
|
страница |
10 из 50 |
|
3.2. Методы обучения
Как только начальные веса и смещения нейронов установлены пользователем или
с помощью датчика случайных чисел, сеть готова для того, чтобы начать процедуру ее обучения. Сеть может быть обучена решению различных прикладных задач – аппроксимации функций, идентификации и управления объектами, распознавания образов, классификации объектов и т. п. Процесс обучения требует набора примеров ее желаемого
поведения – входов p и желаемых (целевых) выходов t; во время этого процесса веса
и смещения настраиваются так, чтобы минимизировать некоторый функционал ошибки. По умолчанию в качестве такого функционала для сетей с прямой передачей сигналов принимается среднеквадратичная ошибка между векторами выхода a и t. Ниже обсуждается несколько методов обучения для сетей с прямой передачей сигналов.
При обучении сети рассчитывается некоторый функционал, характеризующий качество обучения:
, (3.1)
где J – функционал; Q – объем выборки; M – число слоев сети; q – номер выборки;
SM – число нейронов выходного слоя; – вектор сигнала на выходе сети; – вектор желаемых (целевых) значений сигнала на выходе сети для выборки
с номером q.
Затем с помощью того или иного метода обучения определяются значения настраиваемых параметров (весов и смещений) сети, которые обеспечивают минимальное значение функционала ошибки. Большинство методов обучения основано на вычислении градиента функционала ошибки по настраиваемым параметрам.
3.2.1. Обучение однослойной сети
Наиболее просто градиент функционала вычисляется для однослойных нейронных
сетей. В этом случае M= 1 и выражение для функционала принимает вид:
, (3.2)
где – функция активации; – сигнал на входе функции активации
для i-го нейрона; – вектор входного сигнала; R – число элементов вектора входа;
S – число нейронов в слое; – весовые коэффициенты сети.
Включим вектор смещения в состав матрицы весов , а вектор входа дополним элементом, равным 1.
Применяя правило дифференцирования сложной функции, вычислим градиент функционала ошибки, предполагая при этом, что функция активации дифференцируема:
(3.3)
Введем обозначение
, (3.4)
и преобразуем выражение (3.3) следующим образом:
. (3.5)
Полученные выражения упрощаются, если сеть линейна. Поскольку для такой сети выполняется соотношение то справедливо условие . В этом случае выражение (3.3) принимает вид:
(3.6)
Выражение (3.6) положено в основу алгоритма WH, применяемого для обучения линейных нейронных сетей [45].
Линейные сети могут быть обучены и без использования итерационных методов,
а путем решения следующей системы линейных уравнений:
, (3.7)
или в векторной форме записи:
. (3.8)
Если число неизвестных системы (3.7) равно числу уравнений, то такая система может быть решена, например, методом исключения Гаусса с выбором главного элемента. Если же число уравнений превышает число неизвестных, то решение ищется с использованием метода наименьших квадратов.
3.2.2. Обучение многослойной сети
Архитектура многослойной сети существенно зависит от решаемой задачи. Для линейных нейронных сетей может быть установлена связь между суммарным количеством весов и смещений с длиной обучающей последовательности. Для других типов сетей число слоев и нейронов в слое часто определяется опытом, интуицией проектировщика и эвристическими правилами.
Обучение сети включает несколько шагов:
выбор начальной конфигурации сети с использованием, например, следующего эвристического правила: количество нейронов промежуточного слоя определяется половиной суммарного количества входов и выходов;
проведение ряда экспериментов с различными конфигурациями сети и выбор той, которая дает минимальное значение функционала ошибки;
-
если качество обучения недостаточно, следует увеличить число нейронов слоя или количество слоев;
если наблюдается явление переобучения, следует уменьшить число нейронов в слое или удалить один или несколько слоев.
Нейронные сети, предназначенные для решения практических задач, могут содержать до нескольких тысяч настраиваемых параметров, поэтому вычисление градиента может потребовать весьма больших затрат вычислительных ресурсов. С учетом специфики многослойных нейронных сетей для них разработаны специальные методы расчета градиента, среди которых следует выделить метод обратного распространения ошибки [18, 37, 41].
Метод обратного распространения ошибки
Термин "обратное распространение" относится к процессу, с помощью которого могут быть вычислены производные функционала ошибки по параметрам сети. Этот процесс может использоваться в сочетании с различными стратегиями оптимизации. Существует много вариантов и самого алгоритма обратного распространения. Обратимся к одному из них.
Рассмотрим выражение для градиента критерия качества по весовым коэффициентам для выходного слоя M:
(3.9)
где – число нейронов в слое; – k-й элемент вектора выхода слоя M для элемента выборки с номером q.
Правило функционирования слоя M:
(3.10)
Из уравнения (3.8) следует
(3.11)
После подстановки (3.11) в (3.9) имеем:
Если обозначить
(3.12)
то получим
(3.13)
Перейдем к выводу соотношений для настройки весов слоя M–1
(3.14)
где
Для слоев M–2, M–3, …,1 вычисление частных производных критерия J по элементам матриц весовых коэффициентов выполняется аналогично. В итоге получаем следующую общую формулу:
(3.15)
где r – номер слоя
На рис. 3.6 представлена схема вычислений, соответствующая выражению (3.15).
Рис. 3.6
На этой схеме символом * обозначена операция поэлементного умножения векторов, а символом ** – умножение вектора на aT; символ, обозначающий номер элемента выборки, для краткости опущен.
Характеристика методов обучения
Методы, используемые при обучении нейронных сетей, во многом аналогичны методам определения экстремума функции нескольких переменных. В свою очередь, последние делятся на 3 категории – методы нулевого, первого и второго порядка.
В методах нулевого порядка для нахождения экстремума используется только информация о значениях функции в заданных точках.
В методах первого порядка используется градиент функционала ошибки по настраиваемым параметрам
(3.16)
где – вектор параметров; – параметр скорости обучения; – градиент функционала, соответствующие итерации с номером k.
Вектор в направлении, противоположном градиенту, указывает направление кратчайшего спуска по поверхности функционала ошибки. Если реализуется движение в этом направлении, то ошибка будет уменьшаться. Последовательность таких шагов в конце концов приведет к значениям настраиваемых параметров, обеспечивающим минимум функционала. Определенную трудность здесь вызывает выбор параметра скорости обучения . При большом значении параметра сходимость будет быстрой, но существует опасность пропустить решение или уйти в неправильном направлении. Классическим примером является ситуация, когда алгоритм очень медленно продвигается по узкому оврагу с крутыми склонами, перепрыгивая с одного на другой. Напротив, при малом шаге, вероятно, будет выбрано верное направление, однако при этом потребуется очень много итераций. В зависимости от принятого алгоритма параметр скорости обучения может быть постоянным или переменным. Правильный выбор этого параметра зависит от конкретной задачи и обычно осуществляется опытным путем; в случае переменного параметра его значение уменьшается по мере приближения к минимуму функционала.
В алгоритмах сопряженного градиента [12] поиск минимума выполняется вдоль
сопряженных направлений, что обеспечивает обычно более быструю сходимость, чем
при наискорейшем спуске. Все алгоритмы сопряженных градиентов на первой итерации начинают движение в направлении антиградиента
(3.17)
Тогда направление следующего движения определяется так, чтобы оно было сопряжено
с предыдущим. Соответствующее выражение для нового направления движения является комбинацией нового направления наискорейшего спуска и предыдущего направления:
(3.18)
Здесь – направление движения, – градиент функционала ошибки, – коэффициент соответствуют итерации с номером k. Когда направление спуска определено,
то новое значение вектора настраиваемых параметров вычисляется по формуле
. (3.19)
Методы второго порядка требуют знания вторых производных функционала ошибки.
К методам второго порядка относится метод Ньютона. Основной шаг метода Ньютона определяется по формуле
, (3.20)
где – вектор значений параметров на k-й итерации; H – матрица вторых частных производных целевой функции, или матрица Гессе; – вектор градиента на k-й итерации. Во многих случаях метод Ньютона сходится быстрее, чем методы сопряженного градиента, но требует больших затрат из-за вычисления гессиана. Для того чтобы избежать вычисления матрицы Гессе, предлагаются различные способы ее замены приближенными выражениями, что порождает так называемые квазиньютоновы алгоритмы (алгоритм метода секущих плоскостей OSS [1], алгоритм LM Левенберга – Марквардта [17]).
|
|
|