назад Оглавление вперед


[Старт] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [ 18 ] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71]


18

Aw = -11--+ uhm

Качественно влияние момента на процесс обучения можно пояснить следующим образом. Допустим, что градиент меняется плавно, так что на протяжении некоторого времени его изменением можно пренебречь (мы находимся далеко от дна оврага). Тогда изменение весов можно записать в виде:

Aw =-/7- 1 + + 4... =----,

т.е. в этом случае эффективный темп обучения увеличивается, причем существенно, если момент / = 1. Напротив, вблизи дна оврага, когда направление градиента то и дело меняет

знак из-за описанных выше осцилляции, эффективный темп обучения замедляется до значения близкого к rj:

6Е /-} \

+ /и 3n

Рисунок 6. Введение инерции в алгоритм обучения позволяет адаптивно менять скорость обучения

Дополнительное преимущество от введения момента - появляющаяся у алгоритма способность преодолевать мелкие локальные минимумы. Это свойство можно увидеть, записав разностное уравнение для обучения в виде дифференциального. Тогда обучение методом скорейшего спуска будет описываться уравненем движения тела в вязкой среде: dwidr = -rj1 3n . Введение момента соответствует появлению у такого гипотетического тела инерции, т.е. массы ju: judyi/dr + {\- ju)dyildT = -ril3K. В итоге, "разогнавшись", тело может по

инерции преодолевать небольшие локальные минимумы ошибки, застревая лишь в относительно глубоких, значимых минимумах.

Одним из недостатков описанного метода является введение еще одного глобального настроечного параметра. Мы же, наоборот, должны стремиться к отсутствию таких навязываемых алгоритму извне параметров. Идеальной является ситуация, когда все параметры обучения сами настраиваются в процессе обучения, извлекая информацию о характере рельефа функции ошибки из самого хода обучения. Примером весьма удачного



О, else

Величина шага обновления - своя для каждого веса и адаптируется в процессе обучения:

Если знак производной по данному весу изменил направление, значит предыдущее значение шага по данной координате было слишком велико, и алгоритм уменьшает его в rj < \ раз. В

противном случае шаг увеличивается в т;" > 1 раз для ускорения обучения вдали от минимума.

Мы не затронули здесь более изощренных методов обучения, таких как метод сопряженного градиента, а также методов второго порядка, которые используют не только информацию о градиенте функции ошибки, но и информацию о вторых производных. Их разбор вряд ли уместен при первом кратком знакомстве с основами нейрокомпьютинга.

Вычислтельная сложность обучения

Ранее при обсуждении истории нейрокомпьютинга мы ссылались на относительную трудоемкость процесса обучения. Чтобы иметь хотя бы приблизительное представление о связанных с обучением вычислительных затратах, приведем качественную оценку вычислительной сложности алгоритмов обучения.

Пусть как всегда w - число синаптических весов сети (weights), а р - число обучающих примеров (patterns). Тогда для однократного вычисления градиента функции ошибки dEjdw

требуется порядка р w операций. Допустим для простоты, что мы достаточно близки к искомому минимуму и можем вблизи этого минимума аппроксимировать функцию ошибки

квадратичным выражением £ = (w - w,) h{vi - w,). Здесь н - w x Ж матрица вторых

производных в точке минимума . Оценив эту матрицу по локальной информации (для чего

потребуется ~ pw операций метода bacl<-propagation), можно попасть из любой точки в минимум за один шаг. На этой стратегии построены методы вторго порядка {метод Ньютона).

Альтернативная стратегия - найти требуемые ~ pw параметров за ~ Ж шагов метода первого порядка, затратив на каждом шаге р w операций. Именно такую скорость сходимости (~ w итераций) имеют лучшие алгоритмы первого порядка (например, метод сопряженного градиента). В обоих случаях оптимистическая оценка сложности обучения сети (т.к. она

получена для простейшего из всех возможных - квадратичного - рельефа) составляет ~ pw операций.

алгоритма обучения является т.н. RPROP (от resilient - эластичный), в котором каждый вес имеет свой адаптивно настраиваемый темп обучения.

RPROP стремится избежать замедления темпа обучения на плоских "равнинах" ландшафта функции ошибки, характерного для схем, где изменения весов пропорциональны величине градиента. Вместо этого RPROP использует лишь знаки частных производных по каждому весу.



Оптимизация размеров сети

в описанных до сих пор методах обучения значения весов подбиралось в сети с заданной топологией связей. А как выбирать саму структуру сети: число слоев и количество нейронов в этих слоях? Решающим, как мы увидим, является выбор соотношения между числом весов и числом примеров. Зададимся поэтому теперь следующим вопросом:

Как связаны между собой число примеров Р и число весов в сети W ?

Ошибка аппроксимации

Рассмотрим для определенности двухслойную сеть (т.е. сеть с одним скрытым слоем). Точность аппроксимации функций такой сетью, как уже говорилось, возрастает с числом нейронов скрытого слоя. При Н нейронах ошибка оценивается как Я). Поскольку число выходов

сети не превышает, а как правило - много меньше числа входов, основное число весов в двухслойной сети сосредоточено в первом слое, т.е. W ~ Hd. В этом случае средняя ошибка аппроксимации выразится через общее число весов в сети следующим образом:

арргох

o{d/w)

где d - размерность входов.

Наши недостатки, как известно - продолжения наших достоинств. И упомянутая выше универсальность персептронов превращается одновременно в одну из главных проблем обучающихся алгоритмов, известную как проблема переобучения.

Переобучение

Суть этой проблемы лучше всего объяснить на конкретном примере. Пусть обучающие примеры порождаются некоторой функцией, которую нам и хотелось бы воспроизвести. В теории обучения такую функцию называют учителем. При конечном числе обучающих примеров всегда возможно построить нейросеть с нулевой ошибкой обучения, т.е. ошибкой, определенной на множестве обучающих примеров. Для этого нужно взять сеть с числом весов большим, чем число примеров. Действительно, чтобы воспроизвести каждый пример у нас имеется Р уравнений для W неизвестных. И если число неизвестных меньше числа уравнений, такая система является недоопределенной и допускает бесконечно много решений. В этом-то и состоит основная проблема: у нас не хватает информации, чтобы выбрать единственное правильное решение - функцию-учителя. В итоге выбранная случайным образом функция дает плохие предсказания на новых примерах, отсутствовавших в обучающей выборке, хотя последнюю сеть воспроизвела без ошибок. Вместо того, чтобы обобш,ить известные примеры, сеть запомнила их. Этот эффект и называется переобучением.

На самом деле, задачей теории обучения является не минимизация ошибки обучения, а минимизация ошибки обобщения, определенной для всех возможных в будущем примеров. Именно такая сеть будет обладать максимальной предсказательной способностью. И трудность здесь состоит в том, что реально наблюдаемой является именно и только ошибка обучения. Ошибку обобщения можно лишь оценить, опираясь на те или иные соображения.

[Старт] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [ 18 ] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71]