ডেটা ছাড়া মডেল, পানি ছাড়া মাছ

· 2 min read · Syed Omar Faruk Towaha
ডেটা ছাড়া মডেল, পানি ছাড়া মাছ

একটা পুরনো কথা আছে: "Garbage in, garbage out।" ময়লা ঢোকালে ময়লাই বের হয়। মেশিন লার্নিংয়ে এটা সবচেয়ে বেশি সত্য, অথচ সবচেয়ে বেশি উপেক্ষিত।

গবেষণাপত্র আর সম্মেলনে বেশিরভাগ আলোচনা নতুন মডেল, নতুন স্থাপত্য, নতুন কৌশল নিয়ে। কিন্তু বাস্তব প্রজেক্টে কাজ করতে গিয়ে বারবার দেখি, সবচেয়ে বড় উন্নতি আসে ডেটা ঠিক করে।

Model tweaks vs data fixes
উদাহরণ: মডেল বদলানোর চেয়ে ডেটা ঠিক করায় বেশি উন্নতি।

ভুল লেবেল

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

কী করবেন: মডেল যেসব উদাহরণে সবচেয়ে বেশি আত্মবিশ্বাসের সাথে ভুল করছে, সেগুলো হাতে দেখুন। প্রায়ই দেখবেন মডেল ঠিক, লেবেল ভুল।

import numpy as np

proba = model.predict_proba(X_val)
pred = proba.argmax(axis=1)
confidence = proba.max(axis=1)

# আত্মবিশ্বাসী কিন্তু লেবেলের সাথে অমিল: সন্দেহভাজন লেবেল
suspects = np.where((pred != y_val) & (confidence > 0.9))[0]
print(len(suspects), "টা উদাহরণ আবার দেখা দরকার")

অস্পষ্ট সংজ্ঞা

দুজন লেবেলার একই জিনিসকে ভিন্ন নাম দিলে মডেল কী শিখবে? "ক্ষতিগ্রস্ত ফসল" মানে কতটা ক্ষতি? "নেতিবাচক মন্তব্য" এ কি ব্যঙ্গ পড়বে? লেবেলিং শুরুর আগে পরিষ্কার নির্দেশিকা, উদাহরণসহ, অনেক সমস্যা আগেই থামায়।

বিরল কিন্তু গুরুত্বপূর্ণ উদাহরণ

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

ডেটা বাস্তব জীবনের মতো কি না

যে ডেটায় প্রশিক্ষণ, আর যে ডেটায় আসল ব্যবহার, সেগুলো যদি আলাদা হয়, মডেল বিপদে পড়ে। ঢাকার ছবি দিয়ে শেখানো মডেল সুন্দরবনে, শুকনো মৌসুমের ডেটায় শেখানো মডেল বর্ষায়, ঝকঝকে ল্যাবের ছবিতে শেখানো মডেল মাঠের ঝাপসা মোবাইল ছবিতে হোঁচট খায়।

ডেটা-কেন্দ্রিক চিন্তার কয়েকটা নিয়ম

  1. মডেল বদলানোর আগে ডেটা দেখুন। ভুলগুলো হাতে পরীক্ষা করুন, দলভুক্ত করুন।
  2. লেবেলিং নির্দেশিকা লিখুন আর হালনাগাদ রাখুন।
  3. একই উদাহরণ দুজনকে দিয়ে লেবেল করান, মতানৈক্য কোথায় দেখুন।
  4. ডেটার সংস্করণ রাখুন, কোডের মতোই।
  5. বাস্তব ব্যবহারের ডেটা থেকে নমুনা নিয়ে পরীক্ষার সেট বানান।

শেষ কথা

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

// related

// prefer the terminal?

Open the terminal blog and type read data-chhara-model-pani-chhara-machh.