অ্যাডাগ্রাড

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

একটি AdaGrad অপ্টিমাইজার।

AdaGrad (অভিযোজিত গ্রেডিয়েন্ট) অপ্টিমাইজেশান অ্যালগরিদম প্রয়োগ করে। AdaGrad-এর পরামিতি-নির্দিষ্ট শেখার হার রয়েছে, যা প্রশিক্ষণের সময় কত ঘন ঘন পরামিতি আপডেট করা হয় তার সাথে সম্পর্কিত। যেসব প্যারামিটার বেশি আপডেট পায় তাদের শেখার হার কম থাকে।

AdaGrad পৃথকভাবে সমস্ত মডেল প্যারামিটারের শেখার হারগুলিকে গ্রেডিয়েন্ট নিয়মের বর্গক্ষেত্রের চলমান যোগফলের বর্গমূলের বিপরীত সমানুপাতিক স্কেলিং করে খাপ খায়।

রেফারেন্স: "অনলাইন লার্নিং এবং স্টোকাস্টিক অপ্টিমাইজেশনের জন্য অভিযোজিত সাবগ্রেডিয়েন্ট পদ্ধতি" (দুচি এট আল, 2011)

  • ঘোষণা

    public typealias Model = Model
  • শেখার হার।

    ঘোষণা

    public var learningRate: Float
  • সাংখ্যিক স্থিতিশীলতা উন্নত করতে হরটিতে একটি ছোট স্কেলার যোগ করা হয়েছে।

    ঘোষণা

    public var epsilon: Float
  • গ্রেডিয়েন্ট নিয়মের বর্গক্ষেত্রের চলমান যোগফল।

    ঘোষণা

    public var accumulator: Model.TangentVector
  • model জন্য একটি উদাহরণ তৈরি করে।

    ঘোষণা

    public init(
      for model: __shared Model,
      learningRate: Float = 1e-3,
      initialAccumulatorValue: Float = 0.1,
      epsilon: Float = 1e-8
    )

    পরামিতি

    learningRate

    শেখার হার। ডিফল্ট মান হল 1e-3

    initialAccumulatorValue

    গ্রেডিয়েন্ট নিয়মের বর্গক্ষেত্রের চলমান যোগফলের শুরুর মান। ডিফল্ট মান হল 0.1

    epsilon

    সাংখ্যিক স্থিতিশীলতা উন্নত করতে হরটিতে একটি ছোট স্কেলার যোগ করা হয়েছে। ডিফল্ট মান হল 1e-8

  • ঘোষণা

    public func update(_ model: inout Model, along direction: Model.TangentVector)
  • ঘোষণা

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