AdaDelta

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

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

Triển khai thuật toán tối ưu hóa AdaDelta. AdaDelta là phương pháp giảm độ dốc ngẫu nhiên dựa trên thông tin thứ tự đầu tiên. Nó điều chỉnh tốc độ học dựa trên cửa sổ chuyển động của các cập nhật độ dốc, thay vì tích lũy tất cả các độ dốc trong quá khứ. Vì vậy, AdaDelta vẫn tiếp tục học hỏi ngay cả khi đã thực hiện nhiều cập nhật. Nó thích ứng nhanh hơn với sự thay đổi động lực của không gian bài toán tối ưu hóa.

Tham khảo: “ADADELTA: Phương pháp tỷ lệ học tập thích ứng” (Zeiler, 2012)

  • Tuyên ngôn

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

    Tuyên ngôn

    public var learningRate: Float
  • rho

    Hệ số phân rã, tương ứng với phần gradient cần giữ ở mỗi bước thời gian.

    Tuyên ngôn

    public var rho: 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
  • Giá trị trung bình tích lũy, phân rã theo cấp số nhân của gradient bình phương.

    Tuyên ngôn

    public var averageSquared: Model.TangentVector
  • Các cập nhật tham số tích lũy.

    Tuyên ngôn

    public var accumulatedDelta: Model.TangentVector
  • Tạo một phiên bản cho model .

    Tuyên ngôn

    public init(
      for model: __shared Model,
      learningRate: Float = 1,
      rho: Float = 0.95,
      epsilon: Float = 1e-6,
      decay: Float = 0
    )

    Thông số

    learningRate

    Tỷ lệ học tập. Giá trị mặc định là 1 .

    rho

    Yếu tố phân rã. Giá trị mặc định là 0.95 .

    epsilon

    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ố. Giá trị mặc định là 1e-6 .

    decay

    Tỷ lệ học tập suy giảm. Giá trị mặc định là 0 .

  • Tuyên ngôn

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

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