AdaDelta

public class AdaDelta<Model: Differentiable>: Optimizer
where
  Model.TangentVector: VectorProtocol & PointwiseMultiplicative
    & ElementaryFunctions & KeyPathIterable,
  Model.TangentVector.VectorSpaceScalar == Float

Bir AdaDelta optimize edici.

AdaDelta optimizasyon algoritmasını uygular. AdaDelta, birinci dereceden bilgiye dayanan stokastik bir gradyan iniş yöntemidir. Öğrenme oranlarını, geçmiş tüm degradeleri biriktirmek yerine, hareketli bir degrade güncellemeleri penceresine göre uyarlar. Böylece AdaDelta birçok güncelleme yapılsa bile öğrenmeye devam ediyor. Optimizasyon problem alanının değişen dinamiklerine daha hızlı uyum sağlar.

Referans: “ADADELTA: Uyarlanabilir Bir Öğrenme Oranı Yöntemi” (Zeiler, 2012)

  • beyan

    public typealias Model = Model
  • Öğrenme oranı.

    beyan

    public var learningRate: Float
  • ro

    Her zaman adımında tutulacak gradyan oranına karşılık gelen bozunma faktörü.

    beyan

    public var rho: Float
  • Sayısal kararlılığı artırmak için paydaya küçük bir skaler eklenir.

    beyan

    public var epsilon: Float
  • Öğrenme hızının azalması.

    beyan

    public var decay: Float
  • Geçerli adım.

    beyan

    public var step: Int
  • Karesel gradyanların birikmiş, üstel olarak azalan ortalaması.

    beyan

    public var averageSquared: Model.TangentVector
  • Birikmiş parametre güncellemeleri.

    beyan

    public var accumulatedDelta: Model.TangentVector
  • model için bir örnek oluşturur.

    beyan

    public init(
      for model: __shared Model,
      learningRate: Float = 1,
      rho: Float = 0.95,
      epsilon: Float = 1e-6,
      decay: Float = 0
    )

    Parametreler

    learningRate

    Öğrenme oranı. Varsayılan değer 1 .

    rho

    Çürüme faktörü. Varsayılan değer 0.95 .

    epsilon

    Sayısal kararlılığı artırmak için paydaya küçük bir skaler eklenir. Varsayılan değer 1e-6 .

    decay

    Öğrenme hızının azalması. Varsayılan değer 0 .

  • beyan

    public func update(_ model: inout Model, along direction: Model.TangentVector)
  • beyan

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