Knowledge & Reasoningপড়তে ১০ মিনিট লাগবে

এক্সপার্ট সিস্টেম (Expert Systems)

ইফ-দেন (If-then) রুলস যা একজন বিশেষজ্ঞের মতো করে ভাবে
scope:কোর কনসেপ্ট (মূল ধারণা)difficulty:বিগিনার (Beginner)

বাক্সে বন্দি একজন ডাক্তার

সালটা ১৯৭৮। একজন রোগী অদ্ভুত এক ইনফেকশন নিয়ে হাসপাতালে এলেন। ডাক্তাররা ঠিক বুঝে উঠতে পারছিলেন না যে কোন ব্যাকটেরিয়ার কারণে এমনটা হচ্ছে। তাই তারা একটা কম্পিউটার চালু করলেন এবং মাইসিন (MYCIN) নামক একটি প্রোগ্রাম রান করালেন — এটি এমন একটি প্রোগ্রাম যা রোগীর লক্ষণ, ল্যাবের রিপোর্ট এবং পুরোনো ইতিহাস সম্পর্কে প্রশ্ন করে উপযুক্ত অ্যান্টিবায়োটিকের পরামর্শ দিতে পারে।

এই মাইসিন-এ কোনো নিউরাল নেটওয়ার্ক ছিল না। ছিল না কোনো ডিপ লার্নিং বা বিশাল ডেটাসেট। এতে ছিল কেবল ৬০০টি ইফ-দেন রুল (If-then rules), যার প্রতিটিই মানুষের মতো কোনো বিশেষজ্ঞের জ্ঞানকে ধারণ করেছিল:

IF বা যদি ইনফেকশন রক্তে হয়ে থাকে AND রোগীর জ্বর থাকে AND কালচার রিপোর্টে গ্রাম-পজিটিভ কক্কাস (gram-positive cocci) ব্যাকটেরিয়া থাকে, THEN বা তবে ৭০% সম্ভাবনা আছে যে ব্যাকটেরিয়াটি হলো স্টাফাইলোকক্কাস (Staphylococcus)।

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

এক্সপার্ট সিস্টেম কী?

এক্সপার্ট সিস্টেম হলো এমন একটি প্রোগ্রাম যা মানুষের মতো কোনো বিশেষজ্ঞের সিদ্ধান্ত নেওয়ার ক্ষমতা অনুকরণ করতে পারে। এর মূলত তিনটি প্রধান অংশ থাকে:

  • নলেজ বেস (Knowledge Base) — কোনো নির্দিষ্ট ডোমেইনের বিশেষজ্ঞদের তৈরি ইফ-দেন রুলগুলোর একটি সংগ্রহ।
  • ইনফারেন্স ইঞ্জিন (Inference Engine) — এটি হলো এখানকার মূল লজিক, যা ওই রুলগুলো ব্যবহার করে একটা সঠিক সিদ্ধান্তে পৌঁছায় (ফরওয়ার্ড বা ব্যাকওয়ার্ড চেইনিং-এর মাধ্যমে)।
  • ইউজার ইন্টারফেস (User Interface) — যেখানে আপনি রোগীর লক্ষণ বা তথ্যগুলো ইনপুট দেন এবং তার ওপর ভিত্তি করে পরামর্শগুলো পান।

এক্সপার্ট সিস্টেমের সোনালী যুগ

১৯৮০-এর দশক ছিল এই এক্সপার্ট সিস্টেমগুলোর সোনালী যুগ। বিভিন্ন কোম্পানি প্রায় প্রতিটি খাতের জন্য এক্সপার্ট সিস্টেম তৈরি করতে নিজেদের লাখ লাখ ডলার খরচ করেছিল:

  • MYCIN (১৯৭৮) — ব্যাকটেরিয়াজনিত সংক্রমণের চিকিৎসা বা রোগ নির্ণয়ের জন্য।
  • DENDRAL (১৯৬৯) — ভর বর্ণালিবীক্ষণ বা মাস স্পেকট্রোমেট্রি (mass spectrometry) ডেটা থেকে রাসায়নিক যৌগ শনাক্ত করার জন্য।
  • XCON (১৯৮০) — DEC-তে VAX কম্পিউটারের অর্ডার কনফিগার করার জন্য এটি ব্যবহৃত হতো, যা কোম্পানিটির বছরে প্রায় ৪ কোটি ডলার বাঁচিয়ে দিয়েছিল।
  • PROSPECTOR (১৯৮৩) — ভূতাত্ত্বিক অনুসন্ধানের জন্য তৈরি, যা আসলেই লাখ লাখ ডলার মূল্যের একটি মলিবডেনাম (molybdenum) খনি আবিষ্কার করেছিল।

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

ঠুনকো বা ভঙ্গুর হওয়ার সমস্যা (The Brittleness Problem)

এরপরই চরম বাস্তবতা সামনে এলো। এক্সপার্ট সিস্টেমগুলো আসলে অত্যন্ত ঠুনকো বা ভঙ্গুর (brittle) ছিল — এগুলো কেবল তাদের নির্দিষ্ট গণ্ডি বা ডোমেইনের ভেতরেই কাজ করতে পারতো। আপনি যদি মাইসিনকে (MYCIN) হাড় ভাঙা নিয়ে কোনো প্রশ্ন করতেন, তবে এটি খুব জোর গলায় আত্মবিশ্বাসের সাথে আপনাকে অ্যান্টিবায়োটিকেরই পরামর্শ দিত। এর নিজস্ব কোনো সাধারণ জ্ঞান বা 'আমি জানি না' বলার মতো ক্ষমতা ছিল না।

এর নলেজ বেস বা রুলগুলো তৈরি করা এবং মেইনটেইন করা ছিল খুবই কষ্টকর। বিশেষজ্ঞদের সাথে ঘণ্টার পর ঘণ্টা ইন্টারভিউ সেশন (যাকে নলেজ ইলিসিটেশন বা knowledge elicitation বলা হয়) করে প্রতিটি রুল তৈরি করতে হতো। প্রায়ই রুলগুলোর মধ্যে সাংঘর্ষিক অবস্থা তৈরি হতো, অদ্ভুত সব এক্সেপশনাল কেস বেড়ে যেত এবং পুরো সিস্টেমটি একটা জট পাকানো গোলকধাঁধায় পরিণত হতো।

একটি মিনি এক্সপার্ট সিস্টেম তৈরি করা

class ExpertSystem:
def __init__(self, name):
self.name = name
self.rules = []
self.facts = {}
def add_rule(self, conditions, conclusion, confidence):
self.rules.append((conditions, conclusion, confidence))
def set_fact(self, fact, value):
self.facts[fact] = value
def diagnose(self):
"""ইনফারেন্স ইঞ্জিন (inference engine) রান করা।"""
results = []
for conditions, conclusion, confidence in self.rules:
if all(self.facts.get(k) == v for k, v in conditions.items()):
results.append((conclusion, confidence))
results.sort(key=lambda x: x[1], reverse=True)
return results
# প্রাণীদের চিকিৎসা করার জন্য এক্সপার্ট সিস্টেম
vet = ExpertSystem("PetVet")
# চিকিৎসকদের জ্ঞান থেকে কিছু রুল বসানো হলো
vet.add_rule(
{"sneezing": True, "runny_nose": True, "fever": False},
"অ্যালার্জি হওয়ার বেশ সম্ভাবনা আছে", 0.8
)
vet.add_rule(
{"sneezing": True, "fever": True, "lethargy": True},
"শ্বাসনালীতে ইনফেকশন বা আপার রেসপিরেটরি ইনফেকশনের (upper respiratory infection) সম্ভাবনা আছে", 0.9
)
vet.add_rule(
{"vomiting": True, "diarrhea": True},
"খাবারে সমস্যা বা গ্যাস্ট্রোএন্টেরাইটিসের (gastroenteritis) সম্ভাবনা আছে", 0.7
)
vet.add_rule(
{"limping": True, "swelling": True},
"মচকে যাওয়া বা হাড় ভাঙার সম্ভাবনা আছে — দ্রুত ভেট বা পশু ডাক্তারের সাথে যোগাযোগ করুন", 0.85
)
# রোগী: একটি বিড়াল, যার হাঁচি আর জ্বর আছে
vet.set_fact("sneezing", True)
vet.set_fact("fever", True)
vet.set_fact("lethargy", True)
vet.set_fact("runny_nose", False)
print(f"--- {vet.name}-এর রোগ নির্ণয় ---")
for diagnosis, confidence in vet.diagnose():
print(f" {diagnosis} (কনফিডেন্স বা নিশ্চয়তা: {confidence:.0%})")
Output
--- PetVet-এর রোগ নির্ণয় ---
  শ্বাসনালীতে ইনফেকশন বা আপার রেসপিরেটরি ইনফেকশনের (upper respiratory infection) সম্ভাবনা আছে (কনফিডেন্স বা নিশ্চয়তা: 90%)
Note: এক্সপার্ট সিস্টেম কখনোই মরে যায়নি — এগুলো শুধু বিবর্তিত হয়েছে মাত্র। বর্তমানের ইনস্যুরেন্স, ব্যাংকিং এবং স্বাস্থ্যসেবা খাতের "বিজনেস রুলস ইঞ্জিন"-গুলো মূলত ১৯৮০-এর দশকের সেই এক্সপার্ট সিস্টেমের সরাসরি বংশধর। যখন আপনার ইনস্যুরেন্স ক্লেইমগুলো স্বয়ংক্রিয়ভাবে গ্রহণ বা বাতিল হয়ে যায়, তার পেছনে প্রায়ই এই ধরনের রুল-বেজড ইঞ্জিনই কাজ করে। শুধু পার্থক্য হলো, আজকাল এই সিস্টেমগুলো আর একা ব্যবহৃত না হয়ে মেশিন লার্নিং-এর সাথে মিলেমিশে কাজ করে।

এক্সপার্ট সিস্টেম থেকে যা শেখা গেলো

এই এক্সপার্ট সিস্টেমগুলো এআই কমিউনিটিকে বেশ গুরুত্বপূর্ণ কিছু জিনিস শিখিয়ে গেছে:

  • জ্ঞানই শক্তি (Knowledge is power) — কিন্তু মানুষের মস্তিষ্ক থেকে সেই জ্ঞান নিংড়ে বের করাটা খুবই কষ্টকর।
  • রুলগুলোর কিছু সীমাবদ্ধতা আছে (Rules have limits) — বাস্তব দুনিয়ায় এতো বেশি ব্যতিক্রম থাকে, যে মানুষের হাতে বানানো রুল দিয়ে সবকিছু সামলানো প্রায় অসম্ভব।
  • স্বচ্ছতাই আসল সুপারপাওয়ার (Transparency is a superpower) — নিউরাল নেটওয়ার্কের ব্ল্যাক বক্সের মতো না হয়ে, এক্সপার্ট সিস্টেমগুলো তাদের প্রতিটি সিদ্ধান্তের যুক্তি খুব পরিষ্কারভাবে তুলে ধরতে পারে ("আমি এই পরামর্শটি দিয়েছি কারণ এর রুল ৩, ৭, এবং ১২ মিলে গেছে")।

আজকের দিনের এআই জগৎ পুরোপুরি মেশিন লার্নিংয়ের দখলে চলে গেছে, যা হাতে লেখা রুল ব্যবহারের পরিবর্তে বিশাল ডেটা থেকে নিজে নিজেPattern শেখে। তবে এর পরও এক্সপ্লেইনঅ্যাবল (explainable) এবং স্বচ্ছ (transparent) এআই তৈরির স্বপ্নটি — যেখানে সিস্টেম বলতে পারবে কেন সে এমন সিদ্ধান্ত নিয়েছে — এখনও প্রবলভাবে টিকে আছে। আর সত্যি বলতে, এক্সপার্ট সিস্টেমগুলোই এমন একটি পথের দিশা দেখিয়েছিল।

ছোট কুইজ

একটি এক্সপার্ট সিস্টেমের তিনটি প্রধান অংশ কী কী?

পড়া চালিয়ে যান