एसजीडी

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

एक स्टोकेस्टिक ग्रेडिएंट डिसेंट (एसजीडी) ऑप्टिमाइज़र।

गति, सीखने की दर में गिरावट और नेस्टरोव गति के समर्थन के साथ स्टोकेस्टिक ग्रेडिएंट डिसेंट एल्गोरिदम को लागू करता है। मोमेंटम और नेस्टरोव गति (उर्फ नेस्टरोव त्वरित ग्रेडिएंट विधि) प्रथम-क्रम अनुकूलन विधियां हैं जो प्रशिक्षण गति और ग्रेडिएंट डिसेंट की अभिसरण दर में सुधार कर सकती हैं।

सन्दर्भ:

  • घोषणा

    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)