tf.keras.optimizers.Adadelta
| Просмотреть исходный код на GitHub |
Оптимизатор, реализующий алгоритм Adadelta.
Наследуется от: Optimizer
tf.keras.optimizers.Adadelta(
learning_rate=0.001, rho=0.95, epsilon=1e-07, name='Adadelta',
**kwargs
)
Оптимизация Adadelta — это метод стохастического градиентного спуска, основанный на адаптивном изменении скорости обучения по каждой размерности для решения двух недостатков:
- Постоянное уменьшение скорости обучения на протяжении всего обучения
- Необходимость в ручном выборе глобальной скорости обучения
Adadelta — это более устойчивое расширение Adagrad, которое адаптирует скорость обучения на основе скользящего окна обновлений градиента, а не накапливая все прошлые градиенты. Таким образом, Adadelta продолжает обучение даже после многих обновлений. По сравнению с Adagrad, в оригинальной версии Adadelta не нужно устанавливать начальную скорость обучения. В этой версии начальную скорость обучения можно установить, как и в большинстве других оптимизаторов Keras.
Согласно разделу 4.3 ("Эффективные скорости обучения"), близко к концу этапа обучения, шаги обучения сходятся к 1, что по сути является высокой скоростью обучения, которая приведет к расходимости. Это происходит только в конце этапа обучения, поскольку градиенты и шаги обучения невелики, а постоянная epsilon в числителе и знаменателе доминируют над прошлыми градиентами и обновлениями параметров, которые сближают скорость обучения к 1.
Согласно разделу 4.4 ("Данные речи"), где большая нейронная сеть с 4 скрытыми слоями обучалась на корпусе данных на американском английском языке, ADADELTA использовалась с 100 репликами сети. Используемое значение epsilon равно 1e-6, а rho = 0,95, что сходится быстрее, чем ADAGRAD, с помощью следующей конструкции: def init(self, lr=1.0, rho=0.95, epsilon=1e-6, decay=0., **kwargs):
| Args | |
|---|---|
learning_rate | Значение скорости обучения, число с плавающей точкой или расписание, являющееся tf.keras.optimizers.schedules.LearningRateSchedule. Скорость обучения. Чтобы соответствовать точному виду в оригинальной статье, используйте 1,0. |
rho | Коэффициент распада или число с плавающей точкой. |
epsilon | Постоянная epsilon, используемая для лучшего обуславливания обновления градиента. |
name | Необязательное имя префикса для операций, созданных при применении градиентов. По умолчанию "Adadelta". |
**kwargs | Аргументы ключевых слов. Допускается одно из значений "clipnorm" или "clipvalue". "clipnorm" (число с плавающей точкой) ограничивает градиенты по норме; "clipvalue" (число с плавающей точкой) ограничивает градиенты по значению. |
Ссылка:
| Возможные ошибки | |
|---|---|
ValueError | в случае неверного аргумента. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/keras/optimizers/Adadelta