public class AdaDelta<Model: Differentiable>: Optimizer
where
Model.TangentVector: VectorProtocol & PointwiseMultiplicative
& ElementaryFunctions & KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
Оптимизатор AdaDelta.
Реализует алгоритм оптимизации AdaDelta. AdaDelta — это метод стохастического градиентного спуска, основанный на информации первого порядка. Он адаптирует скорость обучения на основе движущегося окна обновлений градиента, вместо того, чтобы накапливать все прошлые градиенты. Таким образом, AdaDelta продолжает обучение, даже если было сделано много обновлений. Он быстрее адаптируется к изменяющейся динамике оптимизационного пространства.
Ссылка: «ADADELTA: метод адаптивной скорости обучения» (Zeiler, 2012).
Декларация
public typealias Model = Model
Скорость обучения.
Декларация
public var learningRate: Float
Коэффициент затухания, соответствующий доле градиента, сохраняемой на каждом временном шаге.
Декларация
public var rho: Float
К знаменателю добавлен небольшой скаляр для улучшения численной стабильности.
Декларация
public var epsilon: Float
Скорость обучения снижается.
Декларация
public var decay: Float
Текущий шаг.
Декларация
public var step: Int
Накопленное экспоненциально убывающее среднее значение квадратов градиентов.
Декларация
public var averageSquared: Model.TangentVector
Накопленные параметры обновляются.
Декларация
public var accumulatedDelta: Model.TangentVector
Создает экземпляр для
model
.Декларация
public init( for model: __shared Model, learningRate: Float = 1, rho: Float = 0.95, epsilon: Float = 1e-6, decay: Float = 0 )
Параметры
learningRate
Скорость обучения. Значение по умолчанию —
1
.rho
Фактор распада. Значение по умолчанию —
0.95
.epsilon
К знаменателю добавлен небольшой скаляр для улучшения числовой стабильности. Значение по умолчанию —
1e-6
.decay
Скорость обучения снижается. Значение по умолчанию —
0
.Декларация
public required init(copying other: AdaDelta, to device: Device)