Есть что-то волшебное в наблюдении за тем, как сеть учится, становится все лучше, делая небольшие шаги. Процесс медленный, но если хватает обучающих примеров и сеть достаточно велика, алгоритмы обучения могут найти такое представление, которое хорошо обобщается на новые входные данные. Когда процесс повторяется при случайно выбранном наборе весов, каждый раз учится другая сеть, но со схожими характеристиками. Разные сети могут решить одну и ту же проблему; это влияет на то, что мы должны ожидать, когда сумеем восстановить полный набор связей в мозге разных людей. Если у многих сетей одинаковое поведение, ключ к их пониманию – используемые мозгом алгоритмы обучения, найти которые легче.
Рис. 8.4. Невыпуклые и выпуклые функции стоимости. Графики показывают зависимость функции стоимости J (θ) от параметра θ. Выпуклая функция (справа) имеет только один – глобальный – минимум, которого можно достичь, двигаясь вниз по кривой из любого места на ней. Представьте, что вы лыжник и всегда разворачиваете свои лыжи к самому крутому спуску. Вы гарантированно доберетесь до низа. Напротив, невыпуклая функция стоимости (слева) может иметь локальные минимумы, которые являются ловушками, мешающими найти глобальный минимум при спуске. Как следствие, невыпуклые функции стоимости трудно оптимизировать. Однако этот одномерный пример вводит в заблуждение. Когда есть много параметров (обычно миллионы в нейронной сети), могут быть определенные (седловые) точки, выпуклые в одних измерениях и вогнутые в других. Когда вы находитесь в такой точке, всегда есть направление, чтобы спуститься вниз
Понимание глубокого обучения
В задачах с выпуклой оптимизацией отсутствуют локальные минимумы и гарантируется сходимость к глобальному минимуму (рис. 8.4). Эксперты по оптимизации утверждали, что, так как обучение сетей со скрытыми элементами было задачей невыпуклой оптимизации, мы попадали в локальные минимумы и впустую тратили время (рис. 8.4). Опыт показал, что они ошибались. Но почему? Теперь мы знаем, что в многомерных пространствах локальные минимумы функции стоимости редки, пока вы не дойдете до заключительных этапов обучения. На ранних стадиях почти все направления ведут под гору, и на этом пути есть седловые точки, где в одних измерениях можно пойти вверх по ошибке, а в других – вниз. Предположение, что вы застрянете в локальных минимумах, основано на решении проблем в пространстве с малым числом измерений (см. рис. 8.4), где меньше запасных выходов.
У современных моделей глубоких сетей миллионы элементов и миллиарды весов. Миллиардномерное пространство параметров – кошмар для статистики. Специалисты по статистике традиционно анализируют простые модели с несколькими характеристиками, чтобы доказать предположения, используя небольшие наборы данных. Они заверили нас, что при таком множестве параметров мы добьемся безнадежной переподгонки данных, или чрезмерного обучения, то есть сеть просто запомнит примеры и не сможет обобщить их на новые тестовые наборы. Но мы использовали методы, такие как принудительное снижение весов, если они не делали ничего полезного, что помогло бы избежать переподгонки. Сейчас, чтобы обойти эту проблему, для обучения глубоких сетей используются еще более сложные методы регуляризации.
Джеффри Хинтон изобрел отлично продуманный метод регуляризации – исключение (дропаут, dropout)[197]
. Во время каждой эпохи обучения[198], когда градиент оценивается по ряду примеров и делает шаг в пространстве весов, половина единиц случайным образом вырезается из сети. А значит, в следующую эпоху обучается другая сеть. Как следствие, в каждую эпоху остается меньше параметров для обучения, и у полученной в результате сети меньше зависимостей между единицами, чем если бы в каждую эпоху обучалась одна и та же большая сеть. Дропаут уменьшает частоту ошибок в глубоких сетях на 10 процентов, что стало значительным прогрессом. В 2009 году компания Netflix провела открытый конкурс, предложив приз в миллион долларов тому, кто сможет уменьшить ошибку их системы рекомендаций на 10 процентов[199]. Это основная технология для онлайн-трансляций. Почти каждый магистрант в области машинного обучения принял участие в конкурсе[200].