মেশিন লার্নিং জিনিসটা কী?

Being an entrepreneur is like eating glass and staring into the abyss of death.

-- Elon Musk

আচ্ছা, মেশিন লার্নিং কি?

উত্তর দেবার আগে দুটো জিনিস নিয়ে আলাপ করি।

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

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

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

এখন প্রশ্ন হচ্ছে, মানে আপনাকে বের করতে হবে - কোন কোন ব্যবহারকারী সামনের মাসে আপনার কোম্পানি ছেড়ে চলে যাবেন?

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

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

অর্থাৎ ‘মেশিন লার্নিং’ হচ্ছে পুরনো ডাটা থেকে উত্তর পাবার একটা পদ্ধতি। আমরা যেমন শিখি অভিজ্ঞতা থেকে। মেশিনের জন্য অভিজ্ঞতা হচ্ছে পুরানো ডাটা। ডাটা থেকে জ্ঞান আহরণের এই পদ্ধতিটাই মেশিন লার্নিং।

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

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

"ডাটা সাইন্স" হচ্ছে শুধুমাত্র *ডাটা* দিয়ে আপনার কোম্পানির সব সমস্যা মেটানোর একটা বুদ্ধিমান পন্থা। ডাটা দিয়ে আপনার কোম্পানির যতো বেশি ইমপ্যাক্ট করা যায় সেটাই "ডাটা সাইন্স"এর কাজ হবে। ইমপ্যাক্ট হতে পারে বিভিন্ন ধরণের। ভবিষ্যৎ প্রোডাক্ট তৈরির 'ইনসাইট', বর্তমান প্রোডাক্টের নতুন পজিশনিং থেকে শুরু করে নতুন প্রোডাক্ট রেকমেন্ডেশন, কোম্পানি কোথায় যাবে - কিভাবে যাবে - কিভাবে নতুন সমস্যাকে ম্যানেজ করবে - সেসব দেখাবে ডাটা সাইন্স।

সেটার জন্য টুলস? আসল ডাটা সায়েন্টিস্টরা এই ব্যাপারটাও কেয়ার করে না। যখন যেই টুল দরকার সেটা শিখে নেয় তারা। আমার বয়স প্রায় পঞ্চাশ। আমি তো নিজেই শিখেছি দরকার মতো টুল। কাজের জন্য।

আর কোন টুল না হলে মেশিন লার্নিং ব্যবহার করা যাবে না সেটা জানাবো আমি। সেজন্য আমি এখানে।