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:
- “Metode Pendekatan Stokastik” (Robbins dan Monro, 1951)
- “Tentang Metode Pendekatan Stokastik Robbins dan Monro” (Wolfowitz, 1952)
- “Estimasi Stokastik Maksimum Fungsi Regresi” (Kiefer dan Wolfowitz, 1952)
- “Beberapa metode untuk mempercepat konvergensi metode iterasi” (Polyak, 1964)
- “Metode untuk masalah minimisasi cembung tak terbatas dengan laju konvergensi” (Nesterov, 1983)
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 adalahtrue
.Pernyataan
public required init(copying other: SGD, to device: Device)