public class AdaDelta<Model: Differentiable>: Optimizer
where
Model.TangentVector: VectorProtocol & PointwiseMultiplicative
& ElementaryFunctions & KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
Un optimizador AdaDelta.
Implementa el algoritmo de optimización AdaDelta. AdaDelta es un método de descenso de gradiente estocástico basado en información de primer orden. Adapta las tasas de aprendizaje en función de una ventana móvil de actualizaciones de gradientes, en lugar de acumular todos los gradientes anteriores. Por lo tanto, AdaDelta continúa aprendiendo incluso cuando se han realizado muchas actualizaciones. Se adapta más rápido a la dinámica cambiante del espacio del problema de optimización.
Referencia: “ADADELTA: Un método de tasa de aprendizaje adaptativo” (Zeiler, 2012)
Declaración
public typealias Model = Model
La tasa de aprendizaje.
Declaración
public var learningRate: Float
El factor de caída, correspondiente a la fracción de gradiente que se debe mantener en cada paso de tiempo.
Declaración
public var rho: Float
Un pequeño escalar agregado al denominador para mejorar la estabilidad numérica.
Declaración
public var epsilon: Float
La tasa de aprendizaje decae.
Declaración
public var decay: Float
El paso actual.
Declaración
public var step: Int
El promedio acumulado, que decae exponencialmente, de gradientes cuadrados.
Declaración
public var averageSquared: Model.TangentVector
Los parámetros acumulados se actualizan.
Declaración
public var accumulatedDelta: Model.TangentVector
Crea una instancia para
model
.Declaración
public init( for model: __shared Model, learningRate: Float = 1, rho: Float = 0.95, epsilon: Float = 1e-6, decay: Float = 0 )
Parámetros
learningRate
La tasa de aprendizaje. El valor predeterminado es
1
.rho
El factor de decadencia. El valor predeterminado es
0.95
.epsilon
Un pequeño escalar agregado al denominador para mejorar la estabilidad numérica. El valor predeterminado es
1e-6
.decay
La tasa de aprendizaje decae. El valor predeterminado es
0
.Declaración
public required init(copying other: AdaDelta, to device: Device)