public class RMSProp<Model: Differentiable>: Optimizer
where
Model.TangentVector: VectorProtocol & PointwiseMultiplicative
& ElementaryFunctions & KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
Bir RMSProp optimize edici.
RMSProp optimizasyon algoritmasını uygular. RMSProp, gradyanların güncel büyüklüklerinin devam eden ortalamasına bölündüğü bir stokastik gradyan iniş biçimidir. RMSProp, her ağırlık için kare degradenin hareketli ortalamasını tutar.
Referanslar:
- “Ders 6.5 - rmsprop: Gradyanı güncel büyüklüğünün hareketli ortalamasına bölün” (Tieleman ve Hinton, 2012)
- “Tekrarlayan Sinir Ağları ile Diziler Oluşturmak” (Graves, 2013)
beyan
public typealias Model = Model
Öğrenme oranı.
beyan
public var learningRate: Float
Gradyan hareketli ortalama bozunma faktörü.
beyan
public var rho: Float
Sayısal kararlılığı artırmak için paydaya küçük bir skaler eklenir.
beyan
public var epsilon: Float
Öğrenme hızının azalması.
beyan
public var decay: Float
Adım sayısı.
beyan
public var step: Float
Tüm model türevlenebilir değişkenler için alfa değerleri.
beyan
public var alpha: Model.TangentVector
model
için bir örnek oluşturur.beyan
public init( for model: __shared Model, learningRate: Float = 1e-3, rho: Float = 0.9, epsilon: Float = 1e-8, decay: Float = 0 )
Parametreler
learningRate
Öğrenme oranı. Varsayılan değer
1e-3
.rho
Gradyan hareketli ortalama bozunma faktörü. Varsayılan değer
0.9
.epsilon
Sayısal kararlılığı artırmak için paydaya küçük bir skaler eklenir. Varsayılan değer
1e-8
.decay
Öğrenme hızının azalması. Varsayılan değer
0
.beyan
public required init(copying other: RMSProp, to device: Device)