কনটেন্টে যান

মেশিন লার্নিং কেন?

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

শুন্য থেকে পাইথন মেশিন লার্নিং বই থেকে

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

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

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

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

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

আসলে মেশিন লার্নিং ব্যাপারটা হচ্ছে একটা ধারণা, যার মাধ্যমে কোন প্রশ্নের উত্তর ডাটা থেকে দেয়া যায়।

এখন সবকিছুতেই 'এআই' বলার ধারণা

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

কিভাবে একটা কম্পিউটার সিস্টেম তৈরি করবো যে শিখবে?

উনি বলেছেন - মেশিন লার্নিং এর ব্যাপারে জানতে হলে প্রথমে একটা প্রশ্ন করতে হবে।

মিচেলের প্রশ্ন

আমরা কিভাবে একটা কম্পিউটার সিস্টেম তৈরি করতে পারি যা তার অভিজ্ঞতাকে আস্তে আস্তে কাজে লাগিয়ে আরও উন্নতি করতে পারবে? এই অভিজ্ঞতার জন্য যন্ত্রের শেখার ব্যাপারে কি কি জিনিস কাজ করছে?

এই প্রশ্নের উত্তরে টম মিচেল বলছেন - ‘মেশিন লার্নিং হচ্ছে কম্পিউটার অ্যালগরিদমের সেই বিদ্যা যেটা কম্পিউটার প্রোগ্রামকে স্বয়ংক্রিয়ভাবে উন্নতি করবে তার অভিজ্ঞতা দিয়ে।’

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

লেবেলিং মানে এই জিনিসের এই নাম

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