কিভাবে শিখবো?

For the things we have to learn before we can do them, we learn by doing them.

― Aristotle

শেখার​ সহজ রাস্তা কী?

হাতে কলমে মেশিন লার্নিং শেখার জন্য আমার প্রিয় পদ্ধতি হচ্ছে একটা সত্যিকারের সমস্যা নিয়ে কাজ করা। সেটা যেমন হতে পারে একটা প্রজেক্ট অথবা নিজের কোম্পানীর বর্তমান একটা সমস্যা। সনাতন শিক্ষার পাশাপাশি পৃথিবীব্যাপী সামরিক বাহিনীগুলোতে কয়েক ধরনের শেখার চল প্রচলন আছে। আসলে, যেখানে শিক্ষার আউটকাম নির্ভর করে জীবন মরণের ওপর - সেখানে ফাঁকিবাজির স্কোপ থাকে না। সেই শিক্ষাতে ফাঁকিবাজির আউটকাম চলে আসে নিজের জীবনের ওপর।

আর সেজন্যই “অন দ্যা জব ট্রেনিং” আসল প্রশিক্ষণের একটা বড় অংশ জুড়ে থাকে। ট্যাংকের পুরো প্রশিক্ষণ যেভাবে এসি রূমে গ্রহণযোগ্যতা পায় না - সেরকম “অন দ্যা জব ট্রেনিং” এর মানে হচ্ছে গিয়ে কাজের ভেতর ঢুকে সমস্যা তৈরি করতে করতে কাজটা শেখা। সাবমেরিনের আসল শিক্ষা শুরু হয় আপনি যখন প্রথমবারের মতো তিন মাসের রসদ নিয়ে ডুব দেন বঙ্গোপসাগরে। জীবন মরণ ইস্যু, শিখতেই হবে।

শুরু থেকেই আপনি আমাকে পাচ্ছেন টিম লিডারের দায়িত্বে। আসল ব্যাপার হচ্ছে - একজন টিম লিডারের দায়িত্বে এই শেখার একটা বড় অংশ চলে। কাজ করতে গিয়ে নিজে নিজেই সমস্যায় পড়া, পাশাপাশি টিম লিডারের তত্ত্বাবধানে সেই সমস্যা থেকে কিভাবে উত্তরণ ঘটানো সম্ভব - সেটা নিজে নিজে হাতে কলমে জানা। সমস্যা হলে কি বিপদ হতে পারে সেটাও জেনে যান প্রশিক্ষনার্থী।

আমি প্রচুর মেসেজ পাই মেশিন লার্নিং বিষয় নিয়ে। "বই কিনেছি, এখন কী করবো?" অথবা, কয়েকটা বইয়ের নাম দেবার পর "ভালো কিছু বইয়ের নাম দিন?" অথবা, "মেশিন লার্নিং না 'এ আই' বা ডীপ লার্নিং শিখবো"। আমি যখন পাল্টা প্রশ্ন করি, তখন কিছু কিছু উত্তর শুনে মনে হয় আমরা যথেষ্ট সময় দিচ্ছি না "যেটা আমরা শিখতে চাই"। শুধুমাত্র চাকরির জন্য এই প্রযুক্তি শিখতে চাইলে একটু ভুল হতে পারে। বিশ্বাস করুন আপনার প্যাশনকে। সেই নিয়ে যাবে আপনার গন্তব্যে। আমার অনুরোধ, বই কেনার দরকার নেই, আগে নিজে ঠিক করে নেই কী করতে চাই এই নতুন জ্ঞান দিয়ে। তবে, এটা ঠিক যে - শুরু করতে হবে কিছু একটা দিয়ে। যেহেতু, আমি "রিড ফার্স্ট, বাই লেটার" ব্যাপারটায় বিশ্বাসী, বই কেনার আগে সিদ্ধান্ত নিন এই বইটা আপনার প্রয়োজন কি না? পুরো বইটা দেয়া আছে ইন্টারনেটে। পাশাপাশি ভাবুন, নিজের রোডম্যাপ নিয়ে। কী করতে চান সামনের তিন বছর? আশা করছি, বইগুলো পড়লে তৈরি করতে পারবেন নিজের মেশিন লার্নিং রোডম্যাপ।

আমার ব্যক্তিগত অভিজ্ঞতায় দেখেছি এই ধরনের শেখাটা অন্যান্য অনেক শেখার তুলনায় বেশ দীর্ঘস্থায়ী। কাজের একটা ‘রিফ্লেক্স’ তৈরি করে মানুষের মনে। কারন, সে ওই সমস্যাটায় পড়েছিল আসলেই। অল্প সময়ের মধ্যে অন্য আরেকজন তাকে সেই সমস্যার সমাধান দেবার আগে নিজের মাথা আসলে খাটাতে হয়েছিল কিভাবে ওই সমস্যা সমাধান করা যায়। ওই মাথা খাটানোটা তার জন্য ভবিষ্যতে অন্যান্য সমস্যার থেকে বের হওয়ার জন্য একটা পার্সপেক্টিভ তৈরি করে দেয়, যেটা কখনই আরেকজনকে মুখে বলে বোঝানো সম্ভব হয় না। ব্যাপারটা কিছুটা গাড়ি চালানোর মতো। শুরুতে মাথা খাঁটাতে হয় সিদ্ধান্ত নিতে। কখন ব্রেক চাপবেন, কখন এক্সেলেটর বাড়াবেন সবই আসে মাথা থেকে। এজন্য শুরুতে মাথা ঘেঁমে একাকার। এরপর আস্তে আস্তে 'রিফ্লেক্স' পুরো ব্যাপারটাকে কন্ট্রোলে নিয়ে নেয়। তখন মনে হয়, চোখ সরাসরি আমাদের হাত পা চালাচ্ছে। সব মাথা হয়ে যাচ্ছে ঠিকই, তখন মাথায় চাপ পড়ে কম। সেটা তৈরি হয়ে গেছে একটা 'এস্টাব্লিশড' রুটিনে।

আগের বইতে বলেছি “আর প্রোগ্রামিং এনভায়রনমেন্ট” দিয়ে ডাটা সাইন্স মানে মেশিন লার্নিং শেখা অনেকটাই সহজ। তবে, যারা কম্পিউটার প্রযুক্তিতে পড়েছেন এবং কিছুটা পাইথন নিয়ে কাজ করেছেন, অথবা করেননি, কিন্তু প্রোগ্রামিং কনসেপ্ট জানেন - তাদের মধ্যে অনেকেই নতুন একটা এনভায়রনমেন্ট শিখতে চান না। আমি বলব, শিখতে না চাওয়াটা একটা বড় সমস্যা। কারণ মেশিন লার্নিংএ আরও অনেকগুলো টুল ব্যবহার করব যেটা তাকে শিখতে হবে এই মেশিন লার্নিং ট্র্যাক নিয়ে এগোনোর সময়।

আগেই যেহেতু বলেছি প্রোডাকশন এনভায়রনমেন্টএ পাইথন ব্যবহার করবো, তাই সবার অনুরোধে আমি শুরু করেছি পাইথন দিয়ে আর একটা ট্র্যাক। তবে, শুরুতে মেশিন লার্নিং শেখার জন্য আমার “হাতেকলমে মেশিন লার্নিং” বইটা দেখে আসতে বলবো। এতে একটা ভালো ফাউন্ডেশন তৈরি হবে আপনাদের।