SGD

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

Un optimiseur de descente de gradient stochastique (SGD).

Implémente l'algorithme de descente de gradient stochastique avec prise en charge de l'élan, de la décroissance du taux d'apprentissage et de l'élan de Nesterov. L'élan et l'élan Nesterov (alias la méthode du gradient accéléré Nesterov) sont des méthodes d'optimisation de premier ordre qui peuvent améliorer la vitesse d'entraînement et le taux de convergence de la descente du gradient.

Les références:

  • Déclaration

    public typealias Model = Model
  • Le taux d'apprentissage.

    Déclaration

    public var learningRate: Float
  • Le facteur élan. Il accélère la descente du gradient stochastique dans la direction appropriée et amortit les oscillations.

    Déclaration

    public var momentum: Float
  • Le taux d’apprentissage diminue.

    Déclaration

    public var decay: Float
  • Utilisez l'élan Nesterov si c'est vrai.

    Déclaration

    public var nesterov: Bool
  • L'état de vitesse du modèle.

    Déclaration

    public var velocity: Model.TangentVector
  • L’ensemble des mesures prises.

    Déclaration

    public var step: Int
  • Crée une instance pour model .

    Déclaration

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

    Paramètres

    learningRate

    Le taux d'apprentissage. La valeur par défaut est 0.01 .

    momentum

    Le facteur de quantité de mouvement qui accélère la descente du gradient stochastique dans la direction appropriée et amortit les oscillations. La valeur par défaut est 0 .

    decay

    Le taux d’apprentissage diminue. La valeur par défaut est 0 .

    nesterov

    Utilisez l'élan Nesterov si true . La valeur par défaut est true .

  • Déclaration

    public func update(_ model: inout Model, along direction: Model.TangentVector)
  • Déclaration

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