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 required init(copying other: AdaDelta, to device: Device)