Ada Delta

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

Pengoptimal AdaDelta.

Menerapkan algoritma optimasi AdaDelta. AdaDelta adalah metode penurunan gradien stokastik berdasarkan informasi orde pertama. Ini mengadaptasi kecepatan pembelajaran berdasarkan jendela pembaruan gradien yang bergerak, alih-alih mengumpulkan semua gradien sebelumnya. Oleh karena itu, AdaDelta terus belajar meski banyak pembaruan telah dilakukan. Ini beradaptasi lebih cepat terhadap perubahan dinamika ruang masalah optimasi.

Referensi: “ADADELTA: Metode Kecepatan Pembelajaran Adaptif” (Zeiler, 2012)

  • Pernyataan

    public typealias Model = Model
  • Kecepatan pembelajaran.

    Pernyataan

    public var learningRate: Float
  • rho

    Faktor peluruhan, sesuai dengan pecahan gradien yang dipertahankan pada setiap langkah waktu.

    Pernyataan

    public var rho: Float
  • Skalar kecil ditambahkan ke penyebut untuk meningkatkan stabilitas numerik.

    Pernyataan

    public var epsilon: Float
  • Penurunan kecepatan pembelajaran.

    Pernyataan

    public var decay: Float
  • Langkah saat ini.

    Pernyataan

    public var step: Int
  • Akumulasi gradien kuadrat rata-rata yang membusuk secara eksponensial.

    Pernyataan

    public var averageSquared: Model.TangentVector
  • Akumulasi pembaruan parameter.

    Pernyataan

    public var accumulatedDelta: Model.TangentVector
  • Membuat sebuah instance untuk model .

    Pernyataan

    public init(
      for model: __shared Model,
      learningRate: Float = 1,
      rho: Float = 0.95,
      epsilon: Float = 1e-6,
      decay: Float = 0
    )

    Parameter

    learningRate

    Kecepatan pembelajaran. Nilai defaultnya adalah 1 .

    rho

    Faktor pembusukan. Nilai defaultnya adalah 0.95 .

    epsilon

    Skalar kecil ditambahkan ke penyebut untuk meningkatkan stabilitas numerik. Nilai defaultnya adalah 1e-6 .

    decay

    Penurunan kecepatan pembelajaran. Nilai defaultnya adalah 0 .

  • Pernyataan

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

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