Боровиков В.П. - Нейронные сети (778916), страница 16
Текст из файла (страница 16)
В случае нейронной сети поверхность ошибок имеет гораздо более сложное строение и обладает рядом неприятных свойств, в частности, может имсть локальные минимумы (точки, самые низкие в некоторой своей окрестности, но лсжашие выше глобального минимума), плоские участки, седловые точки и длинные узкие овраги. Аналитическими срсдствами невозможно определить положение глобального минимума на поверхности ошибок, поэтому обучение нейронной сети, по сути дела, заключается в исследовании этой поверхности. Отталкиваясь от случайной начальной конфигурации вссов и порогов (т.с. случайно взятой точки на поверхности ошибок), алгоритм обучения постепенно отыскивает глобальный минимум.
Как правило, для этого вычисляется градиент (наклон) 83 Неаранные сепа. ЗТАТ!ЗТ!СА перга! 'ггеГегогКе поверхности ошибок в данной точке, а затем эта информация используется для продвижения вниз по склону. В конце концов, алгоритм останавливается в нижней точке, которая может оказаться всего лишь локальным минимумом (а если повезет — глобальным минимумом). Аяаорипзм обрагпноао распросгпраненыя Самый известный способ обучения нейронной сети — так называемый алгоритм обратного распространения (Ьас!с ргораяа!!оп; см. Райегзоп, 1996; Наук1п, 1994; Рацзей, 1994). Существуют современные алгоритмы второго порядка, такие, как метод сопряженных градиентов и метод Левенберга-Маркара (В1зЬор, 1995; БЬерЬеп1, 1997) (оба они реализованы в пакете БТ лепта! Фе!и ог!гз), которые на многих задачах работают существенно быстрее (иногда на порядок).
Ниже мы опишем алгоритм обратного распространения, который наиболее прост для понимания и в некоторых случаях имеет определенные преимущества. Разработаны также эвристические модификации этого алгоритма, хорошо работающие для определенных классов задач: быстрое распространение (РаЬ1гпап, 1988) и «дельта-дельта с чертой» ()асоЬз, 1988)— оба они реализованы в пакете БТ 7г!еиаа! йгеги ог!гз. В алгоритме обратного распространения вычисляется вектор градиента поверхности ошибок. Этот вектор указывает направление кратчайшего спуска по поверхности из данной точки, поэтому если мы «немного» продвинемся по нему, ошибка уменьшится.
Последовательность таких шагов, замедляющаяся по мере приближения ко дну, в конце концов, приведет к минимуму того или иного типа. Определенную трудность здесь представляет вопрос о необходимой длине шага, При большой длине шага сходимость будет более быстрой, но имеется опасность перепрыгнуть через решение или, если поверхность ошибок имеет особо вычурную форму, уйти в неправильном направлении. Классическим примером такого явления при обучении сети служит ситуация, когда алгоритм очень медленно продвигается по узкому оврагу с крутыми склонами, прыгая с одной его стороны на другую.
Напротив, при маленьком шаге, вероятно, будет схвачено верное направление, однако при этом потребуется очень много итераций. На практике величина шага берется пропорциональной крутизне склона (так что алгоритм замедляет ход вблизи минимума) с некоторой константой, которая называется скоростью обучения. Правильный выбор скорости обучения зависит от конкретной задачи и обычно подбирается опытным путем; эта константа может также зависеть от времени, уменьшаясь по мерс продвижения к минимуму. Обычно этот алгоритм видоизменяется таким образом, чтобы включать слагаемое импульса (или инерции).
Это слагаемое способствует продвижснию в фиксированном направлении, поэтому если было сделано несколько 84 Гпава 4. Общвй обзор нейронных се~пей шагов в одном и том же направлении, то алгоритм «увеличивает скорость», что иногда позволяет избежать локального минимума, а также быстрее проходить плоские участки. Таким образом, алгоритм действует итеративно, и его шаги принято называть эпохами. На каждой эпохе на вход сети поочередно подаются все обучающие наблюдения, выходные значения сети сравниваются с целевыми значениями и вычисляется ошибка.
Значения ошибки, а также градиента поверхности ошибок используются для корректировки весов, после чего все действия повторяются. Начальная конфигурация сети выбирается случайным образом, и процесс обучения прекращается либо когда пройдено определенное количество эпох, либо когда ошибка достигнет некоторого определенного уровня малости нли вовсе перестанет уменьшаться (пользователь может сам выбрать нужное условие остановки). Переобучение и обобщение Одна из наиболее серьезных трудностей изложенного подхода заключается в том, что таким образом мы минимизируем не ту ошибку, которую на самом деле нужно минимизировать, — ошибку, которую можно ожидать от сети, когда будут подаваться на вход совершенно новые наблюдения. Иначе говоря, мы хотели бы, чтобы нейронная сеть обладала способностью обобщать результат на новые наблюдения.
В действительности, сеть обучается минимизировать ошибку на обучающем множестве, и в отсутствие идеального и бесконечно большого обучающего множества это совсем не то же самое, что минимизировать «настояшую» ошибку на поверхности ошибок в заранее неизвестной модели явления (В1зЬор, 1995). Сильнее всего это различие проявляется в проблеме переобучения, или излишней подгонки. Это явление проще будет продемонстрировать на примере аппроксимации посредством полиномов, при этом суть явления абсолютно та же.
Полипом (или многочлсн) — это выражение, содержащее только константы и целыс степени независимой переменной, например, у = 2х+ 3 или у = Зх'+ 4х+ 1. Графики полиномов могут иметь различную форму, причем, чем выше степень многочлена (и тем самым, чем больше членов в него входит), тем более сложной может быть эта форма. Если у нас есть некоторые данные, мы можем попробовать подогнать к ннм полиномиальную кривую (модель) и получить таким образом объяснение для имеюшейся зависимости.
Наши данные могут быть зашумлены, поэтому нельзя считать, что самая лучшая модель задается кривой, которая в точности проходит через все имеющиеся точки. Полипом низкого порядка может быть недостаточно гибким средством для аппроксимации данных, в то время как полипом высокого порядка, как, например, показанный на рис. 4. 3, может оказаться чересчур гибким и бу- Недронные оегои. ЗТАТШТ! СА ггеога! гге[аогхе дст точно слсдовать данным, принимая при этом замысловатую форму, не имеющую никакого отношения к форме настоящей зависимости. Нейронная сеть сталкивается с точно такой же трудностью. Сети с большим числом весов моделируют более сложные функции и, следовательно, Ряс.
4.3 склонны к переобучению. Сеть же с небольшим числом вссов может оказаться недостаточно гибкой, чтобы смоделировать имеющуюся зависимость. Например, сеть без промежуточных слосв на самом деле моделирует обычную линейную функцию, Как жс выбрать «правильную» степень сложности для сети? Почти всегда более сложная сеть дает меньшую ошибку, но это может свидетельствовать не о хорошем качестве модели, а о переобучении. Ответ состоит в том, чтобы использовать механизм контрольной кросс-проверки. Мы резервируем часть обуча1ощих наблюдений и не используем их в обучении по алгоритму обратного распространения. Вместо этого, по мере работы алгоритма, они используются для независимого контроля результата.
В самом начале работы ошибка сети на обучающем и контрольном множестве будет одинаковой (если они существенно отличаются, то, вероятно, разбиение всех наблюдений на два множества было неоднородно). По мере того как сеть обучается, ошибка обучения, естественно, убывает. И пока обучение уменьшает действительную функцию ошибок, ошибка на контрольном множестве также будет убывать. Если же контрольная ошибка перестала убывать или даже стала расти, это указывает на то, что сеть начала слишком близко аппрокснмироватьданные и обучение следует остановить. Это явление чересчур точной аппроксимации и называется переобучением г',в пакете 5Т №и~и! №Гнюг/сз можно задать автоматическую остановку обучения при появлении эффекта переобучения).
Если такое случилось, то обычно советуют уменьшить число скрытых элементов и/или слоев, ибо сеть является слишком мошной для данной задачи. Если же сеть, наоборот, была взята недостаточно богатой для того, чтобы моделировать имеющуюся зависимость, то переобучения, скорсс всего, не произойдет, и обе ошибки — обучения и проверки — нс достигнут достаточного уровня малости.
Описанные проблемы с локальными минимумами и выбором размера ости приводят к тому, что при практической работе с нейронными сетями, как правило, приходится экспериментировать с большим числом различных сетей, порой обучая каждую из нпх несколько раз (чтобы не быть введенным в заблуждение локальнымп минимумами) и сравнивая полученные результаты. Главным показателем качества рсзультата является здесь контрольная ошиб- 86 Гнева 4. Общоб обзор небронных оевеб ка. При этом в соответствии с обшенаучным принципом, согласно которому при прочих равных показателях следует предпочесть более простую модель, из двух сетей с приблизительно равными ошибками контроля имеет смысл выбрать ту, которая меньше по размеру.
Необходимость многократных экспериментов ведет к тому, что контрольнос множество начинает играть ключевую роль в выборе модели, т.е. становится частью процесса обучения. Тем самым ослабляется его роль как независимого критерия качества модели — при большом числе экспериментов есть риск выбрать «удачную» сеть, дающую хороший результат на контрольном множсстве.
Для того чтобы придать окончательной модели должную надежность, часто (по крайней мере, когда объем обучающих данных это позволяст) поступают так: резервируют еше одно тестовое множество наблюдений. Итоговая модель тестируется на данных из этого множества, чтобы убедиться, что результаты, достигнутые на обучающем и контрольном множествах, реальны, а не являются артефактами процесса обучения. Разумеется, для того чтобы хорошо играть свою роль, тестовое множество должно быть использовано только один раз.
Если его использовать повторно для корректировки процесса обучения, то оно фактически превратится в контрольное множество. Итак, после выбора входных переменныхдля построения сети необходимо выполнить следующие операции: ° Выбрать начальную конфигурацию сети (например, один промежуточный слой с числом элементов в нем, равным полусумме числа входов и числа выходов — БТ №ига! №!н огйз предложит вам такую конфигурацию по умолчанию). ° Провести ряд экспериментов с различными конфигурациями, запоминая при этом лучшую сеть (в смысле контрольной ошибки).
В пакете БТ №ига! №!н огкз предусмотрено автоматическое запоминание лучшей сети во время эксперимента. Для каждой конфигурации следует провести несколько экспериментов, чтобы не получить ошибочный результат из-за того, что процссс обучения попал в локальный минимум. ° Если в очередном эксперименте наблюдается нсдообучение (сеть не выдаст результат приемлемого качества), попробовать добавить дополнитсльныс нейроны в промсжуточный слой (слои). Если это не помогает, попробовать добавить новый промежуточный слой. ° Если имеет место псрсобучснис (контрольная ошибка стала расти), попробовать удалить несколько скрытых элементов или даже несколько промежуточных слоев. Многократное повторение эвристичсских экспериментов в лучшем случае довольно утомительно, и поэтому в пакет БТ №иси! №гногкз включен специальный алгоритм поиска, который автоматически проделает все эти Невронные сею».















