Скорость обучения. Скорость обучения определяет, как быстро следует изме-нять вектор параметров при перемещении в пространстве поиска. Если скорость обучения слишком велика, то мы, возможно, приблизимся к цели быстрее (реже придется вычислять ошибку), но из-за большой величины шага можем проско-чить мимо наилучшего решения.
100 Основания глубоких сетей
Высокая скорость обучения и устойчивость
Еще один побочный эффект высокой скорости обучения – опасность, что процесс обучения вообще не сойдется.
Если же скорость обучения слишком мала, то процесс обучения может занять больше времени, чем мы рассчитывали. В таком случае алгоритм обучения ста-новится неэффективным. Проблема заключается в том, что скорость обучения сильно зависит от набора данных и даже от других гиперпараметров. Из-за этого подбор правильных гиперпараметров отнимает много времени и усилий.
Можно также постепенно уменьшать скорость обучения, руководствуясь неко-торым правилом. Мы вернемся к этому вопросу в главах 6 и 7.
Важность гиперпараметра «скорость обучения»
Скорость обучения считается одним из важнейших гиперпараметров нейронных сетей.
Импульс Нестерова. В «бесхитростном» варианте СГС градиентиспользуется не-посредственно, и это создает проблему, потому что градиенты по всем параметрам могут оказаться близки к нулю. Тогда СГС будет совершать очень малые шаги. И на-оборот, если градиент очень большой, то шаги будут слишком велики. Чтобы как-то справиться с этими трудностями, можно воспользоваться несколькими методами:
метод импульса Нестерова;
RMSProp;
Adam;
AdaDelta.
DL4J и корректоры
Метод Нестерова, RMSProp, Adam и AdaDelta в DL4J называются «корректорами». Многие термины, употребляемые в этой книге, имеют общее значение во всей литературе по глубо-кому обучению, но этот специфичен для DL4J.
Обучение можно ускорить, увеличив импульс, но тогда модель может проско-чить оптимальные значения параметров и не найти минимальную ошибку. Им-пульс – это коэффициент в диапазоне от 0.0 до 1.0, применяемый к скорости из-менения весов со временем. Обычно выбирают значение между 0.9 и 0.99.
AdaGrad. Метод AdaGrad21 – еще один способ нахождения «правильной» скоро-сти обучения. В названии отражена идея адаптивного использования субгради-ентных методов для динамического управления скоростью обучения22 алгоритма оптимизации. AdaGrad демонстрирует монотонное убывание и никогда не приво-дит к выставлению скорости обучения, превышающей начальное значение.
AdaGrad вычисляется квадратный корень из суммы квадратов прошлых гра-диентов. В начале процесса AdaGrad ускоряет обучение, а ближе к точке сходимо-сти замедляет его, обеспечивая более гладкое обучение.
RMSProp. RMSprop – очень эффективный, но до сих пор не опубликованный метод адаптивного изменения скорости обучения. Забавно, но все, кто его ис-пользуют, ссылаются на слайд 29 из лекции Джеффри Хинтона на сайте Coursera23.
Duchi, Hazan and Singer, 2011. Adaptive Subgradient Methods for Online Learning and Stochastic Optimization // http://jmlr.org/papers/v12/duchi11a.html.
http://cs231n.github.io/neural-networks-3/.
http://cs231n.github.io/neural-networks-3/.
Общие архитектурные принципы глубоких сетей 101
Do'stlaringiz bilan baham: |