SGD

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

מייעל ירידה בשיפוע סטוכסטי (SGD).

מיישם את אלגוריתם הירידה הסטוכסטית עם תמיכה במומנטום, דעיכת קצב למידה ומומנטום Nesterov. מומנטום ומומנטום Nesterov (המכונה גם שיטת השיפוע המואץ של Nesterov) הן שיטות אופטימיזציה מסדר ראשון שיכולות לשפר את מהירות האימון וקצב ההתכנסות של ירידה בשיפוע.

הפניות:

  • הַצהָרָה

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

    הַצהָרָה

    public var learningRate: Float
  • גורם המומנטום. הוא מאיץ את ירידת השיפוע הסטוכסטי בכיוון הרלוונטי ומדכא תנודות.

    הַצהָרָה

    public var momentum: Float
  • קצב הלמידה דעיכה.

    הַצהָרָה

    public var decay: Float
  • השתמש במומנטום Nesterov אם זה נכון.

    הַצהָרָה

    public var nesterov: Bool
  • מצב המהירות של הדגם.

    הַצהָרָה

    public var velocity: Model.TangentVector
  • מכלול הצעדים שננקטו.

    הַצהָרָה

    public var step: Int
  • יוצר מופע model .

    הַצהָרָה

    public init(
      for model: __shared Model,
      learningRate: Float = 0.01,
      momentum: Float = 0,
      decay: Float = 0,
      nesterov: Bool = false
    )

    פרמטרים

    learningRate

    קצב הלמידה. ערך ברירת המחדל הוא 0.01 .

    momentum

    גורם המומנטום המאיץ את ירידת הגרדיאנט הסטוכסטית בכיוון הרלוונטי ומשכך תנודות. ערך ברירת המחדל הוא 0 .

    decay

    קצב הלמידה דעיכה. ערך ברירת המחדל הוא 0 .

    nesterov

    השתמש במומנטום Nesterov אם true . ערך ברירת המחדל הוא true .

  • הַצהָרָה

    public func update(_ model: inout Model, along direction: Model.TangentVector)
  • הַצהָרָה

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