public class SGD<Model: Differentiable>: Optimizer
where
Model.TangentVector: VectorProtocol & ElementaryFunctions & KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
एक स्टोकेस्टिक ग्रेडिएंट डिसेंट (एसजीडी) ऑप्टिमाइज़र।
गति, सीखने की दर में गिरावट और नेस्टरोव गति के समर्थन के साथ स्टोकेस्टिक ग्रेडिएंट डिसेंट एल्गोरिदम को लागू करता है। मोमेंटम और नेस्टरोव गति (उर्फ नेस्टरोव त्वरित ग्रेडिएंट विधि) प्रथम-क्रम अनुकूलन विधियां हैं जो प्रशिक्षण गति और ग्रेडिएंट डिसेंट की अभिसरण दर में सुधार कर सकती हैं।
सन्दर्भ:
- "एक स्टोकेस्टिक सन्निकटन विधि" (रॉबिन्स और मोनरो, 1951)
- "रॉबिन्स और मोनरो की स्टोकेस्टिक सन्निकटन विधि पर" (वोल्फोवित्ज़, 1952)
- "एक प्रतिगमन फ़ंक्शन के अधिकतम का स्टोकेस्टिक अनुमान" (किफ़र और वोल्फोविट्ज़, 1952)
- "पुनरावृत्ति विधि के अभिसरण को तेज करने के कुछ तरीके" (पॉलीक, 1964)
- "अभिसरण की दर के साथ अनियंत्रित उत्तल न्यूनीकरण समस्या के लिए एक विधि" (नेस्टरोव, 1983)
घोषणा
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 required init(copying other: SGD, to device: Device)