AdaMax

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

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

Một biến thể của Adam dựa trên chuẩn mực vô cực.

Tham khảo: Phần 7 của “Adam - Phương pháp tối ưu hóa ngẫu nhiên”

  • Tuyên ngôn

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

    Tuyên ngôn

    public var learningRate: Float
  • Tốc độ phân rã được sử dụng để ước tính mô men đầu tiên (trung bình) của độ dốc.

    Tuyên ngôn

    public var beta1: Float
  • Tốc độ phân rã được sử dụng để ước tính định mức vô cực có trọng số theo cấp số nhân.

    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
  • Số bước.

    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
  • Định mức vô cực có trọng số theo cấp số nhân của các trọng số.

    Tuyên ngôn

    public var infinityNorm: Model.TangentVector
  • Lưu ý: Các thông số mặc định tuân theo những thông số được cung cấp trong bài báo.

    Tuyên ngôn

    public init(
      for model: __shared Model,
      learningRate: Float = 0.002,
      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: AdaMax, to device: Device)