public class AMSGrad<Model: Differentiable & KeyPathIterable>: Optimizer
where
Model.TangentVector: VectorProtocol & PointwiseMultiplicative & ElementaryFunctions
& KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
AMSGrad オプティマイザー。
このアルゴリズムは Adam を修正したもので、局所最適に近い場合の収束特性が向上します。
参考: 「アダムとその先の融合について」
宣言
public typealias Model = Model
学習率。
宣言
public var learningRate: Float
勾配の 1 次モーメントと 2 次モーメントを計算するために使用される係数。
宣言
public var beta1: Float
勾配の 1 次モーメントと 2 次モーメントを計算するために使用される係数。
宣言
public var beta2: Float
数値の安定性を向上させるために、分母に小さなスカラーが追加されました。
宣言
public var epsilon: Float
学習率が低下します。
宣言
public var decay: Float
現在のステップ。
宣言
public var step: Int
重みの最初の瞬間。
宣言
public var firstMoments: Model.TangentVector
重みの第二の瞬間。
宣言
public var secondMoments: Model.TangentVector
重みの二次モーメントの最大値。
宣言
public var secondMomentsMax: Model.TangentVector
宣言
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 )
宣言
public required init(copying other: AMSGrad, to device: Device)