public class AMSGrad<Model: Differentiable & KeyPathIterable>: Optimizer
where
Model.TangentVector: VectorProtocol & PointwiseMultiplicative & ElementaryFunctions
& KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
Optimiseur AMSGrad.
Cet algorithme est une modification d'Adam avec de meilleures propriétés de convergence lorsqu'il est proche des optimums locaux.
Référence : « Sur la convergence d’Adam et au-delà »
Déclaration
public typealias Model = Model
Le taux d'apprentissage.
Déclaration
public var learningRate: Float
Un coefficient utilisé pour calculer les premier et deuxième moments des gradients.
Déclaration
public var beta1: Float
Un coefficient utilisé pour calculer les premier et deuxième moments des gradients.
Déclaration
public var beta2: 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
L'étape actuelle.
Déclaration
public var step: Int
Les premiers instants des poids.
Déclaration
public var firstMoments: Model.TangentVector
Les seconds instants des poids.
Déclaration
public var secondMoments: Model.TangentVector
Le maximum des seconds instants des poids.
Déclaration
public var secondMomentsMax: Model.TangentVector
Déclaration
public init( for model: __shared Model, learningRate: Float = 1e-3, beta1: Float = 0.9, beta2: Float = 0.999, epsilon: Float = 1e-8, decay: Float = 0 )
Déclaration
public required init(copying other: AMSGrad, to device: Device)