Ускойчевый к задержке алгоритм SGD 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Ускойчевый к задержке алгоритм SGD



McMahan и Streeter[21] расширяют AdaGrad для параллельной настройки путём разработки устойчивых к задержкам (delay-tolerant) алгоритмов, которые адаптируются не только к прошлым градиентам, но и к задержкам обновления.

Показана хорошая работа на практике.

 

TensorFlow

TensorFlow [22] – среда Google (недавно открыт её код) для реализации и развёртывания крупномасштабных моделей машинного обучения. Он основан на их опыте работы с DistBelief и уже используется внутри компании для выполнения вычислений на большом количестве мобильных устройств, а также в крупно распределённых системах. Для распределённого выполнения граф вычислений разбивается на подграф для каждого устройства, а связь осуществляется с использованием пар узлов отправки / получения.

 

Эластичное усреднение SGD

Zhang et al. [23] предлагают SGD для эластичного усреднения (EASGD) (Elastic Averaging), который связывает параметры исполнителей асинхронного SGD с силой упругости (elastic force), т.е. центральной переменной, хранящейся на сервере параметров. Это позволяет локальным переменным колебаться дальше от центральной переменной, что в теории позволяет больше исследовать пространство параметров. Они эмпирически показывают, что эта увеличенная способность к разведке ведет к улучшению производительности путём поиска новых локальных оптимумов.


Дополнительные стратегии для оптимизации SGD

Наконец, представим дополнительные стратегии, которые можно использовать вместе с любым из ранее упомянутых алгоритмов для дальнейшего повышения производительности SGD. Большой обзор других распространённых приёмов см. в [24].

 

Перемешивание и учебный план обучения

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

В некоторых случаях, стремясь решать всё более сложные задачи, подача обучающих примеров в содержательном порядке может фактически привести к повышению производительности и лучшей сходимости. Метод установления этого осмысленного порядка называется учебным планом обучения (Curriculum Learning) [25].

Zaremba & Sutskever[26] смогли только обучить LSTM -ы оценке простых программ с помощью учебного плана обучения и показать, что комбинированная или смешанная стратегия лучше наивной, которая сортирует примеры по возрастающей сложности.

 

Пакетная нормализация

Чтобы облегчить обучение, обычно нормализуем начальные значения параметров, инициализируя так, чтобы их среднее было ноль (zero mean), а дисперсиеяединицей (unit variance). По мере продвижения обучения и обновления параметров в разной степени эта нормализация теряется, замедляя обучение и усиливая изменения по мере глубины сети.

Пакетная нормализация (batch normalization) [27] восстанавливает эти нормализации для каждой мини-партии, а изменения также через эту операцию обратно-распространяются (back-propagated) по сети. Делая нормализацию частью архитектуры модели, можно использовать более высокие скорости обучения и уделять меньше внимания параметрам инициализации. Пакетная нормализация дополнительно действует как регуляризатор, уменьшая (а иногда даже устраняя) необходимость в (выбывших) Dropout (метод регуляризации ИНС для предотвращения переобучения сети. Суть метода: в процессе обучения выбирается слой, из которого случайным образом выбрасывается некоторое число нейронов (например, 30%), выключаются из дальнейших вычислений. Такой приём улучшает эффективность обучения и качество результата. Более обученные нейроны получают в сети больший вес).

 

Ранняя остановка

По словам Geoff Hinton: «Ранняя остановкапрекрасный бесплатный обед» (слайд 63, NIPS 2015). Нужно всегда отслеживать ошибки в проверочном наборе (validation set) во время обучения и останавливаться (с некоторым терпением), если проверочная ошибка (validation error) улучшается недостаточно.

 

Градиент шума

Neelakantan et al. [28] добавили шум, который следует распределению Гаусса N(0,σ t 2) для каждого обновления градиента:

gt , i = gt , i + N(0,σ t 2)

Авторы согласно следующему распределению отжига выбирают дисперсию:

σ t 2 = η / (1+t)γ

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


Заключение

В данной статье были рассмотрены 3 варианта градиентного спуска, среди которых мини-пакетный градиентный спуск является наиболее популярным. Затем были исследованы алгоритмы, которые наиболее часто используются при оптимизации: SGD, Импульс, ускоренный градиент Нестерова, Adagrad, Adadelta, RMSprop, Adam, а также различные алгоритмы для оптимизации асинхронной SGD. Наконец, рассмотрели другие стратегии улучшения SGD, такие как перемешивание и учебный план обучения, пакетная нормализация и ранняя остановка.

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

Существуют ли очевидные алгоритмы для улучшения SGD, которые были пропущены? Какие уловки Вы используете для облегчения обучения SGD?

Расскажите в комментариях к исходной статье.



Поделиться:


Последнее изменение этой страницы: 2019-11-02; просмотров: 101; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.97.189 (0.008 с.)