public class RMSProp<Model: Differentiable>: Optimizer
where
Model.TangentVector: VectorProtocol & PointwiseMultiplicative
& ElementaryFunctions & KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
RMSProp オプティマイザー。
RMSProp 最適化アルゴリズムを実装します。 RMSProp は確率的勾配降下法の一種で、勾配を最近の大きさの移動平均で割ります。 RMSProp は、各重みの二乗勾配の移動平均を保持します。
参考文献:
- 「講義 6.5 - rmsprop: 勾配を最近の大きさの移動平均で割る」 (Tieleman および Hinton、2012)
- 「リカレント ニューラル ネットワークによるシーケンスの生成」 (Graves、2013)
宣言
public typealias Model = Model
学習率。
宣言
public var learningRate: Float
勾配移動平均の減衰係数。
宣言
public var rho: Float
数値の安定性を向上させるために、分母に小さなスカラーが追加されました。
宣言
public var epsilon: Float
学習率が低下します。
宣言
public var decay: Float
歩数。
宣言
public var step: Float
すべてのモデルの微分可能な変数のアルファ値。
宣言
public var alpha: Model.TangentVector
model
のインスタンスを作成します。宣言
public init( for model: __shared Model, learningRate: Float = 1e-3, rho: Float = 0.9, epsilon: Float = 1e-8, decay: Float = 0 )
パラメータ
learningRate
学習率。デフォルト値は
1e-3
です。rho
勾配移動平均の減衰係数。デフォルト値は
0.9
です。epsilon
数値の安定性を向上させるために、分母に小さなスカラーが追加されました。デフォルト値は
1e-8
です。decay
学習率が低下します。デフォルト値は
0
です。宣言
public required init(copying other: RMSProp, to device: Device)