মেশিন লার্নিং অ্যালগরিদম: সুপারভাইজড লার্নিং (Supervised Learning)
শেখানোর উপর ভিত্তি করে মেশিন লার্নিং অ্যালগরিদমগুলোকে সাধারণত তিনটি ভাগে ভাগ করা যায়। সেগুলো হল:
1. Supervised Learning
2. Unsupervised Learning
3. Reinforcement Learning
এই লেখাতে আমরা Supervised Learning এর সাথে পরিচিত হব। বাকি দুটির
সাথে অন্য লেখায় পরিচিত হব।
Supervised
Learning: সুপারভাইজড
লার্নিং মানে হচ্ছে কাউকে কোন কিছু করতে শিখিয়ে দেওয়া, দেখিয়ে দেওয়া। আমরা যেভাবে
ছোট বাচ্চাদের শিখিয়ে দিই কিংবা চিনিয়ে দিই এইটা বিড়াল, এইটা কুকুর ইত্যাদি।
বাচ্চারা যেভাবে বিড়াল কিংবা কুকুরের আকার আকৃতি দেখে দুইটার পার্থক্য নিরূপণ করে কোনটা
বিড়াল আর কোনটা কুকুর পরবর্তীতে তা চিনতে পারে। কম্পিউটারের ক্ষেত্রেও ঠিক তাই।
মেশিন লার্নিং এর ভাষায় এই ধরনের কাজকে সুপারভাইজড লার্নিং বলে।
আর সুপারভাইজড লার্নিং অ্যালগরিদম হল সেই সব
অ্যালগরিদম, যেগুলো ব্যবহার করে আমরা কম্পিউটারকে মানুষের মত করে চিন্তা করা
শেখানোর জন্য ট্রেনিং দেই।
শেখানোর উপর ভিত্তি করে
সুপারভাইজড লার্নিং অ্যালগরিদমকে আবার দুই ভাগে ভাগ করা যায়:
i. Regression Problem
ii. Classification Problem
Regression Problem: মনে করুন আমরা কোন বাচ্চাকে দুইয়ের ঘরের নামতা শিখাচ্ছি, ২x ১ = ২, ২x২ = ৪, ২x৩ = ৬……, ২x১০ = ২০ এই পর্যন্ত। এবার যদি তাকে বলা হয় ২x১২ = কত হয় বলত? বাচ্চাটি যদি সঠিক ভাবে বুঝে থাকে তাহলে বলবে, ২৪ হয়।
এখানে একটা বিষয়, আমরা কিন্তু শেখানোর সময় বলে দিইনি ২x১২ = ২৪ হয়। বরং বাচ্চাটি তার পুর্বেরে শেখা অংশের উপর ভিত্তি করে সংখ্যাগুলোর মাঝে একটা প্যটার্ন বের করে চিন্তা করে বলে দিল ২x১২ = ২৪ হয়।
i. Regression Problem
ii. Classification Problem
Regression Problem: মনে করুন আমরা কোন বাচ্চাকে দুইয়ের ঘরের নামতা শিখাচ্ছি, ২x ১ = ২, ২x২ = ৪, ২x৩ = ৬……, ২x১০ = ২০ এই পর্যন্ত। এবার যদি তাকে বলা হয় ২x১২ = কত হয় বলত? বাচ্চাটি যদি সঠিক ভাবে বুঝে থাকে তাহলে বলবে, ২৪ হয়।
এখানে একটা বিষয়, আমরা কিন্তু শেখানোর সময় বলে দিইনি ২x১২ = ২৪ হয়। বরং বাচ্চাটি তার পুর্বেরে শেখা অংশের উপর ভিত্তি করে সংখ্যাগুলোর মাঝে একটা প্যটার্ন বের করে চিন্তা করে বলে দিল ২x১২ = ২৪ হয়।
কম্পিউটারকেও ঠিক এইভাবে শেখানো হয়। বাচ্চাকে
যেভাবে প্রথমে আমরা বেশ কিছু ডেটা (২x২ = ৪, ২x ৪ = ৮ ইত্যাদি) দিয়ে ট্রেইনিং করিয়েছি, তারপর সঠিকভাবে শিখলো কিনা তা
নির্ণয় করার জন্য অন্য আরেকটি ডেটা দিয়ে টেস্ট করেছি। অনুরূপভাবে কম্পিউটারকেও
আমরা শেখানোর জন্য প্রথমে বেশ কিছু ডেটা দিয়ে ট্রেইনিং করাবো, এরপর অন্য ডেটা দিয়ে
(যা আমাদের ট্রেইনিং এ থাকবেনা) টেস্ট করাবো। কম্পিউটার ট্রেইনিং ডেটার উপর
বিভিন্ন ক্যালকুলেশন চালিয়ে তাদের মাঝে একটা প্যাটার্ন বের করে টেস্ট ডেটার উপর
সেটা প্রয়োগ করে যদি বিশ্বাসযোগ্য ফলাফল দিতে পারে। তবে বুঝবো কম্পিউটার শিখেছে।
আর শেখানোর এই ধরনের পদ্ধতি হল Regression
Problem।
Classification Problem: আমরা কোন মানুষকে হাতি চিনাবো, যে কিনা আগে কখনো হাতি দেখেনি। তাকে
চিড়িয়াখানায় নিয়ে বললাম- ঐ যে বড় যে প্রাণীটি দেখা যায়, ঐটা হল হাতি। এবার সে
মানুষটি হাতি দেখে মনে মনে হাতি এবং অন্যান্য প্রাণীদের মধ্যে পার্থক্য বের করে
ফেলবে। হাতি অনেক লম্বা, হাতির একটা বড় শুঁড় আছে, হাতির পা গুলো খাম্বার মত
ইত্যাদি। তার ব্রেনের মধ্যে গেঁথে গেল হাতির অন্যান্য প্রাণী থেকে কি কি বৈশিষ্ট্য
আলাদা আছে। এরপর সে যখন অনেকগুলো ভিন্ন প্রাণীর মধ্যে হাতি দেখবে তখন কিন্তু আপনা আপনি
সে হাতি চিনতে পারবে। তাকে পুনরায় চিনিয়ে দেওয়ার প্রয়োজন নেই। এটা হল হিউমেন
ব্রেনের কোন নতুন বস্তু চিনার পদ্ধতি।
কম্পিউটারের ক্ষেত্রেও ঠিক
এইরকম। কম্পিউটারকে যখন হাতি চিনাবো তখন তাকে বিভিন্ন ডেটা দিব, যেমন- হাতির
উচ্চতা, শিং আছে কিনা, হাতির শুঁড় আছে কিনা ইত্যাদি। কম্পিউটার তার ডেটাবেসে থেকে
অন্যান্য প্রানীদের ডেটা নিয়ে একটা প্যাটার্ন তৈরি করে অন্যান্য প্রানীদের থেকে
হাতিকে আলাদা করে ফেলবে। এরপর পরবর্তীতে তাকে যখন কোন প্রানীর ডেটা দেওয়া হবে, তখন
সে বলবে সেটা হাতি না অন্য কোন প্রাণী। মেশিনকে এইরকম ভাবে চিনানোর প্রক্রিয়া হল Classification Problem।
লেখাটি যদি শুরু থেকে শেষ পর্যন্ত পড়ে থাকেন তাহলে
নিশ্চয় Liner Regression এবং Classification এর মধ্যে পার্থক্য বুঝতে পারছেন।
Very good and clear article brother. I need more of Unsupervised learning algorithms. Thank you.
ReplyDelete