SGD

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

Optymalizator stochastycznego gradientu opadania (SGD).

Implementuje algorytm stochastycznego gradientu opadania z obsługą pędu, zaniku szybkości uczenia się i pędu Niestierowa. Pęd i pęd Niestierowa (inaczej metoda przyspieszonego gradientu Niestierowa) to metody optymalizacji pierwszego rzędu, które mogą poprawić prędkość uczenia i współczynnik zbieżności opadania gradientu.

Bibliografia:

  • Deklaracja

    public typealias Model = Model
  • Szybkość uczenia się.

    Deklaracja

    public var learningRate: Float
  • Czynnik pędu. Przyspiesza opadanie w gradiencie stochastycznym w odpowiednim kierunku i tłumi oscylacje.

    Deklaracja

    public var momentum: Float
  • Spadek szybkości uczenia się.

    Deklaracja

    public var decay: Float
  • Użyj pędu Niestierowa, jeśli jest prawdziwy.

    Deklaracja

    public var nesterov: Bool
  • Stan prędkości modelu.

    Deklaracja

    public var velocity: Model.TangentVector
  • Zestaw podjętych kroków.

    Deklaracja

    public var step: Int
  • Tworzy instancję dla model .

    Deklaracja

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

    Parametry

    learningRate

    Szybkość uczenia się. Wartość domyślna to 0.01 .

    momentum

    Współczynnik pędu, który przyspiesza opadanie gradientu stochastycznego w odpowiednim kierunku i tłumi oscylacje. Wartość domyślna to 0 .

    decay

    Spadek szybkości uczenia się. Wartość domyślna to 0 .

    nesterov

    Użyj pędu Niestierowa, jeśli jest true . Wartość domyślna to true .

  • Deklaracja

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

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