লিনিয়ার রিগ্রেশন পর্ব-২ ও গ্রেডিয়েন্ট ডিসেন্ট
লিনিয়ার রিগ্রেশন : দ্বিতীয় পর্ব
আমরা গত পর্বে লিনিয়ার রিগ্রেশনের বেসিক জানার পাশাপাশি কস্ট ফাংশন ক্যালকুলেশন সম্পর্কে কিছুটা জেনেছিলাম। আজকে আমরা নিচের বিষয়গুলো সম্পর্কে জানার চেষ্টা করব।
আজকের আলোচনার বিষয়বস্তু
কস্ট ফাংশন ইনটুইশন
এতক্ষণে লিনিয়ার মডেল সম্পর্কে ভালই ধারণা হয়েছে আশা করি, সেটা যদি হয়ে থাকে আমরা আরেকবার ঘুরে আসি কস্ট ফাংশনের কাছ থেকে।
কস্ট ফাংশনের গ্রাফ দিয়ে লাভ কী?
আমাদের কাজ ছিল কস্ট মিনিমাইজ করা। সকল ইঞ্জিনিয়ারিংয়ের মূল লক্ষ্য তাই। যত কম রিসোর্স ব্যবহার করে যত ভাল ফলাফল পাওয়া যায়। তেমনি মেশিন লার্নিংয়ের জন্য আমাদের মূল লক্ষ্য থাকবে কতটা নির্ভুল প্রেডিকশন করা যায়।
আমরা যদি কতগুলো মডেলের কস্ট ফাংশন এর রেজাল্ট স্ক্যাটার প্লট করি তাহলে আমরা গ্রাফ থেকে সহজেই ট্র্যাক করতে পারব সবচেয়ে কম এরর কোন প্যারামিটারের জন্য।
সবকিছু বাদ দিয়ে নতুন করে একটা জিনিস দেখা যাক, নিচের ডেটাসেট এর কথা চিন্তা করা করি,
গ্রাফ
এই ডেটাসেটের গ্রাফ এইরকম,
তাহলে প্লট আসবে এরকম,
তাহলে প্লট,
তাহলে প্লট,
কস্ট ফাংশন গ্রাফ
তাহলে সেটার প্লট হতে পারত এরকম,
আমরা অবশেষে কস্ট ফাংশন সম্পর্কে অনেক কিছু জানতে পারলাম। এখন আমরা দেখব Cost Function Minimization Using Gradient Descent।
Gradient Descent অ্যালগরিদম
ক্যালকুলাস মনে আছে? ডিফারেনসিয়েশন? সেটাই আমাদের এখন কিছুটা কাজে আসবে। যদি মনে না থাকে তাহলে আগে একটু ডিফারেনসিয়েশন দেখা যাক।
Differentiation : Method for Calculating Slope at a specific point of a function
নিচের ছবিটা দেখা যাক,
Slope বা ঢাল
ঢালের মান চার ধরণের, নন-জিরো পজিটিভ, নেগেটিভ, জিরো এবং অসংজ্ঞায়িত। এই মানের ভিত্তিতে আমরা ঢালকে ক্লাসিফাই করতে পারি।
এই ঢাল চার ভাগ করা যায়,
ধনাত্মক ঢাল (Positive Slope)
ঋণাত্মক ঢাল (Negative Slope)
শূন্য ঢাল (Zero Valued Slope)
অসংজ্ঞায়িত ঢাল (Undefined Slope)
একনজরে ঢালগুলো,
Partial Derivative
প্রশ্ন আসতে পারে, এই ঢাল দিয়ে আমরা করব টা কী? আসলে ক্যালকুলাসের সামান্য(!) কনসেপ্ট দিয়ে আমরা বিলিওন বিলিওন সেকেন্ড বাঁচাতে পারি।
আমরা ডিফারেনসিয়েশন ও ঢালের কনসেপ্ট দিয়ে কস্ট মিনিমাইজ করার চেষ্টা করব। আর সেই চেষ্টার জন্য আমরা যে অ্যালগরিদম ব্যবহার করব সেটাই Gradient Descent।
গ্রেডিয়েন্ট ডিসেন্ট
অ্যালগরিদম
repeat until convergence {
}
ম্যাথমেটিক্যাল নোটেশন
গ্রেডিয়েন্ট ডিসেন্ট ইনটুইশন
অ্যালগরিদম আসলে কী বলছে? আমরা আগেই জানি মেশিন লার্নিং মডেল ট্রেইনিং মানে হচ্ছে মডেলের ইন্টার্নাল প্যারামিটার গুলো এমন ভাবে সেট করা যাতে আমাদের প্রেডিকশন নির্ভুল হয়। আমরা কয়েকটা গ্রাফের মাধ্যমে বোঝার চেষ্টা করি আসলে গ্রেডিয়েন্ট ডিসেন্ট অ্যালগরিদমের কাজটা কী।
এইবার আমরা আরেকটা বিন্দু ধরি, যেটা কিনা লোকাল মিনিমাম এর বামে অবস্থান করে।
অর্থাৎ গ্রেডিয়েন্ট ডিসেন্ট সূত্রটি বলছে আমাদের কোন দিকে গেলে কস্ট ফাংশনটা মিনিমাইজ হবে। এটা হল যখন একটা প্যারামিটার। এইরকম শত শত প্যারামিটারের সময় ভিজুয়ালাইজ করাটা সুবিধাজনক নয় তবে সব ক্ষেত্রে কাজটা ঠিক এইভাবেই হয়ে থাকে।
এই পর্ব এই পর্যন্তই, পরবর্তী পর্বে আরেকদফা লিনিয়ার রিগ্রেশন, মাল্টি প্যারামিটারে গ্রেডিয়েন্ট ডিসেন্ট এবং ব্যাচ গ্রেডিয়েন্ট ডিসেন্ট সম্পর্কে জানতে পারব।
সচরাচর জিজ্ঞাস্য প্রশ্ন
লার্নিং রেট কী?
লার্নিং রেট বাড়ালে বা কমালে কী ইফেক্ট সৃষ্টি হতে পারে?
মনে করুন, আপনার চোখে পট্টি বেঁধে একটা উচুনিচু ভূমিতে ছেড়ে দেওয়া হল। এবং বলা হল, আপনার কাজ হবে সবচেয়ে নিচু জায়গাটা বের করা। এখন যদি আপনি বড় বড় স্টেপে হাঁটেন তাহলে মিনিমাম পয়েন্ট এড়িয়ে যেতে পারেন, আবার ছোট ছোট স্টেপে হাঁটলে নিচু জায়গা বের করতে অনেক সময় লাগবে। এই যে স্টেপ নিচ্ছেন সেটাকে আমরা লার্নিং রেটের অ্যানালজি বলতে পারি।
স্টেপের সাথে সাথে লার্নিং রেট বাড়ানো/কমানোর দরকার আছে কী?
এই প্রশ্নের উত্তর অনেক বিশাল, র্যান্ডম পয়েন্টে প্যারামিটার ইনিশিয়ালাইজেশনের মূল সুবিধা হচ্ছে গ্লোবাল মিনিমাম বের করা। একই গ্রাফের লোকাল মিনিমাম বা গ্লোবাল মিনিমাম থাকতে পারে। লোকাল মিনিমাম বলতে সেই পয়েন্ট কে বোঝানো হয় যেটা সামগ্রিক গ্রাফের মধ্যে তুলনামূলক নিম্নবিন্দু। আর গ্লোবাল মিনিমাম হল পুরো গ্রাফের এমন একটা পয়েন্ট সেটাই সর্বনিম্ন বিন্দু।
আবার আমরা চোখে পট্টির উদাহরণে ব্যাক করি। ধরুন আপনাকে হেলিকপ্টারে করে এই পয়েন্টে ছেড়ে দিয়ে মিনিমাম পয়েন্ট বের করতে বলা হল। আপনি সোজা যেতে থাকলেন এবং লোকাল মিনিমাম বের করলেন। এখন যদি আপনাকে বার বার ঐ পয়েন্টেই ছাড়ি এবং আপনি সোজাই যেতে থাকেন আপনি প্রত্যেকটা বার লোকাল মিনিমাম পয়েন্ট পেয়ে লাফালাফি শুরু করে দেবেন।
এবার আপনাকে র্যান্ডমলি হেলিকপ্টার থেকে এই বিন্দুতে ছাড়া হল এবং এইবার আপনি আসলেই গ্লোবাল পয়েন্টে যেতে পারবেন।
Last updated