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 quadrado para cada peso.
Referências:
- “Palestra 6.5 - rmsprop: Divida o gradiente por uma média de execução da sua recente magnitude” (Tieleman e Hinton, 2012)
- “Gerando sequências com Recurrent Neural Networks” (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 do 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
O declínio 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 de
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 do 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
O declínio da taxa de aprendizagem. O valor padrão é
0
.Declaração
public required init(copying other: RMSProp, to device: Device)