ادادلتا

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

محسن AdaDelta.

ينفذ خوارزمية التحسين AdaDelta. AdaDelta هي طريقة نزول متدرجة عشوائية تعتمد على معلومات الترتيب الأول. فهو يكيف معدلات التعلم بناءً على نافذة متحركة من تحديثات التدرج، بدلاً من تجميع كل التدرجات السابقة. وهكذا، يستمر AdaDelta في التعلم حتى بعد إجراء العديد من التحديثات. يتكيف بشكل أسرع مع الديناميكيات المتغيرة لمساحة مشكلة التحسين.

المرجع: "ADADELTA: طريقة معدل التعلم التكيفي" (زيلر، 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)