AMSGrad

public class AMSGrad<Model: Differentiable & KeyPathIterable>: Optimizer
where
  Model.TangentVector: VectorProtocol & PointwiseMultiplicative & ElementaryFunctions
    & KeyPathIterable,
  Model.TangentVector.VectorSpaceScalar == Float

Trình tối ưu hóa AMSGrad.

Thuật toán này là sự sửa đổi của Adam với đặc tính hội tụ tốt hơn khi gần với tối ưu cục bộ.

Tham khảo: “Về sự hội tụ của Adam và thế giới bên kia”

  • Tuyên ngôn

    public typealias Model = Model
  • Tỷ lệ học tập.

    Tuyên ngôn

    public var learningRate: Float
  • Một hệ số được sử dụng để tính toán khoảnh khắc thứ nhất và thứ hai của độ dốc.

    Tuyên ngôn

    public var beta1: Float
  • Một hệ số được sử dụng để tính toán khoảnh khắc thứ nhất và thứ hai của độ dốc.

    Tuyên ngôn

    public var beta2: Float
  • Một đại lượng vô hướng nhỏ được thêm vào mẫu số để cải thiện độ ổn định về số.

    Tuyên ngôn

    public var epsilon: Float
  • Tỷ lệ học tập suy giảm.

    Tuyên ngôn

    public var decay: Float
  • Bước hiện tại.

    Tuyên ngôn

    public var step: Int
  • Những khoảnh khắc đầu tiên của tạ.

    Tuyên ngôn

    public var firstMoments: Model.TangentVector
  • Khoảnh khắc thứ hai của tạ.

    Tuyên ngôn

    public var secondMoments: Model.TangentVector
  • Tối đa khoảnh khắc thứ hai của trọng lượng.

    Tuyên ngôn

    public var secondMomentsMax: Model.TangentVector
  • Tuyên ngô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
    )
  • Tuyên ngôn

    public func update(_ model: inout Model, along direction: Model.TangentVector)
  • Tuyên ngôn

    public required init(copying other: AMSGrad, to device: Device)