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
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 required init(copying other: AdaDelta, to device: Device)