পাঠ ৪৮ · ৫৭-এর মধ্যে · মডিউল ১১
Home / AI Courses / Human-Centered AI / বাস্তবে HCAI — ডোমেইন

হেলথকেয়ার ডিসিশন সাপোর্টে HCAI

HCAI in healthcare decision support
৯ মিনিট পড়া মধ্যম · Intermediate Python কোডসহ সম্পূর্ণ বাংলায়

এই পাঠে যা শিখবেন

  • হেলথকেয়ার ডিসিশন-সাপোর্ট কেন অন্য বেশিরভাগ AI প্রোডাক্টের চেয়ে বেশি ওভারসাইট দাবি করে
  • কনফিডেন্স-থ্রেশহোল্ড ফ্ল্যাগ-ফর-রিভিউ প্যাটার্ন ও এর ট্রেড-অফ
  • ক্লিনিক্যাল প্রেক্ষাপটে এক্সপ্লেইনেবিলিটি (M4) ও ওভাররাইড-অধিকার (M5, L23)-এর প্রয়োগ
  • একটি সত্যিকারের ফ্ল্যাগ-ফর-রিভিউ সিমুলেশন চালিয়ে ফলাফল ব্যাখ্যা করা

১ · কেন হেলথকেয়ার আলাদা

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

এই পাঠ ক্লিনিক্যাল রেগুলেশন, মেডিকেল-ডিভাইস আইন বা লায়াবিলিটির গভীর আলোচনা করে না — সেই বিষয়গুলো AI Ethics ও Ethics in Computing & AI Safety কোর্সের বিষয়। এখানে ফোকাস শুধু একটি প্রশ্নে: ইন্টারফেস ও ইন্টারঅ্যাকশন কীভাবে ডিজাইন করলে একজন ক্লিনিশিয়ান AI-এর আউটপুটকে সঠিক পরিমাণে বিশ্বাস করবেন এবং প্রয়োজনে সহজে ওভাররাইড করতে পারবেন।

২ · ক্যালিব্রেটেড ট্রাস্ট ও কনফিডেন্স কমিউনিকেশন

একটি "কনফিডেন্স স্কোর" আসলে মডেলের প্রেডিক্ট করা একটি সম্ভাবনা — যেমন "এই ইমেজে অস্বাভাবিকতা থাকার সম্ভাবনা ৮২%"। এই সংখ্যাটি নিজে থেকে দরকারী তথ্য দেয় না যদি ব্যবহারকারী না জানেন এটি বাস্তবে কতটা নির্ভরযোগ্য (M3, L16 "কনফিডেন্স ও আনসার্টেইনটি কমিউনিকেশন ডিজাইন")। ক্লিনিক্যাল সেটিংয়ে এই সমস্যাটি আরও বড় হয়ে দাঁড়ায়, কারণ সময়ের চাপ বেশি এবং একই স্ক্রিনে বহু অ্যালার্ট/স্কোর একসাথে দেখানো হয়।

অ্যালার্ট ফ্যাটিগ
খুব বেশি ফ্ল্যাগ/অ্যালার্ট দেখালে ক্লিনিশিয়ান ধীরে ধীরে সবগুলো উপেক্ষা করা শুরু করেন — এটি M3-এর অটোমেশন-বায়াসের বিপরীত সংস্করণ: অতিরিক্ত-অ্যালার্ট আসলে আন্ডার-ট্রাস্ট তৈরি করে।
ক্লিনিক্যাল অটোমেশন বায়াস
উল্টো দিকে, যদি সিস্টেম বেশিরভাগ সময় সঠিক থাকে, ক্লিনিশিয়ান ধীরে ধীরে যাচাই না করে গ্রহণ করা শুরু করতে পারেন (M11-এর জন্য M3-এর ধারণার সরাসরি প্রয়োগ)।
এক্সপ্লেইনেবিলিটির প্রয়োজন
"কেন এই রোগীকে ফ্ল্যাগ করা হলো" প্রশ্নের একটি সংক্ষিপ্ত, লোকাল এক্সপ্লেনেশন (M4, L15) ছাড়া ক্লিনিশিয়ান স্কোরটি যাচাই করার কোনো উপায় পান না।
AI Ethics কোর্সের সাথে সম্পর্ক

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

৩ · একটি সত্যিকারের ডেমো — কনফিডেন্স-থ্রেশহোল্ড ফ্ল্যাগিং

ধরা যাক একটি ডিসিশন-সাপোর্ট সিস্টেম ৪০টি কেসে একটি ঝুঁকি-স্কোর দেয়, প্রতিটির সাথে একটি কনফিডেন্স স্কোর। কেসগুলো যত "সহজ" (স্পষ্ট প্যাটার্নযুক্ত), মডেল তত বেশি সম্ভাবনায় সঠিক থাকে — এবং কনফিডেন্স স্কোরটি সেই প্রকৃত সঠিকতার সাথে সম্পর্কিত কিন্তু নিখুঁত নয় (বাস্তব জগতে কনফিডেন্স স্কোর কখনোই নিখুঁতভাবে ক্যালিব্রেটেড হয় না)। নিচের কোডে একটি থ্রেশহোল্ড (০.৬৫)-এর নিচে কনফিডেন্স থাকা কেসগুলো "হিউম্যান রিভিউর জন্য ফ্ল্যাগ" করা হয়, বাকিগুলো স্বয়ংক্রিয়ভাবে এগিয়ে যায়।

Python
import random
random.seed(11)

def generate_cases(n):
    cases = []
    for _ in range(n):
        # প্রতিটি কেসের প্রকৃত "সহজতা" (০ = কঠিন কেস, ১ = সহজ কেস)
        ease = random.random()
        # কেস যত সহজ, মডেল তত বেশি সম্ভাবনায় সঠিক থাকে
        correct_prob = 0.5 + 0.45 * ease
        is_correct = random.random() < correct_prob
        # কনফিডেন্স স্কোর প্রকৃত কঠিনতার সাথে সম্পর্কিত, কিন্তু নিখুঁত নয় -- কিছুটা নয়েজ যোগ হলো
        noise = random.uniform(-0.12, 0.12)
        confidence = max(0.0, min(1.0, correct_prob + noise))
        cases.append({"correct": is_correct, "confidence": confidence})
    return cases

cases = generate_cases(40)
THRESHOLD = 0.65

flagged = [c for c in cases if c["confidence"] < THRESHOLD]
auto = [c for c in cases if c["confidence"] >= THRESHOLD]

def error_rate(group):
    if not group:
        return 0.0
    wrong = sum(1 for c in group if not c["correct"])
    return wrong / len(group) * 100

total_wrong = sum(1 for c in cases if not c["correct"])
flagged_wrong = sum(1 for c in flagged if not c["correct"])

print(f"মোট কেস: {len(cases)}, মোট প্রকৃত ভুল: {total_wrong}টি")
print(f"হিউম্যান রিভিউর জন্য ফ্ল্যাগ করা হয়েছে: {len(flagged)}টি ({len(flagged)/len(cases)*100:.1f}%)")
print(f"স্বয়ংক্রিয়ভাবে এগিয়ে যাওয়া কেস: {len(auto)}টি, ভুলের হার {error_rate(auto):.1f}%")
print(f"ফ্ল্যাগ করা কেসের ভুলের হার: {error_rate(flagged):.1f}%")
print(f"মোট ভুলের মধ্যে ফ্ল্যাগিং যা ধরেছে: {flagged_wrong}/{total_wrong}")

    
থ্রেশহোল্ড ০.৬৫-এ, ৪০টি কেসের মধ্যে ১১টি (২৭.৫%) হিউম্যান রিভিউর জন্য ফ্ল্যাগ হয় — কিন্তু সেই ১১টি কেসের মধ্যেই মোট ১০টি প্রকৃত ভুলের ৬টি (৬০%) ধরা পড়ে। বাকি ২৯টি স্বয়ংক্রিয়ভাবে-এগিয়ে-যাওয়া কেসের ভুলের হার মাত্র ১৩.৮%। অর্থাৎ মাত্র ২৭.৫% কেস রিভিউ করেই মোট ভুলের সিংহভাগ ধরা সম্ভব হচ্ছে — এটাই কনফিডেন্স-থ্রেশহোল্ড ফ্ল্যাগিং প্যাটার্নের মূল যুক্তি। তবে লক্ষ্য করুন, স্বয়ংক্রিয়ভাবে-এগিয়ে-যাওয়া অংশেও ভুলের হার শূন্য নয় (১৩.৮%) — কনফিডেন্স স্কোর কখনোই নিখুঁত হয় না, তাই "হাই-কনফিডেন্স মানেই নিরাপদ" এই ধারণা নিজেই একটি ঝুঁকি।

৪ · থ্রেশহোল্ড বসানো — একটি ডিজাইন সিদ্ধান্ত, শুধু টেকনিক্যাল নয়

থ্রেশহোল্ড কম রাখলে বেশি কেস ফ্ল্যাগ হয় — বেশি ভুল ধরা পড়ে, কিন্তু ক্লিনিশিয়ানদের রিভিউ-লোড বাড়ে (অ্যালার্ট ফ্যাটিগের ঝুঁকি)। থ্রেশহোল্ড বেশি রাখলে রিভিউ-লোড কমে, কিন্তু বেশি প্রকৃত ভুল স্বয়ংক্রিয়ভাবে এগিয়ে যায়। এই ট্রেড-অফ শুধু একটি ডেটা-সায়েন্স অপটিমাইজেশন প্রশ্ন নয় — ক্লিনিক্যাল টিমের সাথে বসে ঠিক করতে হয়: কতটা রিভিউ-লোড বাস্তবসম্মত, এবং কোন ধরনের ভুল (মিসড কেস বনাম ওভার-ফ্ল্যাগিং) বেশি খরচ-সাপেক্ষ। এটি M5-এর হিউম্যান ওভারসাইট ও ওভাররাইড অধিকার (L23)-এর সরাসরি প্রয়োগ — সিস্টেম যতই স্বয়ংক্রিয় হোক, মানুষের হাতে যেন সবসময় ওভাররাইড করার সহজ পথ থাকে, শুধু ফ্ল্যাগ করা কেসেই না, প্রয়োজনে যেকোনো কেসেই।

মূল কথা · Key takeaway

হেলথকেয়ার ডিসিশন-সাপোর্টে HCAI-এর কাজ মডেল বানানো নয় — এটি এমন একটি ইন্টারঅ্যাকশন-লেয়ার ডিজাইন করা যা ক্লিনিশিয়ানকে সঠিক সময়ে সঠিক পরিমাণ মনোযোগ দিতে সাহায্য করে: কম-কনফিডেন্স কেসে বেশি মনোযোগ, বেশি-কনফিডেন্স কেসেও সবসময় ওভাররাইডের সুযোগ, এবং প্রতিটি ফ্ল্যাগের পেছনে একটি বোধগম্য কারণ।

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।

প্র ০১ একটি ৯০%-অ্যাকুরেট হেলথকেয়ার মডেলও কীভাবে বিপজ্জনক হতে পারে, যদি এটি তার কনফিডেন্স ভালোভাবে কমিউনিকেট না করে?

একটি ৯০%-অ্যাকুরেট মডেলের ভুলগুলো এলোমেলোভাবে ছড়ানো নয় — সাধারণত নির্দিষ্ট ধরনের কেসে (কম-পরিচিত পরিস্থিতি, প্রান্তিক উপসর্গ) ভুল বেশি ঘটে। যদি মডেল সব কেসে একই "আত্মবিশ্বাসী" স্বরে আউটপুট দেয়, ক্লিনিশিয়ান বুঝতে পারবেন না ঠিক কোন ১০%-এ বেশি সতর্ক হওয়া দরকার — ফলাফল হলো এমন কেসগুলোতেই ওভার-ট্রাস্ট ঘটে যেখানে সবচেয়ে বেশি সতর্কতা দরকার ছিল। এটাই দেখায় কেন শুধু গড় অ্যাকুরেসি যথেষ্ট নয় (L01-এর মূল ডেমোর সাথে সরাসরি সম্পর্কিত)।

প্র ০২ থ্রেশহোল্ড বেশি বাড়ালে ফ্ল্যাগ-করা কেসের সংখ্যা কমে যায়। এটি ক্লিনিশিয়ানের ট্রাস্টের উপর কী প্রভাব ফেলতে পারে?

যদি ফ্ল্যাগ খুব কম আসে, ক্লিনিশিয়ান ধীরে ধীরে "এই সিস্টেম প্রায় কখনো ফ্ল্যাগ করে না, তাই যা ফ্ল্যাগ করে না তা নিশ্চয়ই ঠিক" — এই ধরনের একটি অন্তর্নিহিত ধারণা তৈরি করতে পারেন, যা M3-এর অটোমেশন-বায়াসের একটি রূপ। অথচ উপরের ডেমোতেই দেখা গেছে স্বয়ংক্রিয়ভাবে-এগিয়ে-যাওয়া অংশেও প্রকৃত ভুলের হার শূন্য নয় (১৩.৮%)। তাই থ্রেশহোল্ড যেখানেই বসুক, ইন্টারফেসে এটাও স্পষ্ট রাখা দরকার যে "ফ্ল্যাগ না হওয়া" মানে "গ্যারান্টিড সঠিক" নয়।

প্র ০৩ হাসপাতালের মনিটরিং সিস্টেমে "অ্যালার্ম ফ্যাটিগ" একটি সাধারণভাবে পরিচিত সমস্যা। এটি এই পাঠের কোন ধারণার সাথে সরাসরি সম্পর্কিত?

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

অনুশীলন

  1. চিন্তা করুন: উপরের কোডে THRESHOLD-কে 0.65 থেকে 0.55-এ কমালে ফ্ল্যাগ-করা কেসের সংখ্যা কি বাড়বে না কমবে? এবং সেই ফ্ল্যাগ করা কেসগুলো মোট ভুলের কত শতাংশ ধরতে পারবে বলে আপনার ধারণা — বাড়বে না কমবে?

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

  2. পরীক্ষা করুন: উপরের কোডে THRESHOLD = 0.65-কে THRESHOLD = 0.55-এ পরিবর্তন করে Run চেপে আপনার অনুমান যাচাই করুন।

    THRESHOLD=0.55-এ ফ্ল্যাগ-করা কেসের সংখ্যা ৪০-এর মধ্যে মাত্র ৫টি (১২.৫%)-এ নেমে আসে, এবং সেই ৫টি কেস মোট ১০টি প্রকৃত ভুলের মধ্যে মাত্র ৩টি (৩০%) ধরতে পারে — আগের ৬০% থেকে অনেক কমে যায়। ঠিক অনুমান অনুযায়ীই, রিভিউ-লোড কমানোর সরাসরি খরচ হলো বেশি ভুল "চোখ এড়িয়ে" যাওয়া — এই সংখ্যাগুলো ছাড়া থ্রেশহোল্ড কোথায় বসবে তা নিয়ে ক্লিনিক্যাল টিমের সাথে অর্থবহ আলোচনা করা অসম্ভব।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

আগের পাঠ
একটি ইন্টারনাল HCAI ডিজাইন চেকলিস্ট তৈরি করা