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