এই পর্বে যা শিখবেন
- AI-এর সংজ্ঞা কেন কঠিন, আর Russell ও Norvig-এর চারটি দৃষ্টিভঙ্গির মধ্যে এই কোর্স কোনটি নেয় ও কেন
- যেকোনো AI সিস্টেমকে agent, environment, percept, action আর performance measure দিয়ে বর্ণনা করা (PEAS)
- Environment-এর ছয়টি বৈশিষ্ট্য দেখে বলতে পারা, সমস্যাটি কতটা কঠিন
- পাঁচ ধরনের agent চেনা, আর ছোট Python simulation দিয়ে তাদের পার্থক্য মাপা
- Turing test, Chinese Room আর “AI কী নয়” — আর এই ৭৯ পর্বের কোর্সটি কীভাবে সাজানো ও কীভাবে পড়বেন
১ · “AI” — সংজ্ঞা দেওয়া কেন এত কঠিন
সকালে ফোন খুলে দেখলেন, ছবির গ্যালারি নিজে থেকেই মুখ চিনে ছবিগুলো আলাদা করে রেখেছে। মেসেজ অ্যাপ একটি SMS-কে spam বলে সরিয়ে দিয়েছে। ম্যাপ অ্যাপ বলছে মিরপুর থেকে মতিঝিল যেতে আজ ৫৫ মিনিট লাগবে। বিজ্ঞাপনে লেখা “AI-চালিত ফ্রিজ”। এর সবগুলোই কি artificial intelligence (কৃত্রিম বুদ্ধিমত্তা, সংক্ষেপে AI)? উত্তর নির্ভর করে আপনি কাকে জিজ্ঞেস করছেন তার ওপর।
সমস্যার মূল হলো “বুদ্ধি” শব্দটি নিজেই। মনোবিজ্ঞানীরা এক শতাব্দীরও বেশি সময় ধরে মানুষের বুদ্ধি মাপার চেষ্টা করছেন, কিন্তু একটিমাত্র সংজ্ঞায় সবাই একমত হননি। কেউ বলেন বুদ্ধি মানে সমস্যা সমাধান, কেউ বলেন নতুন পরিস্থিতিতে মানিয়ে নেওয়া, কেউ বলেন ভাষা আর যুক্তি।
দ্বিতীয় সমস্যা হলো লক্ষ্যটি সরে যায়। ১৯৫০-এর দশকে দাবা খেলা, হাতের লেখা পড়া বা দুই শহরের মধ্যে সবচেয়ে ছোট পথ খোঁজা ছিল AI-এর গবেষণার বিষয়। আজ এগুলো সাধারণ সফটওয়্যারের অংশ, আর অনেকে এগুলোকে আর AI বলেন না। এই প্রবণতাকে কেউ কেউ “AI effect” বলেন। প্রায়ই একটি কথা উদ্ধৃত হয় — “AI হলো যা এখনো করা হয়নি”; কথাটি সাধারণত কম্পিউটার বিজ্ঞানী Larry Tesler-এর নামে চলে, যদিও তিনি নিজে বলেছেন তাঁর আসল কথাটি একটু ভিন্ন ছিল।
“ভালো রাঁধুনি” কাকে বলবেন? কেউ বলবেন যিনি দাদির রেসিপি হুবহু রাঁধতে পারেন। কেউ বলবেন যিনি ফ্রিজে যা আছে তা দিয়েই সুস্বাদু কিছু বানাতে পারেন। কেউ বলবেন যিনি কম খরচে, কম তেলে, সময়মতো সবার জন্য খাবার তৈরি করেন। তিনটি সংজ্ঞাই যুক্তিসংগত, কিন্তু তিনটি আলাদা জিনিস মাপে। AI-এর সংজ্ঞা নিয়েও ঠিক এমনটা ঘটে — কেউ মানুষের অনুকরণ মাপেন, কেউ যুক্তির শুদ্ধতা, কেউ কাজের ফল।
“Artificial intelligence” কথাটি প্রথম লিখিতভাবে আসে ১৯৫৫ সালের একটি গবেষণা প্রস্তাবে, যা John McCarthy, Marvin Minsky, Nathaniel Rochester আর Claude Shannon মিলে লিখেছিলেন। প্রস্তাবটি ছিল ১৯৫৬ সালের গ্রীষ্মে Dartmouth College-এ একটি কর্মশালার জন্য। সেখানে তাঁরা অনুমান করেছিলেন, শেখা বা বুদ্ধির যেকোনো দিক নীতিগতভাবে এত নিখুঁতভাবে বর্ণনা করা যায় যে একটি যন্ত্র দিয়ে তা অনুকরণ করানো সম্ভব। অনুমানটি কতটা ঠিক, সেই প্রশ্ন আজও খোলা। এই ইতিহাসের বিস্তারিত পাবেন পর্ব ২-এ (AI-এর ইতিহাস — Turing, Dartmouth, শীতকাল আর deep learning-এর উত্থান)।
তাহলে কি সংজ্ঞা ছাড়াই শিখব? না। প্রকৌশলে আমাদের দরকার একটি কাজের সংজ্ঞা — যা দিয়ে কোনো সিস্টেম বানানো, মাপা আর তুলনা করা যায়। সেই সংজ্ঞায় পৌঁছানোর আগে AI নিয়ে চিন্তার চারটি পুরোনো ধারা দেখে নেওয়া যাক।
২ · চারটি দৃষ্টিভঙ্গি — মানুষের মতো, না যুক্তিসংগতভাবে
AI-এর সবচেয়ে বেশি ব্যবহৃত পাঠ্যবইগুলোর একটি হলো Stuart Russell আর Peter Norvig-এর Artificial Intelligence: A Modern Approach (প্রথম সংস্করণ ১৯৯৫, চতুর্থ সংস্করণ ২০২০)। বইটির শুরুতেই লেখকেরা AI-এর নানা সংজ্ঞাকে দুটি প্রশ্নে ভাগ করেছেন। প্রথম প্রশ্ন: আমরা কি চিন্তা নিয়ে চিন্তিত, নাকি আচরণ নিয়ে? দ্বিতীয় প্রশ্ন: সাফল্যের মাপকাঠি কি মানুষের মতো হওয়া, নাকি একটি আদর্শ যুক্তিসংগত মান? দুই প্রশ্নের দুই উত্তর মিলিয়ে চারটি ঘর হয়।
| মানুষের মতো (humanly) | যুক্তিসংগতভাবে (rationally) | |
|---|---|---|
| চিন্তা (thinking) | মানুষের মতো চিন্তা — মানুষের মন কীভাবে কাজ করে, তার মডেল বানানো (cognitive modelling). মনোবিজ্ঞানের পরীক্ষার সঙ্গে প্রোগ্রামের ধাপ মেলানো। | যুক্তিসংগত চিন্তা — “চিন্তার নিয়ম”, অর্থাৎ নির্ভুল logic দিয়ে সঠিক সিদ্ধান্তে পৌঁছানো। Aristotle-এর syllogism থেকে আধুনিক logic. |
| আচরণ (acting) | মানুষের মতো আচরণ — এমন আচরণ, যা দেখে মানুষ আলাদা করতে পারেন না। এর বিখ্যাত পরীক্ষা Turing test (অংশ ৮)। | যুক্তিসংগত আচরণ — এমন কাজ বেছে নেওয়া, যা লক্ষ্য পূরণে প্রত্যাশিতভাবে সবচেয়ে ভালো। এটিই rational agent-এর দৃষ্টিভঙ্গি। |
চারটি ধারাই গবেষণায় কাজে লেগেছে: প্রথমটি থেকে cognitive science, দ্বিতীয়টি থেকে logic-ভিত্তিক AI, যা আপনি মডিউল ৮-এ (পর্ব ৪৫–৪৯) দেখবেন।
এই কোর্স কেন “যুক্তিসংগত আচরণ” বেছে নেয়
Russell ও Norvig-এর বইয়ের মতো এই কোর্সও মূলত চতুর্থ ঘরটি — rational agent — নিয়ে কাজ করবে। কারণ তিনটি।
- এটি বেশি সাধারণ। নির্ভুল যুক্তি দিয়ে সিদ্ধান্ত নেওয়া যুক্তিসংগত আচরণের একটি উপায় মাত্র। গরম কড়াইয়ে হাত লাগলে আপনি ভেবেচিন্তে syllogism সাজিয়ে হাত সরান না, সঙ্গে সঙ্গে সরিয়ে নেন — এবং সেটিই সবচেয়ে যুক্তিসংগত কাজ। অনিশ্চয়তার মধ্যে প্রায়ই নিখুঁত প্রমাণ সম্ভবই নয়, তবু কিছু একটা করতেই হয়।
- এটি মাপা যায়। “মানুষের মতো” কথাটি মাপতে মানুষ লাগে, আর মানুষ নিজেই অসংগত ও পক্ষপাতদুষ্ট হতে পারেন। কিন্তু “এই মাপকাঠিতে প্রত্যাশিত ফল সবচেয়ে ভালো” — কথাটি গণিতে লেখা যায়, কোডে পরীক্ষা করা যায়।
- এটি প্রকৌশলের ভাষা। বিমান পাখির মতো ডানা ঝাপটায় না, তবু ওড়ে। Russell ও Norvig নিজেরাই এই তুলনা দিয়েছেন: aeronautical engineering-এর লক্ষ্য কবুতরের হুবহু নকল বানানো নয়। AI-এর লক্ষ্যও মানুষের হুবহু নকল নয়, কাজটি ভালোভাবে করা।
Rationality মানে সর্বজ্ঞতা নয়। Rational agent প্রতিটি মুহূর্তে এমন কাজ বেছে নেয়, যা এ পর্যন্ত যা দেখেছে আর যা আগে থেকে জানে, তার ভিত্তিতে performance measure-এর প্রত্যাশিত মান সবচেয়ে বেশি করে। রাস্তা পার হওয়ার আগে ডানে-বামে দেখে পার হলেন, তবু আকাশ থেকে কিছু পড়ে আঘাত পেলেন — আপনার সিদ্ধান্ত তবু যুক্তিসংগত ছিল। ফল খারাপ হওয়া আর সিদ্ধান্ত খারাপ হওয়া এক কথা নয়।
Rational agent দৃষ্টিভঙ্গির একটি বড় দুর্বলতাও আছে, আর সেটি আগেই জেনে রাখা ভালো। এটি ধরে নেয় যে লক্ষ্য বা performance measure আমরা ঠিকঠাক লিখে দিতে পারি। বাস্তবে সেটি খুব কঠিন। Russell ও Norvig তাঁদের চতুর্থ সংস্করণে এই “standard model” নিয়ে নিজেরাই সতর্ক করেছেন: যন্ত্রকে ভুল বা অসম্পূর্ণ লক্ষ্য দিলে সে সেই ভুল লক্ষ্যই দক্ষতার সঙ্গে পূরণ করবে। এই সমস্যাটি ভাবনার প্রশ্ন ৩-এ আরও গভীরে দেখবেন।
৩ · Agent — দেখে, ভাবে, কাজ করে
এবার মূল শব্দটি। Agent মানে এমন যেকোনো কিছু, যা sensor দিয়ে তার environment (পরিবেশ) সম্পর্কে কিছু টের পায়, আর actuator দিয়ে সেই পরিবেশে কাজ করে। মানুষও একটি agent: চোখ-কান sensor, হাত-পা আর কণ্ঠ actuator. একটি রোবট agent-এর sensor ক্যামেরা, actuator মোটর। আর একটি spam filter-এর sensor হলো আসা মেসেজ পড়া, actuator হলো মেসেজটিকে inbox বা spam folder-এ পাঠানো।
প্রতিটি মুহূর্তে agent যা টের পায়, তাকে বলে percept. শুরু থেকে এ পর্যন্ত পাওয়া সব percept-এর তালিকা হলো percept sequence. Agent-এর আচরণকে গাণিতিকভাবে লেখা যায় একটি agent function হিসেবে — যা প্রতিটি সম্ভাব্য percept sequence-কে একটি action-এ মিলিয়ে দেয়। আর সেই function বাস্তবে যে কোড চালায়, সেটি agent program.
Agent আর environment-এর চক্র
Sensors bring percepts in, actuators send actions out
চক্রটি ধাপে ধাপে দেখা যাক একটি কাল্পনিক উদাহরণে: ঢাকার একটি কাল্পনিক চার রাস্তার মোড়ে বসানো স্বয়ংক্রিয় ট্রাফিক সিগন্যাল। “পরে” চাপুন।
- পরিবেশ
মোড়গাড়ির সারি - Sensor
perceptসারি গোনা - Program
decideনিয়ম দেখা - Actuator
actionবাতি বদলানো
| উত্তর লেনে গাড়ি | |
| পূর্ব লেনে গাড়ি | |
| percept | |
| action |
- পরিবেশ। মোড়ের উত্তর লেনে ১২টি গাড়ি দাঁড়িয়ে, পূর্ব লেনে ৩টি। পরিবেশের এই অবস্থা agent এখনো জানে না।
- Sensor থেকে percept. ক্যামেরা বা মাটির নিচের সেন্সর গাড়ি গুনে agent-কে জানায়: “উত্তর ১২, পূর্ব ৩”। এটিই এই মুহূর্তের percept. খেয়াল করুন, agent দেখছে শুধু গাড়ির সংখ্যা, পথচারী বা অ্যাম্বুলেন্স নয়।
- Program সিদ্ধান্ত নেয়। ধরুন নিয়মটি সহজ: “যে লেনে সারি লম্বা, সেখানে সবুজ।” ১২ > ৩, তাই সিদ্ধান্ত হলো উত্তরে সবুজ।
- Actuator কাজ করে। উত্তরের বাতি ৪০ সেকেন্ডের জন্য সবুজ হলো। এই সময়ে উত্তরের বেশিরভাগ গাড়ি পার হয়ে গেল, আর পূর্ব লেনে নতুন গাড়ি জমল।
- পরিবেশ বদলেছে, চক্র আবার। নতুন percept: উত্তর ৪, পূর্ব ৭। এবার নিয়ম অনুযায়ী পূর্বে সবুজ হবে। এই চক্র সারাদিন চলে। Agent ভালো করছে কি না, তা মাপবে একটি performance measure — যেমন সব লেনে গড় অপেক্ষার সময় কত কমল।
PEAS — যেকোনো AI সমস্যা লেখার চার প্রশ্ন
একটি agent বানানোর আগে কাজটি স্পষ্ট করে লিখতে হয়। Russell ও Norvig এর জন্য একটি সংক্ষিপ্ত ছক ব্যবহার করেন: PEAS — Performance measure (ফল কীভাবে মাপা হবে), Environment (পরিবেশ), Actuators (কী করতে পারে), Sensors (কী দেখতে পায়)। সবচেয়ে গুরুত্বপূর্ণ হলো প্রথমটি, performance measure, কারণ “ভালো আচরণ” কী, তা এটিই ঠিক করে দেয়।
নিচের চারটি উদাহরণই কাল্পনিক।
| Agent | P · মাপকাঠি | E · পরিবেশ | A · actuator | S · sensor |
|---|---|---|---|---|
| ট্রাফিক সিগন্যাল নিয়ন্ত্রক | গড় অপেক্ষার সময় কম, পথচারীর নিরাপত্তা, অ্যাম্বুলেন্সকে আগে যেতে দেওয়া | একটি মোড়, গাড়ি, রিকশা, পথচারী, আবহাওয়া | প্রতিটি দিকের বাতি আর তার সময় | ক্যামেরা, গাড়ি গোনার সেন্সর, ঘড়ি |
| ফসলের রোগ চেনার অ্যাপ | সঠিক রোগ বলার হার, ভুল করে “সুস্থ” বলা কম, নিশ্চিত না হলে কৃষি কর্মকর্তার কাছে পাঠানো | কৃষকের ফোন, ধান বা আলুর পাতা, আলো, ক্যামেরার মান | পর্দায় সম্ভাব্য রোগের নাম, আত্মবিশ্বাসের মাত্রা আর পরামর্শ | ফোনের ক্যামেরায় তোলা ছবি, কৃষকের দেওয়া তথ্য (ফসল, জেলা) |
| বাংলা SMS-এর spam filter | spam ধরা, কিন্তু জরুরি মেসেজ (OTP, ব্যাংকের বার্তা) কখনো না হারানো | মোবাইলের inbox, প্রেরক, spammer-রা যারা কৌশল বদলায় | মেসেজকে inbox বা spam folder-এ রাখা, সতর্কবার্তা দেখানো | মেসেজের লেখা, প্রেরকের নম্বর, ব্যবহারকারীর “spam নয়” চাপ |
| রাইড-শেয়ারিং dispatcher | যাত্রীর অপেক্ষা কম, চালকের খালি ঘোরা কম, বাতিল কম, ন্যায্য বণ্টন | শহরের রাস্তা, যানজট, চালক, যাত্রী, বৃষ্টি | কোন যাত্রীকে কোন চালক দেবে, ভাড়ার প্রস্তাব | চালক ও যাত্রীর GPS অবস্থান, অনুরোধ, রাস্তার গতির তথ্য |
খেয়াল করুন, প্রতিটি performance measure-এ একাধিক লক্ষ্য আছে, আর সেগুলো মাঝে মাঝে পরস্পরের বিরোধী। Spam filter যত কড়া হবে, তত বেশি spam ধরবে, কিন্তু তত বেশি আসল মেসেজও হারাবে। কোন ভুল কতটা খারাপ, তা ঠিক করা প্রযুক্তির প্রশ্ন নয়, মূল্যবোধ আর ব্যবহারকারীর প্রয়োজনের প্রশ্ন। এই trade-off-এর হিসাব আপনি পর্ব ৬০-এ (precision আর recall) সংখ্যা দিয়ে করবেন।
৪ · Vacuum world — প্রথম agent চালিয়ে দেখা
বড় উদাহরণে সব জিনিস একসঙ্গে বোঝা কঠিন। তাই AI-এর পাঠ্যবইগুলো একটি খুবই ছোট জগৎ দিয়ে শুরু করে: vacuum world. জগতে মাত্র দুটি ঘর, A আর B. প্রতিটি ঘর পরিষ্কার (Clean) বা ময়লা (Dirty). একটি রোবট vacuum cleaner যেকোনো একটি ঘরে থাকে।
দুই ঘরের vacuum world
Percept = (location, status). Actions: Suck, Left, Right
PEAS লিখলে: P — প্রতিটি সময়-ধাপে যতগুলো ঘর পরিষ্কার, ততো পয়েন্ট; E — দুটি ঘর; A — Suck (পরিষ্কার করা), Left, Right; S — নিজের অবস্থান আর নিজের ঘরটি ময়লা কি না। সবচেয়ে সহজ agent-টির নিয়ম তিনটি: ঘর ময়লা হলে পরিষ্কার করা; A-তে থাকলে ডানে যাওয়া; B-তে থাকলে বাঁয়ে যাওয়া। এমন “যদি এটা দেখা যায়, তবে ওটা করা” ধরনের নিয়মকে বলে condition–action rule.
নিচের কোডটি ঠিক এই agent-কে ৬টি ধাপ চালায়। এই পাতার Python কোড চলে আপনার ব্রাউজারেই, Pyodide-এর মাধ্যমে — এটি WebAssembly-তে compile করা আসল CPython; প্রথমবার লোড হতে কয়েক সেকেন্ড লাগতে পারে। কিছু install করার দরকার নেই।
# Simple reflex agent in the two-cell vacuum world
def reflex_agent(percept):
location, status = percept
if status == "Dirty":
return "Suck"
if location == "A":
return "Right"
return "Left"
world = {"A": "Dirty", "B": "Dirty"}
location = "A"
score = 0 # performance: +1 for every clean cell, every step
for step in range(1, 7):
percept = (location, world[location])
action = reflex_agent(percept)
if action == "Suck":
world[location] = "Clean"
elif action == "Right":
location = "B"
else:
location = "A"
score += list(world.values()).count("Clean")
print(f"{step}: {percept[0]},{percept[1]:5} -> {action:5}"
f" A={world['A'][0]} B={world['B'][0]} score={score}")আউটপুটের প্রথম তিন লাইন: 1: A,Dirty -> Suck A=C B=D score=1, 2: A,Clean -> Right A=C B=D score=2, 3: B,Dirty -> Suck A=C B=C score=4. তৃতীয় ধাপেই দুটি ঘর পরিষ্কার (C = Clean, D = Dirty), তাই এরপর প্রতি ধাপে ২ পয়েন্ট যোগ হয়; শেষ লাইন 6: B,Clean -> Left A=C B=C score=10. কিন্তু ৪, ৫, ৬ নম্বর ধাপে agent কী করছে খেয়াল করুন: Left, Right, Left — দুটি ঘর পরিষ্কার হওয়ার পরও সে অনবরত এদিক-ওদিক ঘুরছে, কারণ তার কোনো স্মৃতি নেই। এখানে চলায় কোনো খরচ ধরা হয়নি, তাই এতে score কমছে না। খরচ ধরলে কী হয়, তা অংশ ৬-এ দেখবেন।
একই ঘটনা এবার ধাপে ধাপে, প্রথম ৫টি ধাপের মান সহ:
| percept | |
| action | |
| agent এখন | |
| ঘর A | |
| ঘর B | |
| score |
- ধাপ ১. Agent A-তে, দেখল A ময়লা। নিয়ম “Dirty হলে Suck” মিলে গেল। A পরিষ্কার হলো। এখন ১টি ঘর পরিষ্কার, তাই score = ১.
- ধাপ ২. Percept (A, Clean). নিয়ম “A-তে আর পরিষ্কার হলে Right”. Agent B-তে গেল। পরিষ্কার ঘর এখনো ১টি, score = ১ + ১ = ২.
- ধাপ ৩. Percept (B, Dirty). আবার Suck. এবার দুটি ঘরই পরিষ্কার, এই ধাপে ২ পয়েন্ট, score = ২ + ২ = ৪.
- ধাপ ৪. Percept (B, Clean). নিয়ম “B-তে আর পরিষ্কার হলে Left”. কাজ আসলে শেষ, কিন্তু agent তা জানে না; সে A-তে ফিরে গেল। score = ৬.
- ধাপ ৫. Percept (A, Clean). আবার Right. Agent এভাবে চিরকাল দুলতে থাকবে। score = ৮.
৫ · Environment-এর ছয়টি বৈশিষ্ট্য — সমস্যা কতটা কঠিন
Sudoku সমাধান করা আর ঢাকার রাস্তায় গাড়ি চালানো — দুটিই “AI সমস্যা”, কিন্তু কঠিনতায় আকাশ-পাতাল তফাত। কেন? উত্তর লুকিয়ে আছে পরিবেশের ধরনে। Russell ও Norvig পরিবেশকে কয়েকটি মাত্রায় ভাগ করেন। প্রতিটি মাত্রা একটি প্রশ্ন:
১. Observable?
Agent কি প্রতিটি মুহূর্তে সিদ্ধান্তের জন্য দরকারি সব কিছু দেখতে পায় (fully observable), নাকি কিছু অংশ লুকানো (partially observable)? তাস খেলায় প্রতিপক্ষের হাত দেখা যায় না।
২. Deterministic?
বর্তমান অবস্থা আর agent-এর কাজ জানলে পরের অবস্থা কি নিশ্চিতভাবে বলা যায় (deterministic)? নাকি এলোমেলো কিছু ঘটতে পারে (stochastic), যেমন হঠাৎ বৃষ্টি বা যানজট?
৩. Episodic?
প্রতিটি সিদ্ধান্ত কি আলাদা, আগেরটির সঙ্গে সম্পর্কহীন (episodic)? নাকি আজকের সিদ্ধান্ত পরের অবস্থা বদলে দেয় (sequential)? পরীক্ষার খাতার প্রতিটি MCQ আলাদা; দাবার প্রতিটি চাল পরেরগুলোকে প্রভাবিত করে।
৪. Static?
Agent ভাবতে থাকার সময় কি পরিবেশ স্থির থাকে (static), নাকি বদলে যায় (dynamic)? Crossword স্থির; রাস্তার গাড়ি আপনার ভাবনার জন্য অপেক্ষা করে না।
৫. Discrete?
অবস্থা, সময় আর কাজ কি গোনা যায় এমন ধাপে ভাগ করা (discrete), নাকি অবিচ্ছিন্ন (continuous), যেমন গাড়ির গতি আর স্টিয়ারিংয়ের কোণ?
৬. একা না অনেকে?
পরিবেশে কি শুধু এই agent (single-agent), নাকি অন্য agent-ও আছে যাদের নিজস্ব লক্ষ্য (multi-agent)? অন্যরা সহযোগী হতে পারে, প্রতিপক্ষও হতে পারে।
Russell ও Norvig আরেকটি মাত্রাও উল্লেখ করেন — known বা unknown, অর্থাৎ পরিবেশের নিয়ম agent-এর জানা কি না। সহজ পরিবেশ হলো fully observable, deterministic, episodic, static, discrete আর single-agent; কঠিনতম হলো ঠিক উল্টোটি। বাস্তবের প্রায় সব গুরুত্বপূর্ণ সমস্যা কঠিন দিকে পড়ে। নিচের ছকে কয়েকটি পরিবেশ ভাগ করা হলো। কিছু ঘরে উত্তর নির্ভর করে আপনি সমস্যাটিকে কীভাবে সংজ্ঞায়িত করছেন তার ওপর; সেগুলোতে কারণ লেখা আছে।
| পরিবেশ | Observable | Deterministic | Episodic | Static | Discrete | Agent |
|---|---|---|---|---|---|---|
| Sudoku | Fully | হ্যাঁ | Sequential | Static | Discrete | একা |
| দুই ঘরের vacuum world (অংশ ৪) | Partially (শুধু নিজের ঘর দেখে) | হ্যাঁ | Sequential | Static | Discrete | একা |
| ঘড়ি ধরে দাবা | Fully | হ্যাঁ (প্রতিপক্ষের চাল বাদে) | Sequential | Semi-dynamic (ঘড়ি চলে) | Discrete | অনেকে, প্রতিপক্ষ |
| বাংলা SMS spam filter | Partially (প্রেরকের উদ্দেশ্য অজানা) | না | মূলত episodic | Static (একটি মেসেজের জন্য) | Discrete (লেখা) | অনেকে (spammer কৌশল বদলায়) |
| ফসলের রোগ চেনার অ্যাপ | Partially (একটি পাতার ছবি) | না | Episodic | Static | কার্যত continuous (রং, আলো) | একা |
| ট্রাফিক সিগন্যাল | Partially | না | Sequential | Dynamic | Continuous (সময়) | অনেকে |
| রাইড-শেয়ারিং dispatcher | Partially | না | Sequential | Dynamic | Continuous | অনেকে |
এবার শেষ সারির dispatcher-কে ধাপে ধাপে একটি করে প্রশ্ন দিয়ে ভাগ করা যাক। প্রতিটি ধাপে আগে নিজে উত্তর ভাবুন, তারপর caption পড়ুন।
| প্রশ্ন | |
| উত্তর | |
| এ পর্যন্ত কঠিন দিক |
- Observable? Dispatcher চালকের GPS অবস্থান দেখে, কিন্তু জানে না কোন চালক অনুরোধটি গ্রহণ করবেন, সামনের মোড়ে যানজট কতটা, বা যাত্রী আসলে কতক্ষণে নিচে নামবেন। তাই partially observable.
- Deterministic? একই চালককে একই যাত্রীর কাছে পাঠালেও কখনো ১০ মিনিট লাগে, কখনো ২৫ মিনিট — বৃষ্টি, দুর্ঘটনা বা বাতিলের জন্য। ফল নিশ্চিত নয়, তাই stochastic.
- Episodic? এখন একজন চালককে মিরপুরে পাঠালে আধা ঘণ্টা পর ধানমন্ডির অনুরোধের জন্য সেই চালক থাকবেন না। আজকের সিদ্ধান্ত কালকের বিকল্প বদলায়, তাই sequential.
- Static? Dispatcher হিসাব করার সময়েও নতুন অনুরোধ আসে, চালক নড়েন। পরিবেশ অপেক্ষা করে না, তাই dynamic. দেরিতে নেওয়া সেরা সিদ্ধান্তও খারাপ ফল আনতে পারে।
- Discrete? “কোন চালক” — এই সিদ্ধান্তটি গোনা যায়, কিন্তু অবস্থান, সময় আর গতি অবিচ্ছিন্ন। তাই উত্তর হলো মূলত continuous; মডেল বানাতে প্রায়ই শহরকে ছোট ছোট খোপে ভাগ করে discrete বানানো হয়।
- একা? চালক, যাত্রী, অন্য অ্যাপ — সবার নিজস্ব লক্ষ্য। চালক বেশি ভাড়ার এলাকায় যেতে চাইতে পারেন। তাই multi-agent. ছয়টি প্রশ্নেই কঠিন দিক — এজন্যই এমন সমস্যায় একটি নিখুঁত সমাধান নয়, “যথেষ্ট ভালো” সমাধান খোঁজা হয়।
৬ · Table থেকে নিয়ম — reflex আর model-based agent
Agent function-কে সবচেয়ে সরাসরি উপায়ে লেখা যায় একটি বিশাল টেবিল দিয়ে: প্রতিটি সম্ভাব্য percept sequence-এর পাশে লিখে রাখা, তখন কী করতে হবে। একে বলে table-driven agent. ধারণাটি সহজ, কিন্তু কেন অচল, তা হিসাব করলেই বোঝা যায়। যদি প্রতি ধাপে সম্ভাব্য percept থাকে |P|টি, আর agent চলে T ধাপ, তবে টেবিলে সারি লাগবে:
সারি = |P|1 + |P|2 + … + |P|T = ∑t=1T |P|t
এখানে |P| মানে সম্ভাব্য আলাদা percept-এর সংখ্যা, T মানে agent-এর জীবনকাল (কত ধাপ চলবে), আর ∑ মানে t = ১ থেকে T পর্যন্ত সব পদ যোগ করা। কারণ: ১ ধাপের ইতিহাস |P| রকম, ২ ধাপের |P| × |P| রকম, এভাবে। Vacuum world-এ অবস্থান ২ রকম আর অবস্থা ২ রকম, তাই |P| = ২ × ২ = ৪.
# A table-driven agent needs one row for every possible percept history
def table_rows(n_percepts, lifetime):
# histories of length 1, 2, ..., lifetime
return sum(n_percepts ** t for t in range(1, lifetime + 1))
vacuum = 2 * 2 # location (A/B) x status (Clean/Dirty)
print("vacuum world, 4 possible percepts")
for T in [1, 2, 3, 5, 10, 20]:
print(f" lifetime {T:2} steps -> {table_rows(vacuum, T):,} rows")
camera = 2 ** 64 # a tiny 8x8 black-and-white camera
rows = table_rows(camera, 10)
print("8x8 camera, 10 steps ->", len(str(rows)), "digit number of rows")
# the reflex agent replaces the whole table with three rules
rules = ["Dirty -> Suck", "A, Clean -> Right", "B, Clean -> Left"]
print("reflex agent rules:", len(rules))আসল আউটপুট: ৩ ধাপে 84 rows (৪ + ১৬ + ৬৪), ১০ ধাপে 1,398,100 rows, আর ২০ ধাপে 1,466,015,503,700 rows — দেড় লক্ষ কোটির কাছাকাছি, মাত্র দুটি ঘরের জগতে! এরপর একটি ক্ষুদ্র ৮×৮ সাদাকালো ক্যামেরা (প্রতিটি ছবি 264 রকম হতে পারে) মাত্র ১০ ধাপ চললে লাইনটি বলে 193 digit number of rows — ১৯৩ অঙ্কের একটি সংখ্যা। তুলনার জন্য, পর্যবেক্ষণযোগ্য মহাবিশ্বে পরমাণুর সংখ্যার প্রচলিত অনুমান মোটামুটি 1080, অর্থাৎ প্রায় ৮১ অঙ্কের একটি সংখ্যা। অথচ শেষ লাইন reflex agent rules: 3 — তিনটি নিয়মে একই কাজ। Russell ও Norvig দাবার জন্যও একই হিসাব দেখিয়েছেন: টেবিলে অন্তত 10150 সারি লাগবে। শিক্ষাটি হলো, AI-এর আসল চ্যালেঞ্জ হলো বিশাল টেবিলের বদলে ছোট একটি program লেখা, যা যুক্তিসংগত আচরণ তৈরি করে।
Simple reflex agent
Simple reflex agent শুধু বর্তমান percept দেখে, condition–action rule মিলিয়ে কাজ করে; ইতিহাস মনে রাখে না। অংশ ৪-এর vacuum agent ঠিক এমন। এটি দ্রুত, সহজ, আর পরিবেশ fully observable হলে প্রায়ই যথেষ্ট। কিন্তু দরকারি তথ্য চোখের আড়ালে থাকলে বিপদ। ঘন কুয়াশায় সামনের গাড়ির ব্রেক-বাতি দেখা না গেলে “লাল বাতি দেখলে ব্রেক” নিয়ম কোনো কাজে আসে না।
Model-based reflex agent
Model-based agent মাথার ভেতরে একটি internal state রাখে — পৃথিবীর যে অংশ এখন দেখা যাচ্ছে না, তার একটি অনুমান। এই অনুমান হালনাগাদ করতে তার দুটি জ্ঞান লাগে: পৃথিবী নিজে নিজে কীভাবে বদলায়, আর তার নিজের কাজ পৃথিবীকে কীভাবে বদলায়। চায়ের দোকানদার যেমন বাকির খাতায় লিখে রাখেন কে কত টাকা দেবেন — সামনে ক্রেতা না থাকলেও হিসাবটি থাকে।
এবার vacuum world-এ নিয়ম একটু বাস্তব করি: প্রতিটি Left বা Right চলায় ১ পয়েন্ট কাটা যাবে (ব্যাটারি খরচ)। Model-based agent মনে রাখে কোন ঘর পরিষ্কার দেখেছে; দুটিই পরিষ্কার জানলে সে NoOp (কিছু না করা) বেছে নেয়। ১০ ধাপে দুটির তুলনা:
# Reflex vs model-based agent, when every move costs 1 point
def reflex(percept, memory):
loc, status = percept
if status == "Dirty":
return "Suck"
return "Right" if loc == "A" else "Left"
def model_based(percept, memory):
loc, status = percept
memory[loc] = status # update the internal model
if status == "Dirty":
memory[loc] = "Clean" # it will be clean after Suck
return "Suck"
if memory.get("A") == "Clean" and memory.get("B") == "Clean":
return "NoOp" # both known clean: stay still
return "Right" if loc == "A" else "Left"
def run(agent, steps=10):
world, loc, memory, score = {"A": "Dirty", "B": "Dirty"}, "A", {}, 0
actions = []
for _ in range(steps):
action = agent((loc, world[loc]), memory)
if action == "Suck":
world[loc] = "Clean"
elif action in ("Right", "Left"):
loc = "B" if action == "Right" else "A"
score -= 1 # moving uses battery
score += list(world.values()).count("Clean")
actions.append(action[0]) # S, R, L or N
return score, "".join(actions)
for name, agent in [("reflex", reflex), ("model-based", model_based)]:
score, trace = run(agent)
print(f"{name:12} actions={trace} score={score}")আসল আউটপুট দুই লাইন: reflex actions=SRSLRLRLRL score=10 আর model-based actions=SRSNNNNNNN score=17. হিসাবটি মিলিয়ে নিন। দুটি agent-ই পরিষ্কারের পয়েন্ট পায় ১ + ১ + ২ + ২ × ৭ = ১৮. Reflex agent ৮ বার চলেছে (R, L, R, L …), তাই ১৮ − ৮ = ১০. Model-based agent একবারই চলেছে, তাই ১৮ − ১ = ১৭. একটুখানি স্মৃতি score প্রায় দ্বিগুণ করেছে। তবে সাবধান: এই agent ধরে নিয়েছে পরিষ্কার ঘর আর কখনো ময়লা হবে না। বাস্তবে ময়লা আবার জমলে তার model ভুল হয়ে যাবে, আর সে চুপচাপ বসে থাকবে। Model যত ভালো, agent তত ভালো — model ভুল হলে স্মৃতিই বিপদ ডেকে আনে।
আরও গভীরে: Partially observable পরিবেশে “internal state” আসলে একটি অনুমান, আর অনিশ্চয়তা থাকলে একটি সম্ভাবনার বণ্টন — একে বলে belief state. এর গণিত আসে hidden Markov model আর Bayesian filtering থেকে (পর্ব ৫৩), আর অনিশ্চয়তায় পরিকল্পনার পূর্ণ কাঠামো হলো POMDP (partially observable Markov decision process).
৭ · লক্ষ্য, utility আর শেখা — বাকি তিন ধরন
Goal-based agent
Reflex agent জানে “এখন কী করতে হয়”, কিন্তু জানে না “কেন”। Goal-based agent-কে একটি লক্ষ্য দেওয়া হয় — যেমন “সকাল দশটার আগে মতিঝিলের অফিসে পৌঁছানো” — আর সে ভেবে দেখে কোন কাজের ধারাবাহিকতা সেই লক্ষ্যে নিয়ে যাবে। এই ভেবে দেখাই হলো search আর planning, যা পুরো মডিউল ৭ (পর্ব ৩৯–৪৪) আর পর্ব ৪৯-এর বিষয়। সুবিধা হলো নমনীয়তা: লক্ষ্য বদলালে নিয়ম নতুন করে লিখতে হয় না, শুধু লক্ষ্য বদলালেই চলে।
Utility-based agent
কিন্তু লক্ষ্যে পৌঁছানোর অনেক পথ থাকে, আর লক্ষ্য শুধু বলে “পৌঁছালাম” বা “পৌঁছালাম না”। কোন পথ সস্তা, কোনটি দ্রুত, কোনটি নিশ্চিত — তা বোঝাতে লাগে utility: প্রতিটি ফলের জন্য একটি সংখ্যা, “কতটা ভালো”। ফল অনিশ্চিত হলে utility-based agent প্রতিটি কাজের expected utility হিসাব করে — প্রতিটি সম্ভাব্য ফলের utility-কে তার সম্ভাবনা দিয়ে গুণ করে যোগফল — আর সবচেয়ে বেশিটি বেছে নেয়। নিচে তিনটি কাল্পনিক পথ: মেট্রো, CNG আর বাস। ভাড়া আর সময়ের সম্ভাবনা বানানো সংখ্যা, বাস্তব তথ্য নয়।
# Goal-based vs utility-based choice of a route to the office
# each route: fare in taka, and possible travel times (minutes, probability)
routes = {
"metro": (100, [(35, 0.9), (50, 0.1)]),
"cng": (350, [(30, 0.5), (70, 0.5)]),
"bus": (40, [(45, 0.6), (90, 0.4)]),
}
def p_on_time(outcomes, limit=60):
return sum(p for t, p in outcomes if t <= limit)
def expected_cost(fare, outcomes, taka_per_minute):
exp_time = sum(t * p for t, p in outcomes)
return exp_time, exp_time * taka_per_minute + fare
print("goal: reach within 60 minutes")
for name, (fare, outs) in routes.items():
print(f" {name:5} P(on time) = {p_on_time(outs):.1f}")
for value in [3, 1]: # how much one minute is worth
print(f"utility, 1 minute = {value} taka")
best = None
for name, (fare, outs) in routes.items():
t, cost = expected_cost(fare, outs, value)
print(f" {name:5} E[time]={t:4.1f} cost={cost:6.1f}")
if best is None or cost < best[1]:
best = (name, cost)
print(" choose:", best[0])প্রথম অংশ goal-based দৃষ্টি: metro P(on time) = 1.0, cng P(on time) = 0.5, bus P(on time) = 0.6. “৬০ মিনিটের মধ্যে পৌঁছানো” লক্ষ্যে শুধু হ্যাঁ/না জানা যায়, খরচের কোনো হিসাব নেই। দ্বিতীয় অংশে utility = −(প্রত্যাশিত সময় × এক মিনিটের দাম + ভাড়া), তাই খরচ যত কম, utility তত বেশি। মেট্রোর প্রত্যাশিত সময় ০.৯ × ৩৫ + ০.১ × ৫০ = ৩৬.৫ মিনিট। এক মিনিটের দাম ৩ টাকা ধরলে আউটপুট metro E[time]=36.5 cost= 209.5, bus E[time]=63.0 cost= 229.0, তাই choose: metro. কিন্তু যাঁর কাছে এক মিনিটের দাম ১ টাকা, তাঁর জন্য বাসের খরচ 103.0 আর মেট্রোর 136.5, তাই choose: bus. একই তথ্য, ভিন্ন পছন্দ, ভিন্ন সেরা সিদ্ধান্ত। Utility agent-এর বুদ্ধি নয়, utility function-টি ঠিক করে কে কী চান — আর সেটি লেখে মানুষ।
খেয়াল করুন, বাসে ৪০% সম্ভাবনায় ৯০ মিনিট লাগে। জরুরি মিটিং থাকলে দেরির শাস্তি utility-তে আলাদা করে যোগ করতে হয়। অনিশ্চয়তায় সিদ্ধান্তের পুরো কাঠামো পর্ব ৫৪-এর বিষয় (expected utility আর MDP).
Learning agent
এ পর্যন্ত সব agent-এর জ্ঞান মানুষ হাতে লিখে দিয়েছেন। Learning agent অভিজ্ঞতা থেকে নিজের আচরণ উন্নত করে। Russell ও Norvig এর চারটি অংশ দেখান: performance element (যেটি আসলে কাজ বেছে নেয় — আগের যেকোনো ধরনের agent), critic (একটি নির্দিষ্ট মানদণ্ডে বলে দেয় কাজ কেমন হলো), learning element (critic-এর মত শুনে performance element-কে বদলায়) আর problem generator (মাঝে মাঝে নতুন কিছু চেষ্টা করতে বলে, যাতে আরও ভালো উপায় খুঁজে পাওয়া যায়)। নতুন রাঁধুনি যেমন প্রতিদিন রান্না করেন (performance), পরিবারের মন্তব্য শোনেন (critic), পরের দিন লবণ কমান (learning), আর মাঝে মাঝে নতুন রেসিপি চেষ্টা করেন (problem generator).
আধুনিক AI-এর বড় অংশ — machine learning — মূলত এই learning element-কে ডেটা দিয়ে চালানোর বিদ্যা। এটি এই কোর্সের মডিউল ১০ থেকে ১২-এর বিষয়।
| ধরন | কী দেখে সিদ্ধান্ত নেয় | শক্তি | দুর্বলতা |
|---|---|---|---|
| Simple reflex | শুধু বর্তমান percept | দ্রুত, সহজ | লুকানো তথ্যে অন্ধ, লুপে আটকে যেতে পারে |
| Model-based | percept + internal state | না-দেখা অংশের হিসাব রাখে | model ভুল হলে ভুল আত্মবিশ্বাস |
| Goal-based | state + লক্ষ্য, ভবিষ্যৎ ভেবে | নমনীয়, লক্ষ্য বদলানো সহজ | “কতটা ভালো” বোঝে না, search ব্যয়বহুল |
| Utility-based | state + utility, প্রত্যাশিত মান | trade-off আর অনিশ্চয়তা সামলায় | সঠিক utility লেখা কঠিন |
| Learning | উপরের যেকোনোটি + অভিজ্ঞতা | অজানা পরিবেশে উন্নত হয় | ডেটা লাগে, ভুল জিনিসও শিখে ফেলতে পারে |
৮ · Turing test আর Chinese Room — বুদ্ধি কি বাইরে থেকে মাপা যায়
১৯৫০ সালে ব্রিটিশ গণিতবিদ Alan Turing দর্শনের জার্নাল Mind-এ প্রকাশ করেন “Computing Machinery and Intelligence” নামের প্রবন্ধ। শুরুর প্রশ্ন: “যন্ত্র কি চিন্তা করতে পারে?” Turing বললেন, “চিন্তা” শব্দটির সংজ্ঞা এত ঝাপসা যে প্রশ্নটি নিয়ে তর্ক নিষ্ফল। তার বদলে তিনি একটি খেলা প্রস্তাব করলেন, যার নাম দিলেন imitation game; পরে এটি Turing test নামে পরিচিত হয়।
খেলাটি এমন: একজন প্রশ্নকর্তা আলাদা ঘরে বসে লিখিত বার্তায় দুজনের সঙ্গে কথা বলেন — একজন মানুষ, একটি যন্ত্র। কাউকে দেখা বা শোনা যায় না। প্রশ্নকর্তা যদি নির্ভরযোগ্যভাবে বলতে না পারেন কোনটি যন্ত্র, তবে যন্ত্রটিকে “চিন্তাশীল” বলার পক্ষে একটি যুক্তি দাঁড়ায়। Turing একটি অনুমানও করেছিলেন: প্রায় পঞ্চাশ বছরের মধ্যে যন্ত্র এত ভালো খেলবে যে সাধারণ প্রশ্নকর্তা পাঁচ মিনিটের কথোপকথনের পর ৭০ শতাংশের বেশি ক্ষেত্রে সঠিকভাবে চিনতে পারবেন না। প্রবন্ধে তিনি নিজেই অনেক আপত্তির উত্তর দিয়েছিলেন, যেমন Ada Lovelace-এর নামে চলা আপত্তি যে যন্ত্র শুধু তা-ই করে যা আমরা বলি।
সমালোচনা
- এটি মানুষের অনুকরণ মাপে, বুদ্ধি নয়। পরীক্ষায় পাস করতে যন্ত্রকে মানুষের ভুলও নকল করতে হয় — যেমন ইচ্ছা করে হিসাবে দেরি করা। অন্যদিকে, যে বুদ্ধি মানুষের মতো নয়, তা পরীক্ষায় ধরা পড়ে না।
- মানুষ সহজে প্রতারিত হন। ১৯৬৬ সালে Joseph Weizenbaum-এর ELIZA প্রোগ্রাম সাধারণ শব্দ-মেলানোর কৌশলে মনোচিকিৎসকের মতো কথা বলত। Weizenbaum বিস্মিত হয়ে লিখেছিলেন, কিছু মানুষ জেনেশুনেও প্রোগ্রামটির সঙ্গে আবেগের সম্পর্ক গড়ে তুলছিলেন। আজকের বড় language model-গুলো (পর্ব ৭০) অনেক বেশি সাবলীল লেখে; কিছু গবেষণায় দাবি করা হয়েছে যে ছোট কথোপকথনে মানুষ অনেক সময় এদের মানুষ বলে ভুল করেন, তবে এসব পরীক্ষার পদ্ধতি আর তার অর্থ নিয়ে বিতর্ক আছে।
- প্রকৌশলে এটি তেমন কাজে লাগে না। AI গবেষকেরা সাধারণত Turing test পাসের জন্য কাজ করেন না; তাঁরা নির্দিষ্ট কাজে মাপা যায় এমন মাপকাঠিতে কাজ করেন।
Chinese Room
১৯৮০ সালে দার্শনিক John Searle “Minds, Brains, and Programs” প্রবন্ধে একটি চিন্তা-পরীক্ষা দেন, যা Chinese Room নামে বিখ্যাত। কল্পনা করুন, একজন মানুষ যিনি চীনা ভাষার একটি অক্ষরও বোঝেন না, একটি বন্ধ ঘরে বসে আছেন। দরজার ফাঁক দিয়ে চীনা ভাষায় লেখা প্রশ্ন আসে। তাঁর কাছে ইংরেজিতে লেখা একটি বিশাল নিয়মের বই আছে: “এই আকারের চিহ্ন এলে ওই আকারের চিহ্ন লিখে বাইরে পাঠাতে হবে।” নিয়ম মেনে তিনি এমন উত্তর পাঠান, যা বাইরে থেকে একজন চীনা-ভাষীর উত্তরের মতোই লাগে। Searle-এর প্রশ্ন: ঘরের ভেতরে কেউ কি চীনা ভাষা বোঝেন? তাঁর মতে না। তাঁর যুক্তি হলো, প্রোগ্রাম শুধু চিহ্নের আকার নিয়ে নিয়ম মানে (syntax), কিন্তু শুধু syntax থেকে অর্থ (semantics) আসে না।
এর বিপক্ষেও জোরালো উত্তর আছে, যেগুলো Searle নিজেই তাঁর প্রবন্ধে আলোচনা করেছিলেন। Systems reply বলে, মানুষটি একা না বুঝলেও মানুষ + নিয়মের বই + পুরো ঘর মিলে যে সিস্টেম, সেটি হয়তো বোঝে — যেমন আপনার মস্তিষ্কের একটি নিউরন বাংলা বোঝে না, কিন্তু আপনি বোঝেন। Robot reply বলে, চিহ্নগুলোকে ক্যামেরা আর হাত-পায়ের মাধ্যমে বাস্তব জগতের সঙ্গে যুক্ত করলে অর্থ তৈরি হতে পারে। প্রায় অর্ধশতাব্দী পরেও দার্শনিকেরা এতে একমত হননি।
যন্ত্র আসলে “বোঝে” বা “চিন্তা করে” কি না, এটি একটি গভীর দার্শনিক প্রশ্ন, আর এই কোর্স তার উত্তর দেওয়ার দাবি করে না। আমরা প্রকৌশলীর প্রশ্ন করব: সিস্টেমটি নির্দিষ্ট কাজে, নির্দিষ্ট মাপকাঠিতে কতটা ভালো করে, কোথায় ব্যর্থ হয়, আর তা কীভাবে যাচাই করা যায়। তাই এই কোর্সে কোনো model “বোঝে” এমন কথা তথ্য হিসেবে লেখা হবে না; লেখা হবে সে কী আউটপুট দেয়, আর কতটা নির্ভুলভাবে।
৯ · AI কী নয় — আর AI সহকারীকে কীভাবে ব্যবহার করবেন
সংবাদ আর বিজ্ঞাপনে AI নিয়ে এত কথা শোনা যায় যে কয়েকটি ভুল ধারণা প্রথমেই দূর করা দরকার।
AI জাদু নয়
প্রতিটি AI সিস্টেমের পেছনে আছে গণিত, ডেটা, কোড আর মানুষের সিদ্ধান্ত। এই কোর্সে আপনি প্রতিটি অংশ নিজ হাতে চালিয়ে দেখবেন — NumPy-র array থেকে ছোট neural network পর্যন্ত।
AI একটিমাত্র প্রোগ্রাম নয়
“AI” কোনো একক বস্তু নয়, অনেক পদ্ধতির একটি ক্ষেত্র: search, logic, সম্ভাবনা, machine learning, neural network. ফসলের রোগ চেনার অ্যাপে হয়তো একটি ছবি-চেনার model, একটি নিয়মের তালিকা আর একটি সাধারণ database একসঙ্গে কাজ করে।
AI নির্ভুল নয়
বেশিরভাগ আধুনিক AI পরিসংখ্যানভিত্তিক, তাই ভুল হবেই — প্রশ্ন হলো কতবার, কোথায়, কার ক্ষতি করে। আত্মবিশ্বাসী সুরে লেখা ভুল উত্তর সবচেয়ে বিপজ্জনক। কোথায় AI কাজ করে আর কোথায় ভুল করে, তা পর্ব ৬-এর বিষয়।
AI নিরপেক্ষ নয়
ডেটায় যে পক্ষপাত আছে, model তা শিখে ফেলতে পারে। Performance measure কে লিখলেন, কার সুবিধা দেখলেন — সেটিও একটি মূল্যবোধের সিদ্ধান্ত। এর অনুশীলন পর্ব ৭২-এ।
আরেকটি কথা: “AGI কবে আসবে” বা “AI কতদিনে মানুষের সব কাজ করবে” — এমন তারিখ নিয়ে বিশেষজ্ঞদের মধ্যেই তীব্র মতভেদ আছে, আর অতীতে AI নিয়ে বহু ভবিষ্যদ্বাণী ভুল প্রমাণিত হয়েছে। এই কোর্স কোনো তারিখের ভবিষ্যদ্বাণী করবে না।
AI-এর যুগে: AI সহকারী দিয়ে AI শেখা
এই কোর্সে কোড লেখার সময় আপনি হয়তো কোনো AI coding assistant ব্যবহার করবেন। সেটি খুব কাজের হতে পারে, কিন্তু ডেটা আর AI-এর কাজে এরা কিছু নির্দিষ্ট ভুল প্রায়ই করে: পুরোনো library API দেয় (যেমন pandas-এর বাদ পড়া append, বা NumPy-র পুরোনো alias np.float, যা NumPy 1.24 থেকে আর নেই); এমন function বা parameter বানিয়ে ফেলে যা আসলে নেই; test ডেটা training-এ মিশিয়ে ফেলে; training ডেটাতেই accuracy মেপে দারুণ ফল দেখায়; warning বা error চেপে যায়; আর দেখতে বিশ্বাসযোগ্য কিন্তু ভুল পরিসংখ্যান লিখে দেয়।
AI সহকারীকে প্রশ্ন করার একটি ভালো কাঠামো — version জানিয়ে দেওয়া, যাচাইয়ের উপায় চাওয়া, আর অনুমান আলাদা করতে বলা:
AI-এর দেওয়া ডেটা বা AI কোড হাতে পেলে — যাচাইয়ের চেকলিস্ট
১০ · এই কোর্সের পথ — কী শিখবেন, কীভাবে পড়বেন
এই কোর্সে ৭৯টি পর্ব, ১৪টি মডিউলে ভাগ করা। ক্রমটি ইচ্ছা করে এভাবে সাজানো: আগে মানচিত্র, তারপর হাতিয়ার (Python, NumPy, pandas, chart আর গণিতের অন্তর্দৃষ্টি), তারপর AI-এর ক্লাসিক ধারণা (search, logic, সম্ভাবনা), তারপর ডেটা থেকে শেখা, তারপর আধুনিক AI, শেষে ক্যাপস্টোন আর পরীক্ষার প্রস্তুতি।
| মডিউল | পর্ব | কী থাকছে |
|---|---|---|
| ১ · AI-এর মানচিত্র | ১–৬ | AI কী, ইতিহাস, তিন পথ, AI/ML/DL/GenAI-এর সম্পর্ক, সমস্যার ধরন, বাস্তবের সীমা |
| ২ · Python দিয়ে কাজের পরিবেশ | ৭–১২ | install, uv, venv, Jupyter, ডেটার জন্য Python, ফাইলের ধরন, পরিচ্ছন্ন আর পুনরুৎপাদনযোগ্য কাজ |
| ৩ · NumPy | ১৩–১৯ | array, indexing, broadcasting, random, linear algebra, ছবি, গতি |
| ৪ · pandas | ২০–২৭ | DataFrame, পড়া-লেখা, filter, পরিষ্কার, groupby, merge, time series, বড় ডেটা |
| ৫ · Visualization | ২৮–৩২ | matplotlib, chart বাছাই, seaborn, interactive chart, সৎ chart |
| ৬ · AI-এর গণিত | ৩৩–৩৮ | vector, gradient descent, সম্ভাবনা, distribution, পরিসংখ্যান, entropy |
| ৭ · Search | ৩৯–৪৪ | state space, BFS/DFS, A*, minimax, constraint, local search |
| ৮ · জ্ঞান, যুক্তি, পরিকল্পনা | ৪৫–৪৯ | propositional ও first-order logic, rule-based system, knowledge graph, planning |
| ৯ · অনিশ্চয়তা | ৫০–৫৪ | Bayes, Naive Bayes, Bayesian network, Markov model, expected utility |
| ১০ · ডেটা থেকে শেখা | ৫৫–৬১ | শেখার ধরন, data leakage, kNN, linear ও logistic regression, metric, overfitting |
| ১১ · scikit-learn | ৬২–৬৭ | EDA, feature engineering, pipeline, clustering, cross-validation, বাংলা লেখার ডেটা |
| ১২ · আধুনিক AI | ৬৮–৭২ | neural network, embedding, LLM-এর কাজের ধরন, pretrained model, দায়িত্বশীল AI |
| ১৩ · ক্যাপস্টোন | ৭৩–৭৪ | বাংলা পণ্য-রিভিউ থেকে পূর্ণ প্রকল্প, AI প্রকল্পের জীবনচক্র |
| ১৪ · পরীক্ষা ও ইন্টারভিউ | ৭৫–৭৯ | numerical, MCQ, লিখিত ও ভাইভা, Python-ডেটা আর AI-এর ইন্টারভিউ প্রশ্ন |
পুরো কোর্সে একটি উদাহরণ ধীরে ধীরে বড় হবে: “বাজারঘর”, একটি কাল্পনিক অনলাইন দোকান। তার পণ্য, অর্ডার, জেলাভিত্তিক বিক্রি, ডেলিভারির সময় আর বাংলায় লেখা ক্রেতার রিভিউ — সবই কোর্সের নিজস্ব seed দেওয়া কোডে তৈরি, তাই প্রত্যেক পাঠক একই সংখ্যা পাবেন। এর পাশে scikit-learn-এর সঙ্গে আসা Iris বা digits-এর মতো পরিচিত public dataset-ও ব্যবহার করা হবে।
কী জানা থাকা দরকার
শুরুর জন্য Python-এর মৌলিক জ্ঞান লাগবে: variable, list, dict, loop, if-else, function. এই পর্বের কোডগুলো পড়ে যদি মোটামুটি বুঝতে পারেন, তাহলে আপনি প্রস্তুত। না পারলে আগে ABCL TECH-এর Python প্রোগ্রামিং কোর্স-এর প্রথম দিকের পর্বগুলো দেখে নিন, বিশেষ করে function আর dict. এই কোর্স Python ভাষাটি নতুন করে শেখাবে না; দরকারি অংশ পর্ব ৯-এ ঝালাই করা হবে। গণিতে স্কুলের বীজগণিত যথেষ্ট; বাকিটা মডিউল ৬-এ অন্তর্দৃষ্টি দিয়ে শেখানো হবে।
পাতার কোড ফোন থেকেও চালানো যায়। NumPy, pandas, matplotlib আর scikit-learn-ও এভাবে চলবে; প্রথমবার কোনো বড় package লোড হতে কয়েক সেকেন্ড বেশি লাগবে। পর্ব ৭ থেকে আপনি নিজের কম্পিউটারে আসল কাজের পরিবেশ বানাবেন। যেসব টুল ব্রাউজারে চলে না (Jupyter, uv, বড় model), সেগুলোর আউটপুট আসল run থেকে নেওয়া, আর version সহ লেখা থাকবে।
কীভাবে পড়বেন
- প্রতিটি কোড চালান, তারপর বদলান। একটি সংখ্যা বা একটি নিয়ম বদলে আগে অনুমান করুন কী হবে, তারপর চালিয়ে মিলিয়ে নিন। এটিই সবচেয়ে দ্রুত শেখার উপায়।
- Stepper-গুলো ধীরে দেখুন। প্রতিটি ধাপে পরের ধাপের মান আগে নিজে বলার চেষ্টা করুন।
- হাতে হিসাব করুন। পরীক্ষা আর ইন্টারভিউতে প্রায়ই ছোট সংখ্যা দিয়ে হিসাব করতে বলা হয় — যেমন উপরের table-এর সারি বা route-এর expected cost.
- ভাবনার প্রশ্ন আর অনুশীলন বাদ দেবেন না। এগুলোতেই ইতিহাস, trade-off আর গভীরতা।
- নিয়মিত পড়ুন। একদিনে দশটি পর্বের চেয়ে প্রতিদিন একটি পর্ব বেশি কাজে দেয়।
পরীক্ষা ও ইন্টারভিউতে: এই পর্বের বিষয় থেকে সাধারণত যে ধরনের প্রশ্ন আসে —
- Rational agent কী? — যে agent প্রতিটি percept sequence-এর জন্য এমন কাজ বেছে নেয়, যা তার জানা তথ্যের ভিত্তিতে performance measure-এর প্রত্যাশিত মান সবচেয়ে বেশি করে।
- একটি নির্দিষ্ট agent-এর PEAS লিখুন। — Performance measure, Environment, Actuators, Sensors আলাদা করে লিখুন; P-তে একাধিক ও পরস্পরবিরোধী লক্ষ্য উল্লেখ করলে উত্তর ভালো হয়।
- Simple reflex আর model-based agent-এর পার্থক্য? — প্রথমটি শুধু বর্তমান percept দেখে; দ্বিতীয়টি internal state রেখে না-দেখা অংশের হিসাব রাখে।
- Goal আর utility-র পার্থক্য? — Goal শুধু হ্যাঁ/না বলে; utility প্রতিটি ফলকে “কতটা ভালো” সংখ্যা দেয়, তাই trade-off আর অনিশ্চয়তা সামলাতে পারে।
- Turing test-এর একটি সমালোচনা বলুন। — এটি মানুষের অনুকরণ মাপে, বুদ্ধি নয়; Searle-এর Chinese Room যুক্তি দেয় যে চিহ্ন সাজানো (syntax) থেকে অর্থ (semantics) আসে না।
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিয়ে নিজে কিছুক্ষণ ভাবুন — তারপর “→ উত্তর” চাপুন।
প্র ০১মানুষের মতো চিন্তা করা যন্ত্র বানানোই কি AI-এর আসল লক্ষ্য হওয়া উচিত নয়? Russell ও Norvig কেন “যুক্তিসংগত আচরণ” বেছে নিলেন?
প্রশ্নটি স্বাভাবিক, কারণ আমাদের চেনা একমাত্র “বুদ্ধিমান” সত্তা মানুষ। AI-এর শুরুর দিকে অনেক গবেষক ঠিক এই পথেই হেঁটেছিলেন। ১৯৫০-৬০-এর দশকে Allen Newell আর Herbert Simon General Problem Solver বানিয়েছিলেন, আর শুধু সমস্যা সমাধান হলো কি না দেখেননি — প্রোগ্রামের ধাপগুলো মানুষ জোরে জোরে ভাবার সময় যে ধাপ বলেন, তার সঙ্গে মিলিয়ে দেখেছিলেন। এই ধারা থেকে cognitive science নামে একটি আলাদা বিদ্যাই গড়ে উঠেছে, যা আজও মনোবিজ্ঞান আর স্নায়ুবিজ্ঞানের সঙ্গে যুক্ত।
কিন্তু প্রকৌশলের লক্ষ্য হিসেবে “মানুষের মতো” কথাটির তিনটি সমস্যা আছে। প্রথমত, মানুষের মন কীভাবে কাজ করে, তা আমরা এখনো পুরোপুরি জানি না; অজানা জিনিসের নকল বানানো কঠিন। দ্বিতীয়ত, মানুষ নিজেই অনেক ভুল করেন — সম্ভাবনা হিসাবে, স্মৃতিতে, পক্ষপাতে। Daniel Kahneman ও Amos Tversky-র মতো গবেষকেরা এমন বহু ধারাবাহিক ভুল (cognitive bias) নথিভুক্ত করেছেন। একটি চিকিৎসা-সহায়ক বা ব্যাংকের ঝুঁকি-নির্ণয় সিস্টেম মানুষের এই ভুলগুলোও নকল করুক, এটি আমরা চাই না। তৃতীয়ত, “মানুষের মতো” মাপতে মানুষ লাগে, তাই এটি গাণিতিকভাবে পরীক্ষা করা কঠিন।
Rational agent দৃষ্টিভঙ্গি এই তিনটি সমস্যা এড়ায়: লক্ষ্য একটি সংখ্যায় লেখা যায়, যেকোনো পদ্ধতি (logic, সম্ভাবনা, শেখা) ব্যবহার করা যায়, আর ফল মাপা যায়। Russell ও Norvig-এর বিমান-পাখির তুলনাটি এখানে মনে রাখার মতো: Wright ভাইয়েরা সফল হয়েছিলেন যখন পাখির নকল ছেড়ে বাতাসের গতিবিদ্যা বুঝেছিলেন।
তবে বিতর্ক শেষ হয়নি। কিছু গবেষক মনে করেন, মানুষের মতো সাধারণ বুদ্ধি বুঝতে হলে মস্তিষ্ক থেকেই অনুপ্রেরণা নিতে হবে — আধুনিক neural network-এর মূল ধারণাও এসেছিল স্নায়ুকোষের একটি সরল মডেল থেকে।
মূল উপলব্ধি: লক্ষ্য বাছাই একটি প্রকৌশল সিদ্ধান্ত। “মানুষের মতো” আর “যুক্তিসংগত” আলাদা মাপকাঠি; কোনটি নিচ্ছেন, তা না জানলে “AI কতটা ভালো” প্রশ্নের অর্থই থাকে না।
প্র ০২আজকের chatbot-গুলো অনেক কথোপকথনে মানুষের মতো লেখে। তাহলে কি Turing test পাস হয়ে গেছে, আর তার মানে কি যন্ত্র চিন্তা করছে?
প্রথমে মনে রাখা দরকার, Turing test কোনো একক, মানসম্মত পরীক্ষা নয়। Turing ১৯৫০ সালে একটি খেলার ধারণা দিয়েছিলেন, কিন্তু প্রশ্নকর্তা কে হবেন, কতক্ষণ কথা হবে, কী বিষয়ে, মানুষ প্রতিযোগীটি কে — এসব খুঁটিনাটি নির্দিষ্ট করেননি। তাই “পাস করেছে” দাবির অর্থ নির্ভর করে পরীক্ষাটি কীভাবে সাজানো হয়েছিল তার ওপর।
ইতিহাস এখানে শিক্ষণীয়। ১৯৬৬ সালের ELIZA কোনো বোঝাপড়া ছাড়াই, শুধু শব্দ মিলিয়ে প্রশ্ন ফিরিয়ে দিয়ে কিছু মানুষকে বিশ্বাস করিয়েছিল যে সে মন দিয়ে শুনছে। এর থেকে “ELIZA effect” কথাটি এসেছে — যন্ত্রের সাবলীল আচরণে মানুষ সহজেই বুদ্ধি বা অনুভূতি আরোপ করেন। ১৯৯১ সাল থেকে Loebner Prize নামে একটি বার্ষিক প্রতিযোগিতায় চ্যাটবটগুলো Turing test-ধাঁচের পরীক্ষা দিত; সমালোচকেরা বলতেন, বিজয়ী প্রোগ্রামগুলো প্রায়ই প্রশ্ন এড়িয়ে, রসিকতা করে বা টাইপিং-ভুল নকল করে প্রশ্নকর্তাকে বিভ্রান্ত করত, যা বুদ্ধির চেয়ে কৌশলের পরীক্ষা।
আধুনিক বড় language model অনেক বেশি সাবলীল। কিছু গবেষণায় দাবি করা হয়েছে যে ছোট লিখিত কথোপকথনে মানুষ এদের প্রায়ই মানুষ বলে ভুল করেন। কিন্তু এর ব্যাখ্যা নিয়ে দুটি মত আছে। এক পক্ষ বলেন, এটি দেখায় যে Turing-এর মাপকাঠি পূরণ হচ্ছে। অন্য পক্ষ বলেন, এটি বরং দেখায় যে পরীক্ষাটি দুর্বল — কারণ একই model সাধারণ হিসাবে বা নিজের দেওয়া তথ্য মিলিয়ে দেখায় এমন ভুল করতে পারে যা একজন মানুষ করতেন না। পর্ব ৭০-এ দেখবেন এই model-গুলো আসলে কী করে: পরের token-এর সম্ভাবনা অনুমান।
আর “চিন্তা করছে কি না” — এটি Searle-এর Chinese Room-এর প্রশ্নই। বাইরে থেকে আচরণ দেখে ভেতরের বোঝাপড়া প্রমাণ করা যায় কি না, দর্শনে তা আজও অমীমাংসিত।
মূল উপলব্ধি: সাবলীল কথা বলা আর নির্ভরযোগ্যভাবে সঠিক হওয়া আলাদা গুণ। প্রকৌশলী হিসেবে আমাদের প্রশ্ন “মানুষের মতো লাগে কি না” নয়, বরং “নির্দিষ্ট কাজে কতটা নির্ভুল, আর ভুল হলে কীভাবে ধরা যায়”।
প্র ০৩Performance measure ভুলভাবে লিখলে কী হয়? একটি agent কি “নিয়ম মেনেই” ক্ষতিকর আচরণ করতে পারে?
হ্যাঁ, এবং এটি AI-এর সবচেয়ে গুরুত্বপূর্ণ ব্যবহারিক সমস্যাগুলোর একটি। Russell ও Norvig vacuum world দিয়েই একটি উদাহরণ দেন: performance measure যদি হয় “কতটুকু ময়লা শুষে নিল”, তবে একটি যুক্তিসংগত agent ময়লা শুষে আবার ফেলে দিয়ে আবার শুষতে পারে — মাপকাঠিতে সে দারুণ, অথচ ঘর কখনো পরিষ্কার হলো না। তাই তাঁরা পরামর্শ দেন, মাপকাঠি লিখুন পরিবেশে আপনি কী অবস্থা চান তা দিয়ে, agent কীভাবে আচরণ করবে বলে ভাবছেন তা দিয়ে নয়।
অর্থনীতিতে এর একটি পুরোনো নাম আছে। ব্রিটিশ অর্থনীতিবিদ Charles Goodhart ১৯৭০-এর দশকে মুদ্রানীতি প্রসঙ্গে একটি পর্যবেক্ষণ দেন, যা পরে সাধারণ রূপে প্রচলিত হয়: “কোনো মাপকাঠি যখন লক্ষ্য হয়ে যায়, তখন সেটি আর ভালো মাপকাঠি থাকে না।” এই সহজ রূপটি সাধারণত নৃবিজ্ঞানী Marilyn Strathern-এর লেখার সঙ্গে যুক্ত করা হয়। আমাদের পরিচিত উদাহরণ: স্কুল যদি শুধু পাসের হার দিয়ে মাপা হয়, তবে শেখানোর বদলে “সাজেশন” মুখস্থ করানো বেড়ে যেতে পারে।
AI গবেষণায় একে বলা হয় specification gaming বা reward hacking. গবেষকেরা এমন অনেক ঘটনার তালিকা প্রকাশ করেছেন, যেখানে শেখা agent মাপকাঠির ফাঁক খুঁজে পেয়েছে — যেমন একটি নৌকা-দৌড়ের ভিডিও গেমে দৌড় শেষ না করে একই জায়গায় ঘুরে ঘুরে বোনাস পয়েন্ট তোলা, যার বিবরণ OpenAI ২০১৬ সালে প্রকাশ করেছিল।
আমাদের ট্রাফিক সিগন্যালে ভাবুন: মাপকাঠি যদি হয় “প্রতি ঘণ্টায় কতগুলো গাড়ি পার হলো”, তবে agent হয়তো প্রধান সড়ককে সারাক্ষণ সবুজ রাখবে, পথচারী আর ছোট গলির রিকশা অনন্তকাল অপেক্ষা করবে। মাপকাঠিতে কেউ না থাকলে, agent-এর চোখে তার কোনো অস্তিত্বই নেই।
মূল উপলব্ধি: Agent ঠিক তা-ই অপটিমাইজ করে যা আপনি মাপেন, যা চান তা নয়। Performance measure লেখা AI প্রকৌশলের সবচেয়ে কঠিন আর সবচেয়ে দায়িত্বপূর্ণ ধাপ।
প্র ০৪দাবায় কম্পিউটার যখন বিশ্বচ্যাম্পিয়নকে হারাল, অনেকে বললেন “এটা আসল বুদ্ধি নয়, শুধু হিসাব।” এই “AI effect” কী শেখায়?
১৯৯৭ সালে IBM-এর Deep Blue তৎকালীন বিশ্বচ্যাম্পিয়ন Garry Kasparov-কে একটি ছয় খেলার ম্যাচে হারায়। দশকের পর দশক দাবাকে বুদ্ধির চূড়ান্ত পরীক্ষা মনে করা হতো; Herbert Simon ১৯৫০-এর দশকেই ভবিষ্যদ্বাণী করেছিলেন যে দশ বছরের মধ্যে কম্পিউটার দাবায় বিশ্বচ্যাম্পিয়ন হবে — অনুমানটি প্রায় তিন দশক দেরিতে সত্য হয়। কিন্তু জয়ের পর অনেকেই বললেন, Deep Blue তো শুধু বিশাল গতিতে চাল খুঁজেছে, সেটি “বোঝে” না।
এই প্রবণতা বারবার দেখা গেছে: হাতের লেখা পড়া (OCR), বানান-সংশোধন, সবচেয়ে ছোট পথ খোঁজা বা spam ধরা একসময় AI গবেষণার বিষয় ছিল, আজ সাধারণ সফটওয়্যার।
এই প্রবণতা থেকে দুটি শিক্ষা। প্রথমত, কোনো কাজ যন্ত্র কীভাবে করে, তা জানলে আমরা সেটিকে “যান্ত্রিক” বলে মনে করি — রহস্য চলে গেলে “বুদ্ধি” শব্দটিও যেন সরে যায়। এটি হয়তো আমাদের বুদ্ধির ধারণা সম্পর্কে যতটা বলে, যন্ত্র সম্পর্কে ততটা নয়। দ্বিতীয়ত, ঠিক এই কারণে AI-এর সাফল্য প্রায়ই অদৃশ্য থাকে, আর ব্যর্থতা খবর হয়।
এর উল্টো দিকও আছে। বিজ্ঞাপনে আজ এমন সাধারণ নিয়মভিত্তিক সফটওয়্যারকেও “AI-চালিত” বলা হয়, যেখানে কোনো শেখা বা অনিশ্চয়তার হিসাব নেই। তাই “AI” শব্দ দেখলেই প্রশ্ন করুন: agent-টি কী percept পায়, কোন action নেয়, কোন মাপকাঠিতে ভালো, আর তা কীভাবে যাচাই করা হয়েছে?
মূল উপলব্ধি: “AI” একটি চলমান লক্ষ্য। নাম নিয়ে তর্কের চেয়ে কাজ, মাপকাঠি আর যাচাইয়ের প্রশ্ন বেশি ফলপ্রসূ — আর PEAS ঠিক সেই প্রশ্নগুলোই করে।
প্র ০৫ঘরের thermostat বা পানির ট্যাংকের স্বয়ংক্রিয় সুইচও তো percept নিয়ে action নেয়। তাহলে কি এগুলোও AI agent? সাধারণ প্রোগ্রাম আর AI-এর সীমারেখা কোথায়?
সংজ্ঞা অনুযায়ী, হ্যাঁ — এগুলো agent. ছাদের পানির ট্যাংকের float switch পানির উচ্চতা টের পায় (percept), আর পাম্প চালু বা বন্ধ করে (action). এটি একটি নিখুঁত simple reflex agent, একটিমাত্র condition–action rule সহ। John McCarthy ১৯৭৯ সালের একটি প্রবন্ধে ইচ্ছা করেই উসকানিমূলকভাবে লিখেছিলেন, এমনকি একটি thermostat-এর আচরণও “বিশ্বাস” শব্দ দিয়ে বর্ণনা করা যায় — “ঘর খুব গরম”। তাঁর উদ্দেশ্য ছিল দেখানো যে মানসিক শব্দগুলো যন্ত্রের বর্ণনায় কখন কাজের আর কখন নয়।
Russell ও Norvig-এর অবস্থানটি এখানে খুব পরিষ্কার: agent দৃষ্টিভঙ্গি একটি বিশ্লেষণের হাতিয়ার, জগৎকে “agent” আর “agent নয়” এই দুই ভাগে ভাগ করার নিয়ম নয়। একটি ক্যালকুলেটরকেও agent হিসেবে বর্ণনা করা যায়, কিন্তু তাতে নতুন কিছু বোঝা যায় না। Agent কাঠামো কাজে লাগে তখনই, যখন পরিবেশ জটিল, সিদ্ধান্তের অনেক বিকল্প আছে, আর ভালো-খারাপের হিসাব সহজ নয়।
তাহলে সীমারেখা কোথায়? এটি ধূসর, আর সৎভাবে বললে কোনো সর্বসম্মত রেখা নেই। কিছু ব্যবহারিক লক্ষণ সাহায্য করে। সিস্টেমটি কি অনিশ্চয়তার মধ্যে কাজ করে? বিপুল সংখ্যক সম্ভাব্য অবস্থা কি আছে, যেখানে সব নিয়ম হাতে লেখা অসম্ভব (অংশ ৬-এর table-এর হিসাব মনে করুন)? সিস্টেম কি ডেটা থেকে নিজের আচরণ বদলায়? লক্ষ্যে পৌঁছাতে কি সামনে ভেবে পরিকল্পনা করে? এর যত বেশি প্রশ্নের উত্তর হ্যাঁ, সিস্টেমটিকে AI বলার যুক্তি তত জোরালো।
একটি সাধারণ ট্যাংকের সুইচে চারটির উত্তরই না। একটি ফসলের রোগ চেনার অ্যাপে প্রথম তিনটির উত্তর হ্যাঁ। একটি রাইড-শেয়ারিং dispatcher-এ সম্ভবত চারটিরই।
মূল উপলব্ধি: “এটা কি AI?” প্রশ্নের চেয়ে “এটা কোন ধরনের agent, কোন পরিবেশে?” প্রশ্নটি বেশি কাজের। সাধারণ সমস্যার জন্য সাধারণ সমাধানই সেরা — জটিলতা আসা উচিত শুধু সমস্যার প্রয়োজনে।
অনুশীলন
হাতে হিসাব, নকশা, আউটপুট অনুমান আর শ্রেণিবিভাগ — চার ধরনের কাজ।
-
Table-এর হিসাব (numerical): একটি agent প্রতি ধাপে ৩ রকম percept পেতে পারে, আর চলে ৪ ধাপ। Table-driven agent-এর টেবিলে কতটি সারি লাগবে? দুই ঘরের vacuum world-এ (|P| = ৪) ৪ ধাপে কত? প্রতি ধাপ বাড়লে মোটামুটি কত গুণ বাড়ে?
সূত্র: সারি = ∑t=1T |P|t.
|P| = ৩, T = ৪: ৩ + ৯ + ২৭ + ৮১ = ১২০.
|P| = ৪, T = ৪: ৪ + ১৬ + ৬৪ + ২৫৬ = ৩৪০. (কোডের
table_rows(4, 4)চালালেও 340 আসে।)প্রতি ধাপ বাড়লে সবচেয়ে বড় পদটি |P| গুণ হয়, আর সেটিই যোগফলের বেশিরভাগ, তাই মোট সারি মোটামুটি |P| গুণ বাড়ে — vacuum world-এ প্রায় ৪ গুণ (৮৪ থেকে ৩৪০)। একে বলে exponential বৃদ্ধি; search-এর মডিউলে (পর্ব ৪০) এই একই বৃদ্ধি আবার দেখবেন।
-
নকশা ও সমালোচনা: “বাজারঘর” নামের কাল্পনিক অনলাইন দোকান একটি agent চায়, যে প্রতিটি অর্ডারের জন্য ঠিক করবে কোন ডেলিভারি কর্মী সেটি নেবেন। এর PEAS লিখুন। তারপর একজন ম্যানেজার প্রস্তাব দিলেন: “Performance measure হোক শুধু প্রতিদিন কতগুলো ডেলিভারি হলো।” এই প্রস্তাবের অন্তত দুটি সমস্যা বলুন।
P: সময়মতো ডেলিভারির হার, গড় ডেলিভারির সময়, কর্মীদের মধ্যে কাজের ন্যায্য ভাগ, ভাঙা বা হারানো পণ্য কম, জ্বালানি খরচ কম। E: জেলার রাস্তা, যানজট, আবহাওয়া, কর্মী, ক্রেতার ঠিকানা। A: অর্ডার কোন কর্মীকে দেওয়া, ডেলিভারির ক্রম ঠিক করা। S: অর্ডারের তালিকা, ঠিকানা, কর্মীদের অবস্থান, আগের দিনের ডেলিভারির সময়।
সমস্যা: (১) শুধু সংখ্যা মাপলে agent কাছের, সহজ অর্ডারগুলো আগে দেবে; দূরের উপজেলার ক্রেতা বারবার পিছিয়ে পড়বেন। (২) কর্মীদের ওপর অতিরিক্ত চাপ পড়বে, কারণ ক্লান্তি বা নিরাপত্তা মাপকাঠিতে নেই। (৩) তাড়াহুড়োয় পণ্য ভাঙা বা ভুল ঠিকানায় যাওয়া বাড়তে পারে, কারণ মান মাপা হচ্ছে না। এটি Goodhart-এর পর্যবেক্ষণের একটি উদাহরণ।
-
আউটপুট অনুমান: অংশ ৪-এর
vacuum_reflex.py-তে তিনটি বদল করা হলো:world = {"A": "Clean", "B": "Dirty"}, শুরুরlocation = "B", আর লুপrange(1, 4). চালানোর আগে তিনটি লাইনের আউটপুট লিখুন।আসল run-এর আউটপুট:
1: B,Dirty -> Suck A=C B=C score=2 2: B,Clean -> Left A=C B=C score=4 3: A,Clean -> Right A=C B=C score=6ধাপ ১-এ B ময়লা, তাই Suck; এখন দুটি ঘরই পরিষ্কার, তাই প্রথম ধাপেই ২ পয়েন্ট। এরপর agent শুধু দুলতে থাকে, প্রতি ধাপে ২ করে যোগ হয়। সাধারণ ভুল: অনেকে ধাপ ১-এ score ১ লেখেন, ভুলে যান যে A আগেই পরিষ্কার ছিল।
-
শ্রেণিবিভাগ ও agent বাছাই: একটি কাল্পনিক সিস্টেম বিশ্ববিদ্যালয় ভর্তি বা চাকরির পরীক্ষার OMR শিট দেখে নম্বর দেয়। এর পরিবেশকে ছয়টি বৈশিষ্ট্যে ভাগ করুন, আর বলুন কোন ধরনের agent যথেষ্ট। তারপর একই প্রশ্ন করুন একটি agent-এর জন্য, যে প্রতি সপ্তাহে বাজারঘরের কোন পণ্য কত পরিমাণ মজুত রাখবে তা ঠিক করে।
OMR পরীক্ষক: fully observable (পুরো শিট স্ক্যান হয়, যদিও আবছা দাগে অনিশ্চয়তা থাকতে পারে), কার্যত deterministic, episodic (একটি শিটের নম্বর অন্যটিকে প্রভাবিত করে না), static, discrete (প্রতিটি বৃত্ত ভরাট বা ফাঁকা), single-agent. এখানে simple reflex agent যথেষ্ট: “এই বৃত্ত ভরাট আর উত্তরমালায় এটিই সঠিক হলে নম্বর যোগ।” দুটি বৃত্ত ভরাট বা আবছা দাগের জন্য মানুষের কাছে পাঠানোর নিয়ম রাখা ভালো।
মজুত agent: partially observable (আগামী সপ্তাহের চাহিদা অজানা), stochastic, sequential (এ সপ্তাহে বেশি কিনলে পরের সপ্তাহে গুদাম ভরা), dynamic (দাম আর চাহিদা বদলায়), পরিমাণ discrete হলেও কার্যত প্রায় continuous, আর multi-agent (সরবরাহকারী, প্রতিযোগী দোকান)। এখানে লাগবে utility-based agent (লাভ বনাম পণ্য শেষ হয়ে যাওয়ার ক্ষতি), আর আদর্শভাবে learning agent, যে আগের বিক্রির ডেটা থেকে চাহিদার অনুমান উন্নত করে।
নিজেকে যাচাই করুন
ভুল হলে কারণসহ ব্যাখ্যা পাবেন, আবার চেষ্টাও করতে পারবেন।
ক্রমএকটি agent-এর এক চক্রের ধাপগুলো সঠিক ক্রমে সাজান (▲▼ চেপে সরান)
- 🌍 পরিবেশ একটি অবস্থায় আছে
- 📷 Sensor পরিবেশ থেকে percept নেয়
- 🧠 Agent program percept (আর internal state) দেখে action বেছে নেয়
- 💡 Actuator পরিবেশে action প্রয়োগ করে
- 📊 পরিবেশ বদলায়, আর performance measure নতুন অবস্থার হিসাব যোগ করে
Russell ও Norvig-এর চার দৃষ্টিভঙ্গির ছকে Turing test কোন ঘরে পড়ে?
- মানুষের মতো চিন্তা
- যুক্তিসংগত চিন্তা
- মানুষের মতো আচরণ
- যুক্তিসংগত আচরণ
একটি স্বয়ংক্রিয় ট্রাফিক সিগন্যালের PEAS বর্ণনায় “গড় অপেক্ষার সময় কম আর পথচারীর নিরাপত্তা” কোন অংশে পড়ে?
- Environment
- Performance measure
- Actuators
- Sensors
একটি Sudoku সমাধানকারী প্রোগ্রামের পরিবেশের সবচেয়ে সঠিক বর্ণনা কোনটি?
- Fully observable, deterministic, static, discrete, single-agent
- Partially observable, stochastic, static, discrete, single-agent
- Fully observable, deterministic, dynamic, discrete, multi-agent
- Fully observable, deterministic, static, continuous, single-agent
একটি table-driven agent প্রতি ধাপে ৪ রকম percept পেতে পারে আর চলে ৩ ধাপ। প্রতিটি সম্ভাব্য percept sequence-এর জন্য একটি সারি রাখলে টেবিলে কতটি সারি লাগবে?
- ১২
- ৬৪
- ২০
- ৮৪
John Searle-এর Chinese Room যুক্তির মূল দাবি কোনটি?
- কম্পিউটার কখনো চীনা ভাষায় সঠিক উত্তর দিতে পারবে না
- শুধু চিহ্নের নিয়ম মেনে চলা (syntax) থেকে অর্থ বোঝা (semantics) আসে না
- মানুষটি না বুঝলেও পুরো ঘর মিলে সিস্টেমটি চীনা ভাষা বোঝে
- যন্ত্রকে ভাষা শেখাতে নিয়মের বই সবচেয়ে কার্যকর পদ্ধতি
একটি রোবট শুধু নিজের সামনের ঘরটি দেখতে পায়। কোন ঘর আগে পরিষ্কার করেছে তা মনে রেখে অপ্রয়োজনীয় চলা এড়াতে চাইলে কমপক্ষে কোন ধরনের agent লাগবে?
- Simple reflex agent
- Table-driven agent, প্রতিটি ইতিহাসের জন্য একটি সারি
- Model-based reflex agent
- Learning agent
দুটি পথই সময়মতো অফিসে পৌঁছায়। একটির ভাড়া ১০০ টাকা ও প্রত্যাশিত সময় ৩৬.৫ মিনিট, অন্যটির ৪০ টাকা ও ৬৩ মিনিট। এদের মধ্যে বাছাইয়ের জন্য কোন ধরনের agent সবচেয়ে উপযুক্ত?
- Utility-based agent
- Goal-based agent
- Simple reflex agent
- Model-based reflex agent
শব্দকোষ
লেখার মধ্যে ডটেড দাগ দেওয়া শব্দে মাউস রাখুন বা চাপুন — অর্থ দেখাবে। এই পর্বের সব নতুন শব্দ এখানে একসাথে:
মনে রাখুন
- AI-এর সর্বসম্মত সংজ্ঞা নেই; এই কোর্সের কাজের সংজ্ঞা হলো rational agent — জানা তথ্যে প্রত্যাশিত সেরা ফলের কাজ বেছে নেওয়া।
- যেকোনো AI সমস্যা লিখুন PEAS দিয়ে; সবচেয়ে কঠিন আর গুরুত্বপূর্ণ অংশ performance measure.
- পরিবেশের ছয় প্রশ্ন: observable, deterministic, episodic, static, discrete, single-agent — বাস্তবের বেশিরভাগ সমস্যা কঠিন দিকে।
- পাঁচ ধরনের agent: simple reflex → model-based → goal-based → utility-based → learning; table-driven agent ঘাতে বাড়ে বলে অচল।
- Turing test অনুকরণ মাপে, Chinese Room প্রশ্ন তোলে বোঝাপড়া নিয়ে; AI জাদু নয়, একক প্রোগ্রাম নয়, নির্ভুলও নয় — তাই সবসময় মেপে ও যাচাই করে দেখুন।
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- পর্ব ০২ · AI-এর ইতিহাস — Turing, Dartmouth, শীতকাল আর deep learning-এর উত্থানপরবর্তী পর্বAI-এর উত্থান-পতনের ইতিহাস, তারিখ আর শিক্ষা।
- AI-এর ভিত্তি আর Python for AI · কোর্স হোম৭৯টি পর্ব১৪টি মডিউলের পুরো রোডম্যাপ।
- Python প্রোগ্রামিংপূর্বপ্রস্তুতিএই কোর্সের আগে বা পাশাপাশি — Python ভাষার পূর্ণ কোর্স।
- Data Structures & Algorithmsপাশের ট্র্যাকGraph, BFS/DFS আর complexity — AI-এর search মডিউলের ভিত্তি।
- Computer Fundamentals & ICTশুরুর ভিত্তিকম্পিউটার, ডেটা আর সফটওয়্যারের মৌলিক ধারণা।