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 estocástico de descida gradiente baseado em 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, o AdaDelta continua aprendendo mesmo depois de muitas atualizações terem sido feitas. Ele se adapta mais rapidamente às mudanças na dinâmica do espaço do problema de otimização.

Referência: “ADADELTA: Um método de taxa de aprendizagem adaptativa” (Zeiler, 2012)

  • Declaração

    public typealias Model = Model
  • A taxa de aprendizagem.

    Declaração

    public var learningRate: Float
  • 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
  • A queda da taxa de aprendizagem.

    Declaração

    public var decay: Float
  • A etapa atual.

    Declaração

    public var step: Int
  • A média acumulada e em declínio exponencial de gradientes quadrados.

    Declaração

    public var averageSquared: Model.TangentVector
  • O parâmetro acumulado é atualizado.

    Declaração

    public var accumulatedDelta: Model.TangentVector
  • Cria uma instância para 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 decadência. 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

    A queda da taxa de aprendizagem. O valor padrão é 0 .

  • Declaração

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

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