Стратегии оптимизации и метаалгоритмы
279
8.7.5. Проектирование моделей с учетом простоты оптимизации
Лучшая стратегия улучшения оптимизации не всегда связана с улучшением алгорит-
ма. Вместо этого можно изначально проектировать модели так, чтобы их было проще
оптимизировать.
В принципе, можно было бы использовать немонотонные функции активации, кото-
рые то возрастают, то убывают, но тогда оптимизация оказалась бы крайне трудным де-
лом. На практике
важнее выбирать семейство моделей, легко поддающееся оптимизации,
чем мощный алгоритм оптимизации
. Прогресс в области нейронных сетей за последние
тридцать лет в основном был связан именно с изменением семейства моделей. Стоха-
стический градиентный спуск с учетом импульса, использовавшийся для обучения се-
тей еще в 1980-х годах, и по сей день применяется в самых передовых приложениях.
Говоря конкретно, в современных нейронных
сетях
предпочтение отдается
линей-
ным преобразованиям между слоями и функциями активации, дифференцируемым
почти всюду и имеющим значительный наклон на больших участках своей области
определения. Такие новации в области проектирования моделей, как LSTM, блоки
линейной ректификации и maxout-блоки, все направлены на
использование более
линейных функций, чем в предыдущих моделях типа глубоких сетей с сигмоидны-
ми блоками. У таких моделей есть полезные свойства, упрощающие оптимизацию.
Градиент распространяется сквозь много слоев, при условии что у якобиана линей-
ного преобразования имеются разумные сингулярные значения. К тому же линей-
ные функции монотонно возрастают в одном направлении, так что даже если выход
модели очень далек от правильного, из вычисления градиента сразу становится ясно,
в каком направлении должен сместиться выход, чтобы уменьшить функцию потерь.
Иными словами, современные нейронные сети проектируются так, чтобы
локальная
информация о градиенте достаточно хорошо соответствовала
движению в сторону
далеко находящегося решения.
Есть и другие стратегии проектирования моделей,
способствующие упрощению
оптимизации. Например, линейные пути или прямые связи между слоями уменьша-
ют длину кратчайшего пути от параметров нижних слоев к выходу, а потому смягчают
проблему исчезающего градиента (Srivastava et al., 2015). К идее прямых связей близ-
ка идея о добавлении дополнительных копий выходов, которые были бы соединены
с промежуточными слоями сети, как в GoogLeNet (Szegedy et al., 2014в a) и сетях
с глубоким проникновением учителя (deeply supervised nets) (Lee et al., 2014). Эти
«вспомогательные головы» обучаются решать ту же задачу,
что основной верхний
слой сети, чтобы нижние слои получали больший градиент. По завершении обучения
вспомогательные головы можно отбросить. Это альтернатива стратегиям предобуче-
ния, описанным в предыдущем разделе. При таком подходе можно совместно обучать
все слои на одной стадии, но изменить архитектуру, так чтобы промежуточные слои
(особенно ниже расположенные) могли получать рекомендации о том, что делать, по
более короткому пути. Эти рекомендации несут нижним слоям сигнал об ошибке.
Do'stlaringiz bilan baham: