AdaDelta

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

Um otimizador AdaDelta.

Implementa o algoritmo de otimização AdaDelta. AdaDelta é um método de descida gradiente estocástico baseado nas informações de primeira ordem. Ele adapta as taxas de aprendizagem com base em uma janela móvel de atualizações de gradiente, em vez de acumular todos os gradientes anteriores. Assim, AdaDelta continua aprendendo mesmo quando muitas atualizações foram feitas. Ele se adapta mais rápido às mudanças na dinâmica do espaço do problema de otimização.

Referência: “ADADELTA: Um Adaptive aprendizagem Método Rate” (Zeiler, 2012)

  • Declaração

    public typealias Model = Model
  • A taxa de aprendizagem.

    Declaração

    public var learningRate: Float
  • rho

    O fator de decaimento, correspondente à fração do gradiente a ser mantida em cada intervalo de tempo.

    Declaração

    public var rho: Float
  • Um pequeno escalar adicionado ao denominador para melhorar a estabilidade numérica.

    Declaração

    public var epsilon: Float
  • O declínio da taxa de aprendizagem.

    Declaração

    public var decay: Float
  • A etapa atual.

    Declaração

    public var step: Int
  • A média acumulada e exponencialmente decadente de gradientes quadrados.

    Declaração

    public var averageSquared: Model.TangentVector
  • Os parâmetros acumulados são atualizados.

    Declaração

    public var accumulatedDelta: Model.TangentVector
  • Cria uma instância de model .

    Declaração

    public init(
      for model: __shared Model,
      learningRate: Float = 1,
      rho: Float = 0.95,
      epsilon: Float = 1e-6,
      decay: Float = 0
    )

    Parâmetros

    learningRate

    A taxa de aprendizagem. O valor padrão é 1 .

    rho

    O fator de decaimento. O valor padrão é 0.95 .

    epsilon

    Um pequeno escalar adicionado ao denominador para melhorar a estabilidade numérica. O valor padrão é 1e-6 .

    decay

    O declínio da taxa de aprendizagem. O valor defalut é 0 .

  • Declaração

    public func update(_ model: inout Model, along direction: Model.TangentVector)
  • Declaração

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