public class RMSProp<Model: Differentiable>: Optimizer
where
Model.TangentVector: VectorProtocol & PointwiseMultiplicative
& ElementaryFunctions & KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
Um otimizador RMSProp.
Implementa o algoritmo de otimização RMSProp. RMSProp é uma forma de descida gradiente estocástica onde os gradientes são divididos por uma média contínua de sua magnitude recente. RMSProp mantém uma média móvel do gradiente quadrático para cada peso.
Referências:
- “Aula 6.5 - rmsprop: Divida o gradiente por uma média contínua de sua magnitude recente” (Tieleman e Hinton, 2012)
- “Gerando sequências com redes neurais recorrentes” (Graves, 2013)
Declaração
public typealias Model = Model
A taxa de aprendizagem.
Declaração
public var learningRate: Float
O fator de decaimento da média móvel gradiente.
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 contagem de passos.
Declaração
public var step: Float
Os valores alfa para todas as variáveis diferenciáveis do modelo.
Declaração
public var alpha: Model.TangentVector
Cria uma instância para
model
.Declaração
public init( for model: __shared Model, learningRate: Float = 1e-3, rho: Float = 0.9, epsilon: Float = 1e-8, decay: Float = 0 )
Parâmetros
learningRate
A taxa de aprendizagem. O valor padrão é
1e-3
.rho
O fator de decaimento da média móvel gradiente. O valor padrão é
0.9
.epsilon
Um pequeno escalar adicionado ao denominador para melhorar a estabilidade numérica. O valor padrão é
1e-8
.decay
A queda da taxa de aprendizagem. O valor padrão é
0
.Declaração
public required init(copying other: RMSProp, to device: Device)