SGD

public class SGD<Model: Differentiable>: Optimizer
where
  Model.TangentVector: VectorProtocol & ElementaryFunctions & KeyPathIterable,
  Model.TangentVector.VectorSpaceScalar == Float

SGD(확률적 경사하강법) 최적화 프로그램입니다.

운동량, 학습률 감소 및 Nesterov 운동량을 지원하는 확률적 경사하강법 알고리즘을 구현합니다. 모멘텀 및 네스테로프 모멘텀(일명 네스테로프 가속 경사 방법)은 경사 하강법의 훈련 속도와 수렴 속도를 향상시킬 수 있는 1차 최적화 방법입니다.

참고자료:

  • 선언

    public typealias Model = Model
  • 학습률입니다.

    선언

    public var learningRate: Float
  • 모멘텀 요인. 이는 관련 방향으로 확률적 경사 하강을 가속화하고 진동을 완화합니다.

    선언

    public var momentum: Float
  • 학습률이 감소합니다.

    선언

    public var decay: Float
  • 사실이라면 Nesterov 추진력을 사용하십시오.

    선언

    public var nesterov: Bool
  • 모델의 속도 상태입니다.

    선언

    public var velocity: Model.TangentVector
  • 수행된 단계 집합입니다.

    선언

    public var step: Int
  • model 에 대한 인스턴스를 만듭니다.

    선언

    public init(
      for model: __shared Model,
      learningRate: Float = 0.01,
      momentum: Float = 0,
      decay: Float = 0,
      nesterov: Bool = false
    )

    매개변수

    learningRate

    학습률입니다. 기본값은 0.01 입니다.

    momentum

    관련 방향으로 확률적 경사 하강을 가속화하고 진동을 완화하는 운동량 인자입니다. 기본값은 0 입니다.

    decay

    학습률이 감소합니다. 기본값은 0 입니다.

    nesterov

    true 인 경우 Nesterov 추진력을 사용합니다. 기본값은 true 입니다.

  • 선언

    public func update(_ model: inout Model, along direction: Model.TangentVector)
  • 선언

    public required init(copying other: SGD, to device: Device)