RMS プロップ

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

RMSProp オプティマイザー。

RMSProp 最適化アルゴリズムを実装します。 RMSProp は確率的勾配降下法の一種で、勾配を最近の大きさの移動平均で割ります。 RMSProp は、各重みの二乗勾配の移動平均を保持します。

参考文献:

  • 宣言

    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 func update(_ model: inout Model, along direction: Model.TangentVector)
  • 宣言

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