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
عامل الانحلال، الموافق لجزء التدرج الذي يجب الاحتفاظ به في كل خطوة زمنية.
تصريح
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)