AdaDelta

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

אופטימיזציה של AdaDelta.

מיישמת את אלגוריתם האופטימיזציה של AdaDelta. AdaDelta היא שיטת ירידה בשיפוע סטוכסטי המבוססת על מידע מסדר ראשון. הוא מתאים את קצבי הלמידה על סמך חלון נע של עדכוני שיפוע, במקום לצבור את כל דרגות העבר. לפיכך, AdaDelta ממשיכה ללמוד גם כאשר בוצעו עדכונים רבים. הוא מסתגל מהר יותר לדינמיקה המשתנה של מרחב בעיית האופטימיזציה.

התייחסות: "ADADELTA: An Adaptive Learning Rate Method" (זיילר, 2012)

  • הַצהָרָה

    public typealias Model = Model
  • קצב הלמידה.

    הַצהָרָה

    public var learningRate: Float
  • rho

    גורם הדעיכה, המתאים לשבריר השיפוע שיש לשמור בכל שלב בזמן.

    הַצהָרָה

    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)