public class AMSGrad<Model: Differentiable & KeyPathIterable>: Optimizer
where
Model.TangentVector: VectorProtocol & PointwiseMultiplicative & ElementaryFunctions
& KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
Ottimizzatore AMSGrad.
Questo algoritmo è una modifica di Adam con migliori proprietà di convergenza quando è vicino all'ottimale locale.
Riferimento: “Sulla convergenza di Adamo e oltre”
Dichiarazione
public typealias Model = Model
Il tasso di apprendimento.
Dichiarazione
public var learningRate: Float
Un coefficiente utilizzato per calcolare il primo e il secondo momento dei gradienti.
Dichiarazione
public var beta1: Float
Un coefficiente utilizzato per calcolare il primo e il secondo momento dei gradienti.
Dichiarazione
public var beta2: Float
Un piccolo scalare aggiunto al denominatore per migliorare la stabilità numerica.
Dichiarazione
public var epsilon: Float
Il decadimento del tasso di apprendimento.
Dichiarazione
public var decay: Float
Il passo attuale.
Dichiarazione
public var step: Int
I primi momenti dei pesi.
Dichiarazione
public var firstMoments: Model.TangentVector
I momenti secondi dei pesi.
Dichiarazione
public var secondMoments: Model.TangentVector
Il massimo dei momenti secondi dei pesi.
Dichiarazione
public var secondMomentsMax: Model.TangentVector
Dichiarazione
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 )
Dichiarazione
public required init(copying other: AMSGrad, to device: Device)