public class AMSGrad<Model: Differentiable & KeyPathIterable>: Optimizer
where
Model.TangentVector: VectorProtocol & PointwiseMultiplicative & ElementaryFunctions
& KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
AMSGrad iyileştirici.
Bu algoritma, yerel optimuma yakın olduğunda daha iyi yakınsama özelliklerine sahip olan Adam'ın bir modifikasyonudur.
Referans: “Adem ve Ötesinin Yakınsaması Üzerine”
beyan
public typealias Model = Model
Öğrenme oranı.
beyan
public var learningRate: Float
Gradyanların birinci ve ikinci momentlerini hesaplamak için kullanılan bir katsayı.
beyan
public var beta1: Float
Gradyanların birinci ve ikinci momentlerini hesaplamak için kullanılan bir katsayı.
beyan
public var beta2: Float
Sayısal kararlılığı artırmak için paydaya küçük bir skaler eklenir.
beyan
public var epsilon: Float
Öğrenme hızının azalması.
beyan
public var decay: Float
Geçerli adım.
beyan
public var step: Int
Ağırlıkların ilk anları.
beyan
public var firstMoments: Model.TangentVector
Ağırlıkların ikinci anları.
beyan
public var secondMoments: Model.TangentVector
Ağırlıkların ikinci anlarının maksimumu.
beyan
public var secondMomentsMax: Model.TangentVector
beyan
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 )
beyan
public required init(copying other: AMSGrad, to device: Device)