АдаДельта

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 func update(_ model: inout Model, along direction: Model.TangentVector)
  • Декларация

    public required init(copying other: AdaDelta, to device: Device)