сингапурский доллар

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

Оптимизатор стохастического градиентного спуска (SGD).

Реализует алгоритм стохастического градиентного спуска с поддержкой импульса, затухания скорости обучения и импульса Нестерова. Импульс и импульс Нестерова (также известный как метод ускоренного градиента Нестерова) — это методы оптимизации первого порядка, которые могут улучшить скорость обучения и скорость сходимости градиентного спуска.

Использованная литература:

  • Декларация

    public typealias Model = Model
  • Скорость обучения.

    Декларация

    public var learningRate: Float
  • Фактор импульса. Он ускоряет стохастический градиентный спуск в соответствующем направлении и гасит колебания.

    Декларация

    public var momentum: Float
  • Скорость обучения снижается.

    Декларация

    public var decay: Float
  • Используйте импульс Нестерова, если это правда.

    Декларация

    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 . Значение по умолчанию true .

  • Декларация

    public func update(_ model: inout Model, along direction: Model.TangentVector)
  • Декларация

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