public class RMSProp<Model: Differentiable>: Optimizer
where
Model.TangentVector: VectorProtocol & PointwiseMultiplicative
& ElementaryFunctions & KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
Trình tối ưu hóa RMSProp.
Triển khai thuật toán tối ưu hóa RMSProp. RMSProp là một dạng giảm độ dốc ngẫu nhiên trong đó độ dốc được chia cho mức trung bình đang chạy của cường độ gần đây của chúng. RMSProp giữ mức trung bình động của gradient bình phương cho mỗi trọng số.
Tài liệu tham khảo:
- “Bài giảng 6.5 - rmsprop: Chia gradient cho giá trị trung bình của cường độ gần đây” (Tieleman và Hinton, 2012)
- “Tạo chuỗi bằng mạng thần kinh tái phát” (Graves, 2013)
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ã trung bình di chuyển gradient.
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
Số bước.
Tuyên ngôn
public var step: Float
Giá trị alpha cho tất cả các biến khả vi của mô hình.
Tuyên ngôn
public var alpha: Model.TangentVector
Tạo một phiên bản cho
model
.Tuyên ngôn
public init( for model: __shared Model, learningRate: Float = 1e-3, rho: Float = 0.9, epsilon: Float = 1e-8, decay: Float = 0 )
Thông số
learningRate
Tỷ lệ học tập. Giá trị mặc định là
1e-3
.rho
Hệ số phân rã trung bình di chuyển gradient. Giá trị mặc định là
0.9
.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-8
.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: RMSProp, to device: Device)