মেশিন-লার্নিং কী, আর কেন এটা গুরুত্ত্বপূর্ণ?

মেশিন লার্নিং কি আর কেন এটা গুরুত্বপূর্ণ?

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

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

১।

2, 4, 6, 8 ….

“8” এর পরে কি আসবে?

২।

2 – 4

3 – 9

4 – 16

5 – ?

প্রশ্নবোধক চিহ্নিত স্থানে কি হবে?

১নং এর উত্তর ১০, আর ২নং এর উত্তর ২৫। আপনি কি করে বুঝতে পারলেন? প্যাটার্ন দেখে তাই না? একটা কম্পিউটারও পূর্ববর্তী ঘটনার প্যাটার্ন দেখে বলে দিতে পারে পরে কী হবে। একটা কম্পিউটারও পূর্ববর্তী ঘটনার প্যাটার্ন দেখে বলে দিতে পারে পরে কি হবে। মেশিন লার্নিং, আর্টিফিশিয়াল ইন্টেলিজেন্স বা কৃত্রিম-বুদ্ধিমত্তার একটা শাখা।

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

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

একটা মানুষের মত আচরণ করতে হলে কম্পিউটারের একটা মানুষের মত ব্রেইন থাকা চাই। বায়োলজিক্যাল ব্রেইনের গাঠনিক একক হলো নিউরন। নিচে একটি নিউরন এর চিত্র দেখানো হল:

মস্তিষ্কের একটি নিউরণের চিত্র।

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

কম্পিউটার-সায়েন্টিস্টরা এই বায়োলজিক্যাল-নিউরনের দ্বারা অনুপ্রাণিত হয়ে তৈরি করলেন আর্টিফিশিয়াল নিউরাল নেটওয়ার্ক (ANN) যা স্নায়ুর মতো সুনির্দিষ্ট কাজ কারতে পারে। যেমন: Pattern Recognition, Face Recognition ইত্যাদি। তবে একটি আর্টিফিশিয়াল নিউরাল নেটওয়ার্ক হলো মূলত একটা গাণিতিক ফাংশন। নিচের চিত্র দেখুন।

একটি নিউরাল নেটওয়ার্ক মূলত একটি গাণিতিক ফাংশন।

চিত্রের X1, X2, X3, …, Xn এগুলো এক একটা স্বতন্ত্র ফাংশন ঠিক নিউরণের মতো। প্রত্যেকের তথ্য প্রক্রিয়াকরণ শেষে প্রাপ্ত ফলাফল একসাথে পরিসংখ্যানের সাহায্যে উপস্থাপন করা হয় স্নায়ুর মতো। যত বেশি ডাটা প্রক্রিয়াকরণ করা হবে তত সূক্ষ্ম ফলাফল পাওয়া যাবে। মেশিন লার্নিং এ নিউরাল নেটওয়ার্কই ব্যবহার করা হয়।

এখন মেশিন-লার্নিং তিন ধরণের:

           ১। সুপারভাইসড লার্নিং

           ২। আন-সুপার্ভাইসড লার্নিং

           ৩। রিইনফোর্সমেন্ট লার্নিং

সুপারভাইসড লার্নিং

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

সুপার্ভাইসড মেশিন লার্নিং ব্যবহার করে স্প্যাম ই-মেইল ফিলটার করা হয়।

সুপারভাইসড লার্নিং এর কিছু ব্যবহারিক প্রয়োগের উদাহরণ দেওয়া যেতে পারে:

           ১। স্প্যাম ফিল্টারিং

           ২। ভয়েস রিকগনিশন

           ৩। অপটিক্যাল ক্যারেকটার রিকগনিশন

           ৪। অবজেকট ডিটেকশন ( কম্পিউটার ভিশন) ইত্যাদি আরও অনেক।

আন-সুপার্ভাইসড লার্নিং

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

বিচ্ছিন্ন ডাটা থেকে আনসুপার্ভাইজড লার্নিং এলগোরিদম বাছাই করে স্পেশাল ডাটা।

আরও কিছু উদাহরণ হলোঃ

           ১। নেটফ্লিক্সের মুভি রিকমেন্ডেশান সিস্টেম

           ২। এমাজোনের প্রোডাক্ট রিকমেন্ডাশন সিস্টেম ইত্যাদি।

রিইনফোর্সমেন্ট লার্নিং

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

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

           ১। অটো ড্রাইভার প্রশিক্ষণ

           ২। গেইম খেলা

           ৩। রবোটিক্স ইত্যাদি।

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

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

Comments

M Nazrul Islam

I love machines, books. I write about Computers and Computing.

আপনার আরো পছন্দ হতে পারে...

মন্তব্য বা প্রতিক্রিয়া জানান

2 মন্তব্য on "মেশিন-লার্নিং কী, আর কেন এটা গুরুত্ত্বপূর্ণ?"

জানান আমাকে যখন আসবে -
avatar
সাজান:   সবচেয়ে নতুন | সবচেয়ে পুরাতন | সর্বোচ্চ ভোটপ্রাপ্ত
S. A. Khan
সদস্য

// এ নিয়ে ইন্টারনেটে যা তথ্য পাওয়া যায় তা, হয় খুব বেশি সরল অথবা খুব বেশি জটিল। আমি সরলতা আর জটিলতার মাঝে একটা মেলবন্ধন ঘটানোর চেষ্টা করেছি এই লেখায়। //

আমার মনে হয় আপনার প্রচেষ্টা সফল। 🙂
নিত্যদিনের পরিচিত উদাহরণ গুলো দিয়ে জটিল বিষয়গুলোকেও সহজে উপস্থাপন করেছেন।

wpDiscuz