public class RMSProp<Model: Differentiable>: Optimizer
where
Model.TangentVector: VectorProtocol & PointwiseMultiplicative
& ElementaryFunctions & KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
RMSProp 최적화 프로그램.
RMSProp 최적화 알고리즘을 구현합니다. RMSProp은 경사를 최근 크기의 실행 평균으로 나누는 확률적 경사하강법의 한 형태입니다. RMSProp은 각 가중치에 대한 제곱 기울기의 이동 평균을 유지합니다.
참고자료:
- "강의 6.5 - rmsprop: 기울기를 최근 크기의 이동 평균으로 나눕니다" (Tieleman 및 Hinton, 2012)
- "반복 신경망을 사용하여 시퀀스 생성" (Graves, 2013)
선언
public typealias Model = Model
학습률입니다.
선언
public var learningRate: Float
경사 이동 평균 붕괴 인자입니다.
선언
public var rho: Float
수치 안정성을 향상시키기 위해 분모에 작은 스칼라가 추가되었습니다.
선언
public var epsilon: Float
학습률이 감소합니다.
선언
public var decay: Float
걸음 수입니다.
선언
public var step: Float
모든 모델 미분 가능 변수의 알파 값입니다.
선언
public var alpha: Model.TangentVector
model
에 대한 인스턴스를 만듭니다.선언
public init( for model: __shared Model, learningRate: Float = 1e-3, rho: Float = 0.9, epsilon: Float = 1e-8, decay: Float = 0 )
매개변수
learningRate
학습률입니다. 기본값은
1e-3
입니다.rho
경사 이동 평균 붕괴 인자입니다. 기본값은
0.9
입니다.epsilon
수치 안정성을 향상시키기 위해 분모에 작은 스칼라가 추가되었습니다. 기본값은
1e-8
입니다.decay
학습률이 감소합니다. 기본값은
0
입니다.선언
public required init(copying other: RMSProp, to device: Device)