public class RMSProp<Model: Differentiable>: Optimizer
where
Model.TangentVector: VectorProtocol & PointwiseMultiplicative
& ElementaryFunctions & KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
Un optimiseur RMSProp.
Implémente l'algorithme d'optimisation RMSProp. RMSProp est une forme de descente de gradient stochastique où les gradients sont divisés par une moyenne mobile de leur ampleur récente. RMSProp conserve une moyenne mobile du carré du gradient pour chaque poids.
Références :
- « Cours 6.5 - rmsprop : Divisez le gradient par une moyenne mobile de son ampleur récente » (Tieleman et Hinton, 2012)
- «Générer des séquences avec des réseaux de neurones récurrents» (Graves, 2013)
Déclaration
public typealias Model = Model
Le taux d'apprentissage.
Déclaration
public var learningRate: Float
Le facteur de décroissance de la moyenne mobile du gradient.
Déclaration
public var rho: Float
Un petit scalaire ajouté au dénominateur pour améliorer la stabilité numérique.
Déclaration
public var epsilon: Float
Le taux d’apprentissage diminue.
Déclaration
public var decay: Float
Le nombre de pas.
Déclaration
public var step: Float
Les valeurs alpha pour toutes les variables différenciables du modèle.
Déclaration
public var alpha: Model.TangentVector
Crée une instance pour
model
.Déclaration
public init( for model: __shared Model, learningRate: Float = 1e-3, rho: Float = 0.9, epsilon: Float = 1e-8, decay: Float = 0 )
Paramètres
learningRate
Le taux d'apprentissage. La valeur par défaut est
1e-3
.rho
Le facteur de décroissance de la moyenne mobile du gradient. La valeur par défaut est
0.9
.epsilon
Un petit scalaire ajouté au dénominateur pour améliorer la stabilité numérique. La valeur par défaut est
1e-8
.decay
Le taux d’apprentissage diminue. La valeur par défaut est
0
.Déclaration
public required init(copying other: RMSProp, to device: Device)