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
גורם הדעיכה, המתאים לשבריר השיפוע שיש לשמור בכל שלב בזמן.
הַצהָרָה
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)