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
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 required init(copying other: AdaDelta, to device: Device)