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)