public class SGD<Model: Differentiable>: Optimizer
where
Model.TangentVector: VectorProtocol & ElementaryFunctions & KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
একটি স্টোকাস্টিক গ্রেডিয়েন্ট ডিসেন্ট (SGD) অপ্টিমাইজার।
ভরবেগ, শেখার হার ক্ষয় এবং নেস্টেরভ ভরবেগের জন্য সমর্থন সহ স্টোকাস্টিক গ্রেডিয়েন্ট ডিসেন্ট অ্যালগরিদম প্রয়োগ করে। মোমেন্টাম এবং নেস্টেরভ ভরবেগ (ওরফে নেস্টেরভ ত্বরিত গ্রেডিয়েন্ট পদ্ধতি) হল প্রথম-ক্রম অপ্টিমাইজেশান পদ্ধতি যা প্রশিক্ষণের গতি এবং গ্রেডিয়েন্ট ডিসেন্টের অভিন্নতা হারকে উন্নত করতে পারে।
তথ্যসূত্র:
- "একটি স্টোকাস্টিক আনুমানিক পদ্ধতি" (রবিন্স এবং মনরো, 1951)
- "রবিনস এবং মনরোর স্টোকাস্টিক আনুমানিক পদ্ধতিতে" (উলফোভিটজ, 1952)
- "রিগ্রেশন ফাংশনের সর্বোচ্চের স্টোকাস্টিক অনুমান" (কিফার এবং উলফোভিটজ, 1952)
- "পুনরাবৃত্তি পদ্ধতির অভিসারকে দ্রুত করার কিছু পদ্ধতি" (পলিয়াক, 1964)
- "কনভারজেন্সের হারের সাথে অনিয়ন্ত্রিত উত্তল ন্যূনতমকরণ সমস্যার জন্য একটি পদ্ধতি" (নেস্টেরভ, 1983)
ঘোষণা
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
হলে নেস্টেরভ মোমেন্টাম ব্যবহার করুন। ডিফল্ট মানtrue
।ঘোষণা
public required init(copying other: SGD, to device: Device)