public class RMSProp<Model: Differentiable>: Optimizer
where
Model.TangentVector: VectorProtocol & PointwiseMultiplicative
& ElementaryFunctions & KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
Un optimizador RMSProp.
Implementa el algoritmo de optimización RMSProp. RMSProp es una forma de descenso de gradiente estocástico donde los gradientes se dividen por un promedio móvil de su magnitud reciente. RMSProp mantiene un promedio móvil del gradiente al cuadrado para cada peso.
Referencias:
- “Lecture 6,5 - rmsprop: Divida el gradiente por un promedio de funcionamiento de su reciente magnitud” (Tieleman y Hinton, 2012)
- “Generación de secuencias con redes neuronales recurrentes” (Graves, 2013)
Declaración
public typealias Model = Model
La tasa de aprendizaje.
Declaración
public var learningRate: Float
El factor de desintegración de la media móvil del gradiente.
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 recuento de pasos.
Declaración
public var step: Float
Los valores alfa de todas las variables diferenciables del modelo.
Declaración
public var alpha: Model.TangentVector
Crea una instancia de
model
.Declaración
public init( for model: __shared Model, learningRate: Float = 1e-3, rho: Float = 0.9, epsilon: Float = 1e-8, decay: Float = 0 )
Parámetros
learningRate
La tasa de aprendizaje. El valor predeterminado es
1e-3
.rho
El factor de desintegración de la media móvil del gradiente. El valor predeterminado es
0.9
.epsilon
Un pequeño escalar agregado al denominador para mejorar la estabilidad numérica. El valor por defecto es
1e-8
.decay
La tasa de aprendizaje decae. El valor por defecto es
0
.Declaración
public required init(copying other: RMSProp, to device: Device)