AdaMax

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

Ottimizzatore AdaMax.

Una variante di Adamo basata sulla norma dell'infinito.

Riferimento: Sezione 7 di "Adam - Un metodo per l'ottimizzazione stocastica"

  • Dichiarazione

    public typealias Model = Model
  • Il tasso di apprendimento.

    Dichiarazione

    public var learningRate: Float
  • Tasso di decadimento utilizzato per stimare il primo momento (media) dei gradienti.

    Dichiarazione

    public var beta1: Float
  • Tasso di decadimento utilizzato per stimare la norma dell'infinito ponderata in modo esponenziale.

    Dichiarazione

    public var beta2: Float
  • Un piccolo scalare aggiunto al denominatore per migliorare la stabilità numerica.

    Dichiarazione

    public var epsilon: Float
  • Il decadimento del tasso di apprendimento.

    Dichiarazione

    public var decay: Float
  • Il conteggio dei passi.

    Dichiarazione

    public var step: Int
  • I primi momenti dei pesi.

    Dichiarazione

    public var firstMoments: Model.TangentVector
  • La norma infinita dei pesi ponderata esponenzialmente.

    Dichiarazione

    public var infinityNorm: Model.TangentVector
  • Nota: i parametri predefiniti seguono quelli forniti nel documento.

    Dichiarazione

    public init(
      for model: __shared Model,
      learningRate: Float = 0.002,
      beta1: Float = 0.9,
      beta2: Float = 0.999,
      epsilon: Float = 1e-8,
      decay: Float = 0
    )
  • Dichiarazione

    public func update(_ model: inout Model, along direction: Model.TangentVector)
  • Dichiarazione

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