SGD

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

Pengoptimal penurunan gradien stokastik (SGD).

Menerapkan algoritme penurunan gradien stokastik dengan dukungan momentum, peluruhan kecepatan pembelajaran, dan momentum Nesterov. Momentum dan momentum Nesterov (alias metode gradien akselerasi Nesterov) adalah metode pengoptimalan orde pertama yang dapat meningkatkan kecepatan pelatihan dan laju konvergensi penurunan gradien.

Referensi:

  • Pernyataan

    public typealias Model = Model
  • Kecepatan pembelajaran.

    Pernyataan

    public var learningRate: Float
  • Faktor momentum. Ini mempercepat penurunan gradien stokastik ke arah yang relevan dan meredam osilasi.

    Pernyataan

    public var momentum: Float
  • Penurunan kecepatan pembelajaran.

    Pernyataan

    public var decay: Float
  • Gunakan momentum Nesterov jika benar.

    Pernyataan

    public var nesterov: Bool
  • Keadaan kecepatan model.

    Pernyataan

    public var velocity: Model.TangentVector
  • Serangkaian langkah yang diambil.

    Pernyataan

    public var step: Int
  • Membuat sebuah instance untuk model .

    Pernyataan

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

    Parameter

    learningRate

    Kecepatan pembelajaran. Nilai defaultnya adalah 0.01 .

    momentum

    Faktor momentum yang mempercepat penurunan gradien stokastik ke arah yang relevan dan meredam osilasi. Nilai defaultnya adalah 0 .

    decay

    Penurunan kecepatan pembelajaran. Nilai defaultnya adalah 0 .

    nesterov

    Gunakan momentum Nesterov jika true . Nilai defaultnya adalah true .

  • Pernyataan

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

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