SGD

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

Stokastik bir gradyan iniş (SGD) iyileştiricisi.

Momentum, öğrenme hızı azalması ve Nesterov momentumu desteğiyle stokastik gradyan iniş algoritmasını uygular. Momentum ve Nesterov momentumu (diğer adıyla Nesterov hızlandırılmış gradyan yöntemi), gradyan inişinin eğitim hızını ve yakınsama oranını artırabilen birinci dereceden optimizasyon yöntemleridir.

Referanslar:

  • beyan

    public typealias Model = Model
  • Öğrenme oranı.

    beyan

    public var learningRate: Float
  • Momentum faktörü. İlgili yönde stokastik gradyan inişini hızlandırır ve salınımları azaltır.

    beyan

    public var momentum: Float
  • Öğrenme hızının azalması.

    beyan

    public var decay: Float
  • Doğruysa Nesterov momentumunu kullanın.

    beyan

    public var nesterov: Bool
  • Modelin hız durumu.

    beyan

    public var velocity: Model.TangentVector
  • Atılan adımlar dizisi.

    beyan

    public var step: Int
  • model için bir örnek oluşturur.

    beyan

    public init(
      for model: __shared Model,
      learningRate: Float = 0.01,
      momentum: Float = 0,
      decay: Float = 0,
      nesterov: Bool = false
    )

    Parametreler

    learningRate

    Öğrenme oranı. Varsayılan değer 0.01 .

    momentum

    İlgili yönde stokastik gradyan inişini hızlandıran ve salınımları sönümleyen momentum faktörü. Varsayılan değer 0 .

    decay

    Öğrenme hızının azalması. Varsayılan değer 0 .

    nesterov

    true Nesterov momentumunu kullanın. Varsayılan değer true .

  • beyan

    public func update(_ model: inout Model, along direction: Model.TangentVector)
  • beyan

    public required init(copying other: SGD, to device: Device)