دولار سنغافوري

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

محسن النسب التدرج العشوائي (SGD).

يطبق خوارزمية النسب التدرج العشوائي مع دعم الزخم، وتناقص معدل التعلم، وزخم نيستيروف. يعد الزخم وزخم نيستيروف (المعروف أيضًا باسم طريقة التدرج المتسارع لنيستيروف) من أساليب التحسين من الدرجة الأولى التي يمكنها تحسين سرعة التدريب ومعدل التقارب في نزول التدرج.

مراجع:

  • تصريح

    public typealias Model = Model
  • معدل التعلم.

    تصريح

    public var learningRate: Float
  • عامل الزخم. فهو يعمل على تسريع نزول التدرج العشوائي في الاتجاه ذي الصلة ويخفف من التذبذبات.

    تصريح

    public var momentum: Float
  • انخفاض معدل التعلم.

    تصريح

    public var decay: Float
  • استخدم زخم نيستيروف إذا كان صحيحًا.

    تصريح

    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

    استخدم زخم نيستيروف إذا true . القيمة الافتراضية هي true .

  • تصريح

    public func update(_ model: inout Model, along direction: Model.TangentVector)
  • تصريح

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