Chapter 17 of 28
Judging a vision model beyond raw accuracy
একটি হাসপাতাল স্ক্যান রিপোর্টের ওপর টিউমার সনাক্ত করার জন্য একটি মডেল ডেপ্লয় করল। মডেলটি রিপোর্টে "৯৮% অ্যাকুরেসি (accuracy)" দেখাল এবং তা দেখে সবাই খুব খুশি — কিন্তু একটু পরে কেউ একজন লক্ষ্য করল ডেটাসেটের মাত্র ২% স্ক্যানে বাস্তবে টিউমার ছিল। কোনো মডেল যদি কোনো ছবির দিকে না তাকিয়ে অন্ধের মতো প্রতিবার "টিউমার নেই" বলে দেয়, তবে সেটির অ্যাকুরেসিও হবে ৯৮%, যদিও ক্লিনিক্যালি বা বাস্তবে সেটি একটিও প্রকৃত টিউমার সনাক্ত করতে পারেনি। অ্যাকুরেসি — যে পরিমাপটির দিকে মানুষ সবার আগে নজর দেয় — সেটি এখানে পুরো কমিটির সাথে চরম মিথ্যাচার করেছে।
মূল্যায়ন বা ইভালুয়েশনের সবচেয়ে বড় শিক্ষা হলো: একটি একক গাণিতিক সংখ্যা তাত্ত্বিকভাবে সম্পূর্ণ সঠিক হয়েও বাস্তবে চরম অকেজো প্রমাণিত হতে পারে। প্রজেক্টের কাজের ধরণের ওপর ভিত্তি করে সঠিক মেট্রিক বা পরিমাপক বেছে নেওয়া মডেল ট্রেইন করার মতোই অত্যন্ত গুরুত্বপূর্ণ।
এই অধ্যায়ের প্রতিটি ক্লাসিফিকেশন মেট্রিক একই চারটি raw সংখ্যা থেকে তৈরি হয়, যেগুলোকে একটি কনফিউশন ম্যাট্রিক্স আকারে সাজানো হয় — একটি সাধারণ ২×২ ছক যা দেখায় মডেল কোথায় সঠিক ছিল, কোথায় ভুল ছিল, এবং কোন দিকে ভুল করেছে।
| Predicted Positive | Predicted Negative | |
|---|---|---|
| Actual Positive | True Positive (TP) | False Negative (FN) |
| Actual Negative | False Positive (FP) | True Negative (TN) |
এরপর যা কিছু হিসাব করা হয় — accuracy, precision, recall, F1, ROC-AUC — সবই এই চারটি সংখ্যা থেকে বের করা ভিন্ন ভিন্ন অনুপাত মাত্র, যাদের প্রতিটি মডেলের ভুল করার ধরন সম্পর্কে সামান্য ভিন্ন একটি প্রশ্নের উত্তর দেয়।
যেখানে: লব বা numerator হলো মোট সঠিক সিদ্ধান্ত, এবং হর বা denominator হলো মডেলের নেওয়া সর্বমোট সিদ্ধান্ত।
সহজ কথা: "সামগ্রিকভাবে আমি কত শতাংশ সঠিক সিদ্ধান্ত নিয়েছি?" এটি বোঝা এবং ব্যাখ্যা করা খুব সহজ ঠিকই, কিন্তু এটি প্রতিটা ক্লাসকে সমান গুরুত্ব ও সমান ফ্রিকোয়েন্সির মনে করে — যা imbalanced বা অসম ডেটাসেটের ক্ষেত্রে এটি অত্যন্ত বিপজ্জনক ও বিভ্রান্তিকর রূপ নেয়, ঠিক যেমন টিউমার সনাক্তকরণের বাস্তব উদাহরণটিতে ঘটেছে।
যেখানে: হর বা denominator হলো মডেলের পজিটিভ প্রেডিক্ট করা মোট সংখ্যা, তা সঠিক হোক আর ভুল হোক।
সহজ কথা: "আমি যেগুলোকে পজিটিভ হিসেবে চিহ্নিত করেছি, তার মধ্যে বাস্তবে কত শতাংশ সঠিক ছিল?" Precision তখন বেশি গুরুত্বপূর্ণ হয়ে ওঠে যখন False Positive বা ভুল অ্যালার্মের খরচ অনেক বেশি বা বিরক্তিকর হয় — যেমন একটি ইমেইল স্প্যাম ফিল্টারের precision কম হলে তা আসল ইমেইলগুলোকে স্প্যাম ফোল্ডারে পাঠিয়ে দেবে, যা ব্যবহারকারীকে চরম বিরক্ত করবে যদিও সেটি হয়তো আসল স্প্যাম ইমেইলগুলো সফলভাবে আটকেছে।
যেখানে: হর বা denominator হলো বাস্তবে পজিটিভ ছিল এমন মোট সংখ্যা, মডেল তা সনাক্ত করতে পারুক আর না পারুক।
সহজ কথা: "বাস্তবে পজিটিভ ছিল এমন নমুনার মধ্যে আমি কত শতাংশ সনাক্ত করতে পেরেছি?" Recall তখন জীবন-মরণ প্রশ্ন হয়ে ওঠে যখন False Negative বা পজিটিভ কেস মিস করা মারাত্মক বিপদ ডেকে আনতে পারে — যেমন মেডিকেল ইমেজিংয়ে একটি আসল টিউমার মিস করা (False Negative) ডক্টরের ডাবল-চেক করার মিথ্যা অ্যালার্মের (False Positive) চেয়ে বহুগুণ মারাত্মক।
সহজ কথা: Precision এবং recall সাধারণত একে অপরের বিপরীত বা ব্যালেন্স করে চলে — আপনি পজিটিভ চিহ্নিত করার সময় বেশি সাবধান হলে precision বাড়লেও recall কমে যায়, আর খুব বেশি সাহসী হয়ে সব পজিটিভ বললে recall বাড়লেও precision কমে যায়। F1-score হলো এই দুই মেট্রিকের হারমোনিক গড় (harmonic mean), যা precision বা recall এর যেকোনো একটি অতিরিক্ত কম হলে সরল গড়ের তুলনায় মডেলকে কঠোরভাবে কম স্কোর দিয়ে পেনাল্টি দেয়। অসম ডেটাসেটে মডেলের সামগ্রিক শক্তির পরিমাপ করার জন্য এটি চমৎকার একটি একক সংখ্যা।
ROC কার্ভ মূলত True Positive Rate (যা আসলে recall) বনাম False Positive Rate-এর গ্রাফ চিত্রিত করে যখন ক্লাসিফিকেশনের থ্রেশহোল্ড বা সীমানা (যার ওপরের মান পজিটিভ হিসেবে গণ্য হয়) ০ থেকে ১-এর মধ্যে সরানো হয়। কোনো একটি নির্দিষ্ট থ্রেশহোল্ডের precision/recall জোড়া দেখার বদলে, ROC-AUC (Area Under the Curve) সম্পূর্ণ সম্ভাব্য থ্রেশহোল্ড জুড়ে মডেলের আচরণকে ০ থেকে ১ সীমার একটি একক সংখ্যায় প্রকাশ করে। AUC এর মান ১.০ হওয়া মানে মডেলটি কোনো একটি থ্রেশহোল্ডে নিখুঁতভাবে ক্লাস দুটি আলাদা করতে পারছে; আর ০.৫ হওয়া মানে মডেলটির সিদ্ধান্ত কয়েন টসের মতোই মূল্যহীন।
সহজ কথা: স্ট্যান্ডার্ড অ্যাকুরেসি শুধুমাত্র সবচেয়ে বেশি সম্ভাবনা পাওয়া প্রথম প্রেডিকশনটি দেখে। Top-k accuracy কিছুটা নমনীয় — এটি প্রেডিকশনকে সঠিক বলে গণ্য করে যদি আসল লেবেলটি মডেলের প্রথম সংখ্যক অনুমানের তালিকার যেকোনো জায়গায় থাকে। এটি অনেক বেশি ক্লাস বিশিষ্ট ডেটাসেটের জন্য উপযোগী যেখানে কিছু ক্লাস দেখতে অত্যন্ত কাছাকাছি হয়ে থাকে (যেমন: সাইবেরিয়ান হাস্কি কুকুর নাকি আলাস্কান মেলামুট?); ImageNet-এর ১,০০০ ক্লাসের বেঞ্চমার্কে এই কারণেই Top-5 accuracy রিপোর্ট করা হয়।
ধরুন, একটি রোগের স্ক্রিনিং মডেল ১,০০০ জন রোগীর ওপর পরীক্ষা করা হলো, যার মধ্যে বাস্তবে ২০ জনের রোগ ছিল। মডেলটি নিচে কনফিউশন ম্যাট্রিক্স তৈরি করল:
| Predicted Positive (প্রেডিক্ট করেছে পজিটিভ) | Predicted Negative (প্রেডিক্ট করেছে নেগেটিভ) | |
|---|---|---|
| Actual Positive (২০ জনের রোগ আছে) | TP = ১৫ | FN = ৫ |
| Actual Negative (৯৮০ জনের রোগ নেই) | FP = ৪৫ | TN = ৯৩৫ |
এই মানগুলো সূত্রে বসালে: Accuracy = (১৫+৯৩৫)/১০০০ = ৯৫.০% — প্রথম দেখাতে চমৎকার পারফরম্যান্স। কিন্তু Precision = ১৫/(১৫+৪৫) = ২৫.০% (অর্থাৎ মডেল পজিটিভ বললে তার প্রতি ৪টির মধ্যে ৩টিই ভুয়া অ্যালার্ম), আর Recall = ১৫/(১৫+৫) = ৭৫.০% (মডেলটি এখনও প্রতি ৪ জনের রোগাক্রান্ত রোগীর মধ্যে ১ জনকে সনাক্ত করতে ব্যর্থ হচ্ছে)। F1 = ২×(০.২৫×০.৭৫)/(০.২৫+০.৭৫) = ৩৭.৫%। এই ৩৭.৫% স্কোরটি কিন্তু হেডলাইনের ৯৫% অ্যাকুরেসির চেয়ে মডেলের বাস্তব ও দুর্বল চিত্র অনেক স্পষ্টভাবে ফুটিয়ে তোলে। ঠিক এই কারণেই শুধু অ্যাকুরেসির ওপর ভরসা করলে একটি দুর্বল মডেলকে আমরা সেরা মনে করে ভুল করতে পারি।

| মেট্রিক (Metric) | কখন ব্যবহার করবেন |
|---|---|
| Accuracy | যখন ক্লাসগুলোর অনুপাত বা ফ্রিকোয়েন্সি সমান থাকে |
| Precision | যখন False Positive বা ভুল অ্যালার্মের দাম বা ঝুঁকি অনেক বেশি |
| Recall | যখন False Negative বা মিস করা মারাত্মক ক্ষতিকর (যেমন রোগ সনাক্তকরণ) |
| F1-Score | অসম বা imbalanced ডেটাতে প্রিসিশন ও রিকল উভয়ের ব্যালেন্স চাইলে |
| ROC-AUC | থ্রেশহোল্ডের প্রভাব ছাড়া সামগ্রিক মডেলের তুলনা করতে চাইলে |
| Top-k Accuracy | অত্যধিক ক্লাস সংখ্যা থাকলে এবং তাদের ভিজ্যুয়াল মিল বেশি হলে |
Precision = পজিটিভ প্রেডিকশনের বিশুদ্ধতা (purity)। Recall = আসল পজিটিভের উদ্ধার বা উদ্ধারকারী (rescue)।
যে ডেটাসেটে ৯৮% সুস্থ ও ২% অসুস্থ রোগী আছে, সেখানে চোখ বন্ধ করে "সুস্থ" প্রেডিক্ট করা মডেলও ৯৮% অ্যাকুরেসি পাবে — অথচ অসুস্থ ক্লাসের ওপর তার recall হবে ০%, যা চিকিৎসাক্ষেত্রে সম্পূর্ণ অর্থহীন। যখনই ক্লাসের ইমব্যালেন্স থাকবে, অ্যাকুরেসি দেখার আগে অবশ্যই precision, recall ও F1 চেক করুন।
প্রতিটি প্রোডাকশন ক্লাসিফায়ার শুধু accuracy নয়, একসাথে এই মেট্রিকগুলোর বেশ কয়েকটিকে ট্র্যাক করা একটি ড্যাশবোর্ড নিয়ে ডেপ্লয় হয় — আর কোন মেট্রিক মডেল নির্বাচন চালাবে সেই সিদ্ধান্ত যতটা টেকনিক্যাল, ততটাই একটি ব্যবসায়িক সিদ্ধান্ত। একটি ফ্রড-ডিটেকশন সিস্টেম কিছুটা precision-এর মূল্যে (বাড়তি ম্যানুয়াল রিভিউ) হলেও উচ্চ recall-এর জন্য টিউন করা হয় (কারণ ফ্রড মিস করা অনেক ব্যয়বহুল), অন্যদিকে একটি কনটেন্ট-রেকমেন্ডেশন ফিল্টার ব্যবহারকারীদের অপ্রাসঙ্গিক ফ্ল্যাগ দিয়ে বিরক্ত না করতে precision-কে অগ্রাধিকার দিতে পারে। মডেলটি প্রোডাকশনে পৌঁছানোর আগেই এই সিদ্ধান্তটি সঠিকভাবে নেওয়া প্রায়ই যেকোনো আর্কিটেকচারাল পরিবর্তনের চেয়ে বেশি গুরুত্বপূর্ণ প্রমাণিত হয়।