বিশাল আকারের আধুনিক ডেটাসেটে যেখানে কোটি কোটি ডেটা পয়েন্ট থাকে, সেখানে প্রতি ধাপে পুরো ডেটাসেটের ওপর নিখুঁত গ্রেডিয়েন্ট গণনা করা কম্পিউটেশনালি অসম্ভব। মেশিন লার্নিং এই চ্যালেঞ্জ জয় করেছে দৈবতার হাত ধরে: স্টোকাস্টিক গ্রেডিয়েন্ট ডিসেন্ট (SGD) এবং এর আধুনিক রূপান্তর। পুরো ডেটাসেটের বদলে একটি বা কয়েকটি এলোমেলো নমুনা নিয়ে কাজ করে এসজিডি প্রমাণ করেছে যে র্যান্ডম নয়েজ অপ্টিমাইজেশনের শত্রু নয়, বরং দ্রুততম বন্ধু।
১. স্টোকাস্টিক গ্রেডিয়েন্টের অনুমান
আমাদের মূল লক্ষ্য হলো সমগ্র ডেটাসেটের গড় লস কমানো:
$$f(w) = frac{1}{n} sum_{i=1}^n f_i(w)$$
পুরো $n$ টি ডেটা না দেখে এসজিডি প্রতি ধাপে যেকোনো একটি ডেটা পয়েন্ট $i_t$ বেছে নেয় এবং কেবল তারই গ্রেডিয়েন্ট দিয়ে মডেল আপডেট করে:
$$w_{t+1} = w_t – eta_t nabla f_{i_t}(w_t)$$
সবচেয়ে গুরুত্বপূর্ণ বিষয় হলো—এই স্টোকাস্টিক গ্রেডিয়েন্ট একটি আনবায়াসড এস্টিমেটর (Unbiased Estimator), অর্থাৎ এর প্রত্যাশিত গড় মান আসল গ্রেডিয়েন্টের সমান:
$$mathbb{E}[g_t] = nabla f(w_t)$$
তবে একক ডেটার ওপর নির্ভর করায় এতে অনেক নয়েজ থাকে। তাই ব্যবহারিক ক্ষেত্রে $B$ আকারের মিনি-ব্যাচ (Mini-batch) ব্যবহার করা হয়, যা ভ্যারিয়েন্সকে $B$ গুণ কমিয়ে আনে।
২. পলিক মোমেন্টাম ও নেস্টেরভ অ্যাক্সিলারেশন
সরু উপত্যকার দেয়ালে অযথা কাঁপাকাঁপি বন্ধ করতে এবং সমতল রাস্তায় গতি বাড়াতে বরিস পলিক (১৯৬৪) নিয়ে আসেন হেভি-বল মোমেন্টাম (Heavy-Ball Momentum), যা পদার্থবিদ্যার ঘর্ষণ ও ভরের ধারণায় পরিচালিত:
$$v_t = beta v_{t-1} + g_t, quad w_{t+1} = w_t – eta v_t$$
যেসব দিকে গ্রেডিয়েন্ট দিক পরিবর্তন করে কাঁপছে, সেগুলো একে অপরকে বিয়োগ করে বাতিল করে দেয়; আর যেদিকে নিয়মিত ঢাল বিদ্যমান, সেদিকে বেগ বহুগুণ বৃদ্ধি পায়।
ইউরি নেস্টেরভ (১৯৮৩) এতে যোগ করেন নেস্টেরভ লুক-অ্যাহেড (NAG)। বর্তমান অবস্থানে গ্রেডিয়েন্ট না মেপে মোমেন্টামের দিকে একটু এগিয়ে গিয়ে গ্রেডিয়েন্ট পরিমাপ করা হয়:
$$g_t = nabla f(w_t – eta beta v_{t-1})$$
এটি উপত্যকার বিপরীত দেয়ালে ওঠার আগেই ব্রেক কষে, যা উত্তল অপ্টিমাইজেশনের গতিকে তাত্ত্বিক সর্বোচ্চ সীমা $mathcal{O}(1/T^2)$-এ উন্নীত করে।
৩. অ্যাডাপ্টিভ মোমেন্ট এস্টিমেশন: অ্যাডাম (Adam)
উচ্চ মাত্রার স্পেসে প্রতিটি প্যারামিটারের সংবেদনশীলতা ভিন্ন ভিন্ন হয়। একটি একক লার্নিং রেট সবার জন্য প্রযোজ্য হতে পারে না। ২০১৪ সালে ডিডেরিক কিংমা এবং জিমি বা তৈরি করেন অ্যাডাম (Adam) অ্যালগরিদম:
- প্রথম মোমেন্ট (গতিবেগ):
$$m_t = beta_1 m_{t-1} + (1 – beta_1) g_t$$
- দ্বিতীয় মোমেন্ট (স্কেল/বক্রতা):
$$v_t = beta_2 v_{t-1} + (1 – beta_2) g_t^2$$
- বায়াস সংশোধন: যেহেতু $m_0=0$ ও $v_0=0$ দিয়ে শুরু হয়, তাই প্রথমদিকে মানগুলো কৃত্রিমভাবে ছোট থাকে। এটি ঠিক করতে ভাগ করা হয়:
$$hat{m}_t = frac{m_t}{1 – beta_1^t}, quad hat{v}_t = frac{v_t}{1 – beta_2^t}$$
- প্যারামিটার আপডেট:
$$w_{t+1} = w_t – frac{eta}{sqrt{hat{v}_t} + epsilon} odot hat{m}_t$$
অ্যাডাম প্রতিটি কোঅর্ডিনেটকে তার নিজস্ব ভ্যারিয়েন্স অনুযায়ী স্বয়ংক্রিয়ভাবে নিয়ন্ত্রণ করে—যে প্যারামিটারে নয়েজ বেশি তার গতি কমিয়ে দেয়, আর যেটিতে কদাচিৎ সিগন্যাল আসে তার গুরুত্ব বাড়িয়ে দেয়। আজ মেশিন লার্নিংয়ের সর্বাধিক জনপ্রিয় অপ্টিমাইজার হলো অ্যাডাম।