গ্রেডিয়েন্ট ডিসেন্ট (Gradient Descent)
ভাবুন তো আপনি চোখ বেঁধে একটি পাহাড়ি রাস্তায় দাঁড়িয়ে আছেন। আপনি কিছুই দেখতে পাচ্ছেন না, কিন্তু আপনি পায়ের নিচের ঢালটি খুব ভালোভাবে অনুভব করতে পারছেন। এক্ষেত্রে আপনার লক্ষ্য হলো: পাহাড়ের সবচেয়ে নিচু উপত্যকা বা জায়গাটি খুঁজে বের করা।
এক্ষেত্রে আপনি কী করবেন? খুব সহজ — আপনি অনুভব করবেন যে পাহাড়ের কোন দিকটি নিচের দিকে ঢালু হয়ে গেছে, এবং সেদিকে এক পা এক পা করে এগোতে থাকবেন। এরপর আপনি আবার অনুভব করবেন, আবার পা ফেলবেন। আর এভাবেই চলতে চলতে, অবশেষে আপনি উপত্যকার সবচেয়ে নিচু জায়গায় গিয়ে পৌঁছাবেন।
আর এটিই হলো গ্রেডিয়েন্ট ডিসেন্ট (gradient descent)। এখানকার "ল্যান্ডস্কেপ (landscape) বা দৃশ্যপট"-টি হলো মডেলের লস ফাংশন (loss function) — একটি বিশাল পৃষ্ঠদেশ বা সারফেস, যেখানে এর উচ্চতা হলো মডেলটি ঠিক কতটা ভুল করছে তার মাপকাঠি। আর এখানকার "স্লোপ (slope) বা ঢাল" হলো এর গ্রেডিয়েন্ট (gradient) — অর্থাৎ গাণিতিকভাবে আপনার মডেলের ভুল ঠিক কোন দিকে সবচেয়ে বেশি হারে বাড়ছে। তাই ভুল বা এরর কমানোর জন্য আপনাকে মূলত এর বিপরীত দিকে (অর্থাৎ নিচের দিকে বা downhill) পা বাড়াতে হবে।
গ্রেডিয়েন্ট (The gradient): আপনার কম্পাস
গ্রেডিয়েন্ট (Gradient) হলো মূলত কোনো জিনিসের সবচেয়ে খাড়া বা উঁচু দিকটি বোঝানোর একটি একটু কঠিন ও গাণিতিক নাম। আপনি যদি কোনো পাহাড়ের ওপর থাকেন এবং সেখানকার গ্রেডিয়েন্ট যদি উত্তর-পূর্ব (northeast) এবং ওপরের দিকে হয়, তবে এটি থেকে সবচেয়ে দ্রুত নিচে নামার জন্য আপনাকে মূলত এর ঠিক উল্টোদিকে অর্থাৎ দক্ষিণ-পশ্চিম এবং নিচের দিকে (যা হলো নেগেটিভ গ্রেডিয়েন্ট) পা বাড়াতে হবে।
অঙ্কের হিসাবে, একটি নেটওয়ার্কের ভেতরে থাকা প্রতিটি ওয়েট (w)-এর ক্ষেত্রে:
w_new = w_old - learning_rate * (dLoss/dw)
এখানকার লার্নিং রেট (learning rate) নির্ধারণ করে যে আপনার নেওয়া প্রতিটি স্টেপ বা পদক্ষেপ ঠিক কতটা বড় হবে। এটি অনেকটা চোখ বাঁধা অবস্থায় পাহাড় থেকে নামার সময় আপনার এক পায়ের সাথে অন্য পায়ের দূরত্বের (stride length) মতো কাজ করে।
লার্নিং রেট বা শেখার হার (The learning rate): গোল্ডিলক্স সমস্যা (Goldilocks problem)
এটি হলো সুর বা টিউন মেলানোর জন্য সবচেয়ে গুরুত্বপূর্ণ একটি নচ বা কাঁটা:
- অনেক বেশি বড় (Too large): আপনি অনেক বড় বড় পা ফেলছেন এবং বারবার উপত্যকার এক পাহাড় থেকে অন্য পাহাড়ের দিকে লাফিয়ে চলে যাচ্ছেন, কিন্তু একেবারেই নিচে নামতে পারছেন না। এর ফলে এখানকার লসগুলো মারাত্মকভাবে এদিক-ওদিক ওঠানামা করে কিংবা একেবারে বোমার মতো ফেটে যায় বা এক্সপ্লোড করে (explodes)।
- অনেক বেশি ছোট (Too small): আপনি খুব সাবধানে ছোট ছোট বাচ্চার মতো পা ফেলছেন। হয়তো এভাবেই আপনি একসময় না একসময় ঠিকই নিচে পৌঁছাবেন, কিন্তু সেখানে যেতে আপনার হয়তো জন্ম পার হয়ে যাবে। আর এই ধরনের ছোট লার্নিং রেটের কারণে একটি মডেল ট্রেইন হতে কয়েক ঘণ্টার বদলে কয়েক সপ্তাহ পর্যন্ত সময় লেগে যেতে পারে।
- একেবারে পারফেক্ট (Just right): আপনি খুব সুন্দরভাবে একেবারে নিচে পৌঁছে গেছেন। এটির জন্য শুরুতে বড় লার্নিং রেট দিয়ে শুরু করতে হয় এবং এরপর ধীরে ধীরে তা কমাতে হয় (আর এই পদ্ধতিকে লার্নিং রেট শিডিউল বা learning rate schedule বলা হয়)।
গ্রেডিয়েন্ট ডিসেন্টের তিনটি ধরন (Three flavors of gradient descent)
ব্যাচ গ্রেডিয়েন্ট ডিসেন্ট (Batch Gradient Descent)
এক্ষেত্রে কেবল একটি স্টেপ বা পদক্ষেপ নেওয়ার আগেই সবগুলো ট্রেইনিং উদাহরণ বা এক্সাম্পল ব্যবহার করে গ্রেডিয়েন্ট হিসাব করা হয়। এর দিক বা ডিরেকশনগুলো অনেক নিখুঁত হলেও, বড় ডেটাসেটের ক্ষেত্রে এটি বেশ ব্যয়বহুল একটি পদ্ধতি। একে তুলনা করা যায় প্রতিটি পদক্ষেপ ফেলার আগে চারপাশের পুরো দৃশ্যপট বা পাহাড়টি খুব ভালোভাবে মেপে দেখার সাথে।
স্টোকাসটিক গ্রেডিয়েন্ট ডিসেন্ট (Stochastic Gradient Descent বা SGD)
যেকোনো একটি রেন্ডম বা দৈব উদাহরণ ব্যবহার করে গ্রেডিয়েন্ট হিসাব করে আর এরপর সাথে সাথেই একটি পদক্ষেপ নেওয়া হয়। এর প্রতিটি স্টেপ অনেক দ্রুত (fast) হলেও এগুলো অনেক বেশি নয়েজি (noisy) বা এলোমেলো হয় — যা অনেকটা রাস্তাঘাটে থাকা অচেনা মানুষের কাছ থেকে ডিরেকশন বা পথ চিনে চলার মতো একটি ব্যাপার। এর পথটি অনেক বেশি আঁকাবাঁকা হলেও, আপনি শেষপর্যন্ত ঠিকই পাহাড়ের নিচে গিয়ে পৌঁছাবেন।
মিনি-ব্যাচ গ্রেডিয়েন্ট ডিসেন্ট (Mini-batch Gradient Descent)
সবচেয়ে পারফেক্ট জিনিস বা সুইট স্পট (sweet spot)। গ্রেডিয়েন্ট অনুমান করার জন্য এটি একটি ছোট ব্যাচ (small batch) (যেমন: ৩২, ৬৪ বা ১২৮টি উদাহরণ) ব্যবহার করে। এটি এসজিডি (SGD)-এর চেয়ে অনেক কম নয়েজি এবং ব্যাচ (batch) জিডির চেয়ে অনেক বেশি ফাস্ট বা দ্রুত কাজ করে। আর বাস্তবে সবাই মূলত এই পদ্ধতিটিই সবচেয়ে বেশি ব্যবহার করে।
গ্রেডিয়েন্ট ডিসেন্ট: সবচেয়ে ভালো লাইনটি খুঁজে বের করা (Gradient Descent: Finding the Best Line)
Key Metrics
ছোট কুইজ
পড়া চালিয়ে যান