public class AMSGrad<Model: Differentiable & KeyPathIterable>: Optimizer
where
Model.TangentVector: VectorProtocol & PointwiseMultiplicative & ElementaryFunctions
& KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
Otimizador AMSGrad.
Este algoritmo é uma modificação de Adam com melhores propriedades de convergência quando próximo dos ótimos locais.
Referência: “Sobre a Convergência de Adão e Além”
Declaração
public typealias Model = Model
A taxa de aprendizagem.
Declaração
public var learningRate: Float
Um coeficiente usado para calcular o primeiro e o segundo momentos dos gradientes.
Declaração
public var beta1: Float
Um coeficiente usado para calcular o primeiro e o segundo momentos dos gradientes.
Declaração
public var beta2: Float
Um pequeno escalar adicionado ao denominador para melhorar a estabilidade numérica.
Declaração
public var epsilon: Float
A queda da taxa de aprendizagem.
Declaração
public var decay: Float
A etapa atual.
Declaração
public var step: Int
Os primeiros momentos das pesagens.
Declaração
public var firstMoments: Model.TangentVector
Os segundos momentos dos pesos.
Declaração
public var secondMoments: Model.TangentVector
O máximo dos segundos momentos dos pesos.
Declaração
public var secondMomentsMax: Model.TangentVector
Declaração
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 )
Declaração
public required init(copying other: AMSGrad, to device: Device)