Кенгуру и обучение нейронных сетей
Уоррен С. Сарл и команда Сетевых Знатоков

(перевод С.Галицкого)

keng3.gif (2757 bytes)    

    Обучение нейронной сети - это форма численной оптимизации, которую можно сравнить с кенгуру, ищущим вершину горы Эверест. Под горой Эверест (самой высокой горой в мире) здесь подразумевается глобальный оптимум, но и вершина сколь-нибудь высокой горы вроде К2 (хороший локальный оптимум) - тоже сойдет. С другой стороны, вершина холма Чейпл Хилл (плохой локальный оптимум) нам не подходит.
    Эта аналогия использует термины поиска максимума, в то время как нейронные сети обычно используют метод поиска минимальной ошибки, такой, например, как метод наименьших квадратов. Однако стоит умножить оценку ошибки на -1, аналогия становится вполне приемлемой. Итак, будем считать, что чем выше кенгуру находится, тем меньше ошибка нейронной сети.

    Направление стрелки компаса будет указывать нашему кенгуру на значения весовых коэффициентов сети. Север-юг символизирует один вес, а запад-восток - другой. Большинство имеют больше двух весовых коэффициентов, но к сожалению в природе пока не наблюдается многомерных ландшафтов. Просто считайте, что при обучении сети с большим количеством весовых коэффициентов ситуация слегка усложняется.

    Начальные значения весовых коэффициентов обычно выбираются случайно, - кенгуру выбрасывается на парашюте из самолета где-то в районе Азии бессердечным пилотом, который потерял карту. Если Вы имеете представление о диапазоне входных значений, то можно дать пилоту инструкции выкинуть кенгуру из самолета поблизости от Гималаев. Если Вы сделали неверный выбор распределения начальных значений для весовых коэффициентов, наш кенгуру может угодить в Индийский Океан и благополучно утонуть.

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

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

keng2.gif (4746 bytes)
    В стабилизированном ньютоновском алгоритме кенгуру дали высотомер, и если прыжок привел в точку ниже исходной, он возвращается назад и делает прыжок покороче. Если применяется пороговая стабилизация, то кенгуру пытается двигаться вверх по максимально крутому маршруту. Если алгоритм не стабилизирован, то кенгуру имеет большие шансы попасть в Шанхай.

    При крутом восхождении с поиском маршрута, туман очень плотный, и кенгуру может лишь сказать, восхождение в каком направлении является самым крутым. Кенгуру скачет в этом направлении до тех пор, пока не почувствует, что начал спускаться. Тут кенгуру ищет новый крутой маршрут и итерирует заново.

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

    Далее следует объяснение принципов метода сопряженных градиентов, адаптированное Тони Плэйтом (1993):
    Метод сопряженных градиентов очень похож на метод крутого восхождения. Разница состоит в том, что кенгуру может накапливать информацию о том, в каких направлениях он прыгал ранее, и предполагает, что гребни горы прямые. Кенгуру выбирает направление прыжка, вспоминая при этом, - а не болтался ли я в том месте, куда прыгаю, полчаса назад?

    В стандартном обратном распространении ошибки, самом распространенном методе обучения сетей, кенгуру от рождения слепой и должен сначала потоптаться на месте, чтобы решить куда идти. Главная проблема состоит в том, что длина прыжка кенгуру находится в зависимости от крутизны склона горы. Около подножия он прыгает резво, но по-малу, вследствие чего продвигается медленно, - ближе к вершине, - может просто соскочить с обрыва и обратно уже не вернуться. Поэтому лучше использовать варьирующуюся величину шага итерации, - так кенгуру ближе к вершине делает все меньшие и меньшие прыжки, и имеет неплохие шансы наконец достичь пика до того, как Гималаи исчезнут с лица Земли.
    В обратном распространении с использованием момента у кенгуру увеличен коэффициент трения о поверхность, он не может делать резких прыжков.
    При обучении он-лайн все время происходят землятрясения и высота пиков меняется. Трудно слепому кенгуру не свалиться в жерло вулкана!


keng1.gif (5083 bytes)

    Учтите, что во всех перечисленных методах кенгуру надеется в лучшем случае достичь вершины горы, около которой его выбросили из самолета. Другими словами, - это методы локального восхождения. Нет гарантий, что гора - Эверест или вообще какое-либо высокое скальное образование. Существует также много методов поиска глобального оптимума.


    В симулированной нормализации (simulated annealing), кенгуру пьяное и прыгает во всех направлениях в течение длительного времени. Во всяком случае, со временем кенгуру трезвеет, и чем больше трезвеет, тем больше шансов запрыгнуть в следующий момент на вершину.

    В методе случайного мультистарта (random multistart method), над Гималаями из самолета рассеивают целое стадо кенгуру. Вся надежда на то, что хоть один из них родился в рубашке.

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

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

ссылки:
Plate, T. (1993), "Re: Kangaroos (Was Re: BackProp without Calculus?),
Usenet article <93Sep8.162519edt.997@neuron.ai.toronto.edu> in comp.ai.neural-nets.

продолжение следует...


назад