public class RMSProp<Model: Differentiable>: Optimizer
where
Model.TangentVector: VectorProtocol & PointwiseMultiplicative
& ElementaryFunctions & KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
Un optimizador de 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:
- “Conferencia 6.5 - rmsprop: Divida el gradiente por un promedio móvil de su magnitud reciente” (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 caída 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 para todas las variables diferenciables del modelo.
Declaración
public var alpha: Model.TangentVector
Crea una instancia para
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 caída 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 predeterminado es
1e-8
.decay
La tasa de aprendizaje decae. El valor predeterminado es
0
.Declaración
public required init(copying other: RMSProp, to device: Device)