RAdam

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

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

Đã chỉnh sửa Adam, một biến thể của Adam giới thiệu một thuật ngữ để điều chỉnh phương sai tốc độ học thích ứng.

Tham khảo: “Về sự khác biệt giữa tỷ lệ học tập thích ứng và xa hơn”

  • 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
  • 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: RAdam, to device: Device)