public class AMSGrad<Model: Differentiable & KeyPathIterable>: Optimizer
where
Model.TangentVector: VectorProtocol & PointwiseMultiplicative & ElementaryFunctions
& KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
Optimizador AMSGrad.
Este algoritmo es una modificación de Adam con mejores propiedades de convergencia cuando está cerca de los óptimos locales.
Referencia: “Sobre la convergencia de Adán y el más allá”
Declaración
public typealias Model = Model
La tasa de aprendizaje.
Declaración
public var learningRate: Float
Un coeficiente utilizado para calcular el primer y segundo momento de las pendientes.
Declaración
public var beta1: Float
Un coeficiente utilizado para calcular el primer y segundo momento de las pendientes.
Declaración
public var beta2: Float
Un pequeño escalar agregado al denominador para mejorar la estabilidad numérica.
Declaración
public var epsilon: Float
La tasa de aprendizaje decae.
Declaración
public var decay: Float
El paso actual.
Declaración
public var step: Int
Los primeros momentos de las pesas.
Declaración
public var firstMoments: Model.TangentVector
Los segundos momentos de las pesas.
Declaración
public var secondMoments: Model.TangentVector
El máximo de los segundos momentos de los pesos.
Declaración
public var secondMomentsMax: Model.TangentVector
Declaración
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 )
Declaración
public required init(copying other: AMSGrad, to device: Device)