ดอลลาร์สิงคโปร์

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

เครื่องมือเพิ่มประสิทธิภาพการไล่ระดับสีสุ่ม (SGD)

ใช้อัลกอริธึมการไล่ระดับสีแบบสุ่มโดยรองรับโมเมนตัม การสลายตัวของอัตราการเรียนรู้ และโมเมนตัม Nesterov โมเมนตัมและโมเมนตัม Nesterov (หรือที่รู้จักในชื่อวิธีการไล่ระดับแบบเร่ง Nesterov) เป็นวิธีการปรับให้เหมาะสมลำดับแรกที่สามารถปรับปรุงความเร็วการฝึกและอัตราการบรรจบกันของการไล่ระดับลง

อ้างอิง:

  • คำประกาศ

    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

    ใช้โมเมนตัม Nesterov iff true ค่าเริ่มต้นเป็น true

  • คำประกาศ

    public func update(_ model: inout Model, along direction: Model.TangentVector)
  • คำประกาศ

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