মেশিন লার্নিং (Machine Learning) কী?
ধরা যাক, আপনি একটি ছোট বাচ্চাকে বিড়াল এবং কুকুরের মধ্যে পার্থক্য করা শেখাচ্ছেন। আপনি নিশ্চয়ই তাকে সামনে বসিয়ে বলবেন না যে, "যদি এর কানগুলো ছুঁচালো হয়, নাকটা ছোট হয় এবং লেজটা ওপরের দিকে বাঁকানো থাকে, তবে সেটি বিড়াল।" কারণ এটি বলাটা হবে একেবারেই পাগলামি। এর বদলে আপনি তাকে কেবল উদাহরণ বা ছবি দেখাবেন। বলবেন, "এটি একটি বিড়াল, ওটি একটি কুকুর, আবার এটিও একটি বিড়াল।" আর যথেষ্ট পরিমাণ উদাহরণ দেখার পর, বাচ্চাটি একা একাই বুঝতে পারবে — এমনকী সে আগে কখনো দেখেনি এমন কোনো বিড়াল বা কুকুর দেখলেও সে ঠিকই চিনে ফেলতে পারবে।
মূলত মেশিন লার্নিং (machine learning)-এর পেছনের আইডিয়াটিও ঠিক এরকমই। হাজার হাজার if-else বা শর্তের নিয়ম লিখে দেওয়ার বদলে, আপনি কেবল কম্পিউটারকে ডেটা বা তথ্য দেবেন এবং তাকে একা একা এর পেছনের রহস্য বা প্যাটার্নটি (pattern) খুঁজে নিতে দেবেন।
পুরোনো বা গতানুগতিক উপায়: কেবল রুলস আর রুলস (rules)
ট্রেডিশনাল বা গতানুগতিক প্রোগ্রামিং মূলত একটি রেসিপি বইয়ের মতো কাজ করে। এখানে একজন প্রোগ্রামার নিজের হাতে প্রতিটি নিয়ম লিখে দেন:
- যদি ইমেইলে "free money" লেখা থাকে → তবে স্প্যাম (spam)
- যদি ইমেইলটি আপনার কোনো পরিচিত ব্যক্তি বা কন্টাক্ট (contact) থেকে আসে → তবে স্প্যাম নয়
- যদি ইমেইলটিতে ৫টির বেশি বিস্ময়সূচক (!) চিহ্ন থাকে → তবে স্প্যাম
এগুলো খুব ভালোভাবেই কাজ করে... কিন্তু স্প্যামাররা যতক্ষণ না পর্যন্ত আরও চতুর হচ্ছে। যখন স্প্যামাররা "free money"-এর বদলে "fr33 m0ney" লেখা শুরু করবে আপনার সমস্ত নিয়ম বা রুলস ভেঙে পড়বে। এরপর আপনি একটি নিয়ম বদলালে, তারা আবার নতুন কোনো উপায় খুঁজে বের করবে। আর এভাবে এটি চলতেই থাকবে যা কখনোই শেষ হবে না।
মেশিন লার্নিং (ML) এর উপায়: উদাহরণ থেকে শেখা
মেশিন লার্নিংয়ের ক্ষেত্রে, আপনাকে সম্পূর্ণ ভিন্ন একটি এপ্রোচ বা কৌশল নিতে হয়। আপনি হাজার হাজার এমন সব ইমেইল জোগাড় করেন যেগুলোকে মানুষ আগে থেকেই "স্প্যাম (spam)" বা "নট স্প্যাম (not spam)" হিসেবে লেবেল করে দিয়েছে। এরপর আপনি সেগুলোকে কম্পিউটারের কাছে দিয়ে বলেন: "এই নাও উদাহরণ, এখন এর ভেতরের প্যাটার্নগুলো তুমি নিজে নিজেই খুঁজে নাও।"
এরপর কম্পিউটার সমস্ত ডেটা বা তথ্য ঘাঁটতে শুরু করে এবং এমন সব সূক্ষ্ম প্যাটার্ন খুঁজে বের করে যার কথা আপনি হয়তো কোনো দিন চিন্তাও করেননি — যেমন: নির্দিষ্ট কিছু শব্দের সমন্বয় বা কম্বিনেশন, সময়, প্রেরকের বা সেন্ডারের (sender) দেশ এবং আরও এমন অসংখ্য ছোট ছোট ইঙ্গিত। আর স্প্যামাররা যখন এদের কৌশল বদলাবে? তখন আপনি শুধু আপনার মডেলটিকে নতুন কিছু উদাহরণ বা ডেটা দেবেন আর সে আবার নতুন করে সবকিছু শিখে নেবে।
আপনার প্রথম এমএল মডেল (Your First ML Model)
কম্পিউটার আসলে কীভাবে "শিখতে" পারে?
এটিকে একটি গিটার টিউন (tune) বা সুর মেলানোর মতো মনে করতে পারেন। একেবারে শুরুতে এর তারগুলো ঠিকমতো বাঁধা থাকে না বা বেসুরো থাকে — অর্থাৎ মডেলের প্রেডিকশনগুলোও (predictions) তখন অনেক ভুল বা জঘন্য হয়। কিন্তু প্রতিটি উদাহরণ দেখার পর, মডেলটি তার ভেতরের সেটিংসগুলোকে সামান্য একটু অ্যাডজাস্ট (adjust) বা পরিবর্তন করে যাতে এর ভুলগুলো কমে আসে। এভাবে প্রতিটি উদাহরণের পর একবার করে অ্যাডজাস্ট করতে করতে একসময় এর প্রেডিকশনগুলো অনেক নিখুঁত হয়ে ওঠে।
এই পুরো প্রক্রিয়াটিকেই ট্রেইনিং (training) বলা হয়। আর ভেতরের যে সেটিংসগুলোকে অ্যাডজাস্ট করা হয় সেগুলোকে প্যারামিটার্স (parameters) বা ওয়েটস (weights) বলা হয়। এবং প্রেডিকশনগুলো কতটা ভুল তা যে হিসেবে মাপা হয় তাকে লস (loss) বলা হয়।
ট্রেইনিংয়ের একমাত্র এবং সবচেয়ে বড় লক্ষ্য হলো: এই লস (loss) যতটা সম্ভব কমিয়ে আনা।
বড় দৃষ্টিকোণ থেকে এর কাজ বা পুরো বিষয় (The big picture)
- ডেটা সংগ্রহ করা (Collect data) — সঠিক উত্তর বা ফলাফল জানা আছে এমন সব উদাহরণ জোগাড় করা
- মডেলকে ট্রেন বা প্রশিক্ষণ দেওয়া (Train a model) — অ্যালগরিদমটিকে একা একাই এর ভেতরের প্যাটার্ন বা নিয়মগুলো খুঁজে নিতে সাহায্য করা
- ইভ্যালুয়েট বা মূল্যায়ন করা (Evaluate) — মডেলটি আগে কখনো দেখেনি এমন সব ডেটা ব্যবহার করে সেটিকে পরীক্ষা করে দেখা
- প্রেডিক্ট বা অনুমান করা (Predict) — এরপর সত্যিকারের যেকোনো কাজে বা নতুন ডেটার ওপর ট্রেইন করা মডেলটি ব্যবহার করে তার ফলাফল বের করা
Key Metrics
ছোট কুইজ
পড়া চালিয়ে যান