public class RMSProp<Model: Differentiable>: Optimizer
where
Model.TangentVector: VectorProtocol & PointwiseMultiplicative
& ElementaryFunctions & KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
Optymalizator RMSProp.
Implementuje algorytm optymalizacji RMSProp. RMSProp jest formą stochastycznego opadania gradientu, w której gradienty są dzielone przez średnią kroczącą ich ostatniej wielkości. RMSProp utrzymuje średnią ruchomą kwadratu gradientu dla każdej wagi.
Referencje:
- „Wykład 6.5 – rmsprop: Podziel gradient przez średnią kroczącą jego ostatniej wielkości” (Tieleman i Hinton, 2012)
- „Generowanie sekwencji za pomocą rekurencyjnych sieci neuronowych” (Graves, 2013)
Deklaracja
public typealias Model = Model
Szybkość uczenia się.
Deklaracja
public var learningRate: Float
Współczynnik zaniku średniej ruchomej gradientu.
Deklaracja
public var rho: Float
Mały skalar dodany do mianownika w celu poprawy stabilności liczbowej.
Deklaracja
public var epsilon: Float
Spadek szybkości uczenia się.
Deklaracja
public var decay: Float
Liczba kroków.
Deklaracja
public var step: Float
Wartości alfa dla wszystkich zmiennych różniczkowalnych modelu.
Deklaracja
public var alpha: Model.TangentVector
Tworzy instancję dla
model
.Deklaracja
public init( for model: __shared Model, learningRate: Float = 1e-3, rho: Float = 0.9, epsilon: Float = 1e-8, decay: Float = 0 )
Parametry
learningRate
Szybkość uczenia się. Wartość domyślna to
1e-3
.rho
Współczynnik zaniku średniej ruchomej gradientu. Wartość domyślna to
0.9
.epsilon
Mały skalar dodany do mianownika w celu poprawy stabilności liczbowej. Wartość domyślna to
1e-8
.decay
Spadek szybkości uczenia się. Wartość domyślna to
0
.Deklaracja
public required init(copying other: RMSProp, to device: Device)