শিখন হার

মেশিন লার্নিংয়ে শিখন হার(ইংরেজিঃ Learning rate) হলো এমন একটি টিউনিং প্যারামিটার যা নির্ধারণ করে একটি অ্যালগরিদম প্রতিবার কতটা এগোবে ক্ষতি ফাংশনের সর্বনিম্ন বিন্দুর দিকে। এটি নতুন তথ্য পুরানো তথ্যকে কতটা প্রভাবিত করবে তা ঠিক করে, অর্থাৎ মডেল কত দ্রুত "শিখবে"। অ্যাডাপটিভ কন্ট্রোলে একে গেইন বলে।
শিখন হার ঠিক করতে গিয়ে গতি আর ওভারশুটিংয়ের মধ্যে ভারসাম্য রাখতে হয়। গ্রেডিয়েন্ট দিক দেখায়, কিন্তু শিখন হার ধাপের আকার ঠিক করে। বেশি হলে সর্বনিম্ন ছাড়িয়ে যাবে, কম হলে অনেক সময় লাগবে বা ভুল জায়গায় আটকে যাবে।
শিখন হার প্রশিক্ষণের সময় বদলানো হয় যাতে দ্রুত কনভারজেন্স হয়, দোলন না হয় এবং ভুল স্থানীয় সর্বনিম্নে আটকে না যায়। এটি একটি নির্দিষ্ট সিডিউল বা অ্যাডাপটিভ পদ্ধতি দিয়ে করা হয়। প্রতিটি প্যারামিটারের জন্য শিখন হার আলাদা হতে পারে, তখন এটি একটি তির্যক ম্যাট্রিক্সের মতো হয়, যা নিউটনের পদ্ধতিতে হেসিয়ান ম্যাট্রিক্সের বিপরীতের আনুমানিক হিসেবে বোঝা যায়। এটি কোয়াসি-নিউটন পদ্ধতি এবং অন্যান্য অপ্টিমাইজেশন অ্যালগরিদমে অসম্পূর্ণ লাইন সার্চের ধাপের দৈর্ঘ্যের সঙ্গে জড়িত।
শিখন হার শুরুতে ডিফল্ট রাখা যায় বা কৌশল দিয়ে বেছে নেওয়া যায়। শিখন হার সিডিউল শিক্ষার সময় এটিকে বদলায়, সাধারণত এপক বা পুনরাবৃত্তির সঙ্গে। এটি ক্ষয় আর গতি নামে দুটি জিনিস দিয়ে করা হয়। সাধারণ সিডিউলগুলো হলো সময়-ভিত্তিক, ধাপ-ভিত্তিক আর সূচকীয়।
ক্ষয় শিক্ষাকে সঠিক জায়গায় স্থির রাখে আর দোলন আটকায়। উচ্চ শিখন হার থাকলে শিক্ষা সর্বনিম্ন বিন্দুর ওপর দিয়ে লাফাতে পারে। এটি একটি হাইপারপ্যারামিটার দিয়ে নিয়ন্ত্রণ করা হয়।
গতি একটি পাহাড়ে গড়ানো বলের মতো। আমরা চাই বলটি সবচেয়ে নিচে (কম ত্রুটির জায়গায়) থামুক। গতি শিক্ষার গতি বাড়ায় যখন ত্রুটির দিক একই থাকে, আর ছোট বাধা পার করে স্থানীয় সর্বনিম্ন এড়ায়। এটিও একটি হাইপারপ্যারামিটার দিয়ে নিয়ন্ত্রিত, যা বলের ভরের মতো। বেশি হলে বল সর্বনিম্ন ছাড়িয়ে যায়, কম হলে কাজ করে না। গতির সূত্র ক্ষয়ের চেয়ে জটিল, কিন্তু Keras-এর মতো লাইব্রেরিতে এটি আগে থেকে থাকে।
সময়-ভিত্তিক লার্নিং সিডিউল পূর্ববর্তী সময়ের পুনরাবৃত্তির শিখন হারের উপর নির্ভর করে শিখন হার পরিবর্তন করে। ক্ষয় ফ্যাক্টরিংয়ের গাণিতিক সূত্রটি হল:
formula_1
যেখানে formula_2 হল শিখন হার, formula_3 হল একটি ক্ষয় প্যারামিটার এবং formula_4 হল পুনরাবৃত্তি ধাপ।
ধাপ-ভিত্তিক লার্নিং সিডিউল কিছু পূর্বনির্ধারিত ধাপ অনুসারে শিখন হার পরিবর্তন করে। এখানে ক্ষয় প্রয়োগের সূত্রটি নিম্নরূপ:
formula_5
যেখানে formula_6 হল পুনরাবৃত্তি formula_4-এ শিখন হার, formula_8 হল প্রাথমিক শিখন হার, formula_3 হল শিখন হার কতটা পরিবর্তন করা উচিত প্রতিটি ড্রপে (০.৫ অর্ধেক করার সাথে সম্পর্কিত) এবং formula_10 হল "ড্রপ রেট", বা রেট কত ঘন ঘন কমানো উচিত (১০ প্রতি ১০ পুনরাবৃত্তিতে একটি ড্রপের সাথে সম্পর্কিত)। এখানে "ফ্লোর" ফাংশন (formula_11) তার ইনপুটের মানকে ১-এর চেয়ে ছোট সব মানের জন্য ০-তে নামিয়ে দেয়।
এক্সপোনেনশিয়াল লার্নিং সিডিউল ধাপ-ভিত্তিকের মতো, তবে ধাপের পরিবর্তে একটি কমে যাওয়া এক্সপোনেনশিয়াল ফাংশন ব্যবহৃত হয়। ক্ষয় ফ্যাক্টরিংয়ের গাণিতিক সূত্রটি হল:
formula_12
যেখানে formula_3 হল একটি ক্ষয় প্যারামিটার।
শিখন হার সিডিউলের সমস্যা হলো এগুলো হাইপারপ্যারামিটারের উপর নির্ভর করে, যেগুলো প্রতিটি শিক্ষা সেশনের জন্য হাতে বেছে নিতে হয়। এই হাইপারপ্যারামিটারগুলো সমস্যা বা ব্যবহৃত মডেলের উপর ভিত্তি করে অনেকটা পরিবর্তিত হতে পারে। এই সমস্যা সমাধানের জন্য, বিভিন্ন অ্যাডাপটিভ গ্রেডিয়েন্ট ডিসেন্ট অ্যালগরিদম আছে, যেমন অ্যাডাগ্রাড, অ্যাডাডেল্টা, আরএমএসপ্রপ, এবং অ্যাডাম যেগুলো Keras-এর মতো লাইব্রেরিতে আগে থেকে থাকে।