Coursera-তে আমি মেশিন লার্নিং শেখা শুরু করেছি। প্রতিদিন যা শিখছি তার অভিজ্ঞতাগুলো ব্লগে লিখে রাখার পরিকল্পনা করেছি। এটা কোনো মেশিন লার্নিং টিওটোরিয়াল নয়, এটাকে বড়জোর ক্লাস নোট বলা যায়।
“A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.” – Tom Mitchell
সংজ্ঞাটা কেমন যেন বর্ণমালাময়। আমি যেটা বুঝেছি সেটা সহজ ভাষায় লিখি।
কম্পিউটার (কিংবা মেশিন) এর বুদ্ধিমাত্রা যেকোন সাধারণ বায়োলজিকাল প্রাণী’র তুলনায় অনেক কম, মানুষের ধারে কাছে’তো কখনোই না। এক কথায় বলতে গেলে কম্পিউটার-এর কোন বুদ্ধিই নেই।
তবে হ্যাঁ, কম্পিউটার (কিংবা মেশিন) এর যে ধৈর্য্য আছে সেটা আমাদের রক্ত মাংসের প্রাণীদের নেই। কম্পিঊটার একই ধরনের কাজ একটানা দশ হাজার বার করতে পারবে, যেখানে কিনা আমাদের রক্ত মাংসের প্রাণীদের ক্ষেত্রে একটানা একটা কাজ পঞ্চাশ বার করতে গেলেই মাথা গরম হয়ে যাবে। আমাদের ধৈর্য্যের একটা সীমা আছে, যেটা কম্পিউটারের নেই। কম্পিউটারের ধৈর্য্যের মাত্রা অসীম। ধৈর্য্যের মাত্রা অসীম হওয়াতে সে একটা কাজ অনেকবার করতে পারে এবং অনেক অভিজ্ঞতা অর্জন করতে পারে। পূর্বের অর্জিত অভিজ্ঞতা থেকে সে পরবর্তীতে এই কাজটা নিখুঁতভাবে করতে পারে। প্রথমবার কাজটা করতে গিয়ে যে ভুলটা সে করেছে, দ্বিতীয়বার সে সেই ভুলটা করছে না। এভাবে সে ভুল থেকে শিখে নিজেকে শাণিত করতে পারছে।
এই মুহূর্তে মেশিন লার্নিং বলতে আমি এটাই বুঝতে পারছি।
মোটা দাগে মেশিন লার্নিং-এর দুইটা ভাগ আছে।
সুপারভাইজড লার্নিং
আনসুপারভাইজড লার্নিং
সুপারভাইজড লার্নিং – পূর্বের কতগুলো তথ্য ঘাটাঘাটি করে সে একটা ফলাফল দেখায়। যেমনঃ রাজশাহীর একটা আম বাগানের গত ৫০ বছরের রেকর্ড ঘেটে সে আমাদের জানাতে পারবে, এই বছর আমের ফলন কেমন হবে। কিংবা গত ৫০ বছরের আবহাওয়ার রেকর্ড ঘেটে সে জানাবে, এই বছর আদৌ আম ধরবে কি-না।
সুপারভাইজড লার্নিং-এর দুইটা ভাগ আছে। regression এবং classification, আমাদের উপরের প্রথম উদাহরণটা ছিলো রেগরেশনের জন্য, এবং দ্বিতীয়টা ক্লাসিফিকেশনের জন্য।
আনসুপারভাইজড লার্নিং – সে পূর্বের তথ্য থেকে অর্জিত অভিজ্ঞতা দিয়ে, সবকিছুকে গ্রুপ আকারে ভাগ করে ফেলে। যেমনঃ সে অনেকগুলো আমের মধ্যে থেকে বেছে বেছে সবগুলা আমকে বিভিন্ন গ্রুপ আকারে ভাগ করে ফেলবে। কিছু আমকে ফজলি গ্রুপে রাখবে, কিছু আমকে রাখবে ল্যাংড়া গ্রুপে, এভাবে সে বিভিন্ন গ্রুপে গ্রুপে ভাগ করে ফেলবে। যাতে আমরা সহজেই আমাদের কাঙ্ক্ষিত ধরনের আম খুঁজে পাই।
Coursera-তে আনসুপারভাইজডের একটা চমৎকার উদাহরণ দিয়েছে। সেখানে ককটেল পার্টির একটা সাউন্ড ট্র্যাক শোনানো হয়েছে, যে সাউন্ড ট্র্যাকের মধ্যে দুইজন মানুষের কন্ঠস্বর আছে এবং ডিজে সং আছে। আনসুপারভাইজড লার্নিং-এর মাধ্যমে ঐ একটা সাউন্ড ট্র্যাকের মধ্য থেকে এই তিনটা ভিন্ন ভিন্ন সাউন্ড ভাগ করে ফেলা গেছে। ব্যাপারটা বেশ মজার।