শেখার ক্ষেত্রে কোন ধরণের মাইন্ডসেট সবচেয়ে কার্যকর? (গেম ডেভেলোপমেন্টে রিইনফোর্সমেন্ট লার্নিং: পর্ব-১)

আসসালামু আলাইকুম। আমাদের সবার শেখার আলাদা আলাদা ধরণ আছে, তাই না? কেউ শর্টকাটে খুব দ্রুত শিখে নেয়। কেউ এক্সপ্লোর করতে ভালোবাসে। কারো কারো সময় লাগে, তবে লেগে থাকে। আবার কারো কারো নতুন কিছু শেখাতে তেমন আগ্রহ নেই।

বাস্তব জীবনে কারা সবচেয়ে ভালো করে? কঠিন প্রশ্ন সত্যি বলতে। প্যাকম্যানের মত একটা সিম্পল গেম কি এর উত্তর পেতে সাহায্য করতে পারে? আমাদের IUT EEE-র Artificial Intelligence and Machine Learning কোর্সের প্রোজেক্ট হিসেবে এটা নিয়ে কাজ করার সুযোগ হয়েছিলো।

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

আমাদের টিম

এই প্রোজেক্টে আমাদের টিমে ছিলাম আমি তাহমিদ হাসান মুত্তাকী এবং আমার তিনজন ক্লাসমেট- সাদমান আস্তার, রাগিব ইয়াসার এবং মাহদি কামাল। কোর্স ইন্সট্রাক্টর ছিলেন মোঃ আরেফিন রাব্বি ইমন স্যার।

এখানে যা আছে, এবং পরবর্তী আরো এক অথবা দুই পর্বে যা কিছু থাকবে এই সবকিছু নিয়ে কাজ করা শুধু ৩০০ মার্কের কোর্সের মধ্যে ৩০ নম্বরের জন্য! এইতো জীবন…

প্যাকম্যান কীভাবে শিখবে? (Q-Learning)

এখন মানুষ কীভাবে শিখে? শেখার অনেক পদ্ধতি আছে, তবে জীবনে শেখার সবচেয়ে কার্যকর পদ্ধতি হলো মারা খেয়ে শেখা- আরেকটু ভদ্র ভাষায় ভুল থেকে শেখা। তো ঠিক এই পদ্ধতিটাই আমরা অনুকরণ করব।

কীরকম? আমাদের এজেন্ট জাস্ট চারটা কাজ করতে পারে- ওপরে, নিচে, ডানে বা বামে যাওয়া। আমরা এগুলোকে একশন বলছি। শুরুতে প্যাকম্যানের কোন আইডিয়া নেই কোন একশনটা ভালো, কোনটা খারাপ। যেকারণে সে র‌্যান্ডমলি একেকটা একশন নিবে।

এখন আমরা তার একশনের সাথে একটা স্কোর সিস্টেম যোগ করে দিব। যেমন কোন খাবার খেলে পজিটিভ স্কোর (রিওয়ার্ড), ঘোস্ট ধরে ফেললে নেগেটিভ স্কোর (পানিশমেন্ট বা নেগেটিভ রিওয়ার্ড)। আবার খাবার না খেয়ে অযথা সময়ক্ষেপণ করলেও ছোটখাটো একটা পানিশমেন্ট থাকবে- সময়েরও তো একটা দাম আছে! একটা নির্দিষ্ট পরিস্থিতি (স্টেট) থেকে একটা একশন নিয়ে যদি এজেন্ট দেখে পানিশমেন্ট পাচ্ছে, তাহলে এই শিক্ষাটা সে মনে রাখার চেষ্টা করবে এবং ভবিষ্যতে ওই কাজ আর না করার চেষ্টা করবে। কোন একশনে রিওয়ার্ড পেলে ওটা বারবার করার চেষ্টা করবে।

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

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

সবশেষে কেউ কেউ আজকের দিনটা একটু ভালো কাটাতে পারলেই খুশি। কিন্তু উদ্ভাসের ভাইদের জিজ্ঞেস করলে তারা বলবে জীবনের প্রথম ৬০-৭০টা বছর একটু কষ্ট করলে বাকি জীবন শান্তি আর শান্তি। তো এরকম হতে পারে ওপরের দিকে গেলে আমাদের এজেন্ট রিওয়ার্ড পাচ্ছে ঠিকই, কিন্তু কয়েক স্টেট পরে ভূত তাকে ধরে ফেলছে। ডানে গেলে হয়ত আপাতত সময় নষ্ট হচ্ছে, কিন্তু সামনে খাবার পাবে। তো এরকম আমাদের এজেন্ট কত দীর্ঘমেয়াদে চিন্তা করবে ওটাকে আমরা বলি ডিসকাউন্ট ফ্যাক্টর

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

লার্নিং প্রোফাইল

আমরা চার ধরণের এজেন্ট প্রোফাইল তৈরি করেছি, যার প্রত্যেকটিতে ভিন্ন ভিন্ন মাইন্ডসেটকে অনুকরণের চেষ্টা করা হয়েছে।

  • কুইক লার্নার: নতুন কিছু সামনে আসলে খুব দ্রুত শিখে নেয়। কিন্তু চিন্তাভাবনায় দূরদর্শী না। এক্সপ্লোর করাতেও খুব একটা আগ্রহ নেই।
  • এক্সপ্লোরার: প্রচুর পরিমাণে এক্সপ্লোর করতে পছন্দ করে। শেখার গতি ও দূরদর্শিতা মধ্যম।
  • কনজার্ভেটিভ: পুরনোকে ধরে রাখতে চায়। এক্সপ্লোর করা বা নতুন কিছু শেখাতে আগ্রহ কম। মোটামুটিভাবে দীর্ঘমেয়াদী চিন্তা করে।
  • স্ট্র্যাটেজিস্ট: দীর্ঘমেয়াদী চিন্তা করে। বুঝেশুনে এক্সপ্লোর করে।

Q-Learning-এ আমরা এরকম দিকগুলো লার্নিং রেট, ডিসকাউন্ট ফ্যাক্টর ও এক্সপ্লোরেশন রেটের সাহায্যে নির্ধারণ করতে পারে। এদের প্রতিটির মান সর্বনিম্ন 0 থেকে সর্বোচ্চ 1 এর মধ্যে হয়। আমাদের লার্নিং প্রোফাইলগুলো এভাবে সাজিয়েছি আমরা-

এজেন্টের ধরণলার্নিং রেটডিসকাউন্ট ফ্যাক্টরএক্সপ্লোরেশন রেট
Quick Learner0.950.10.2
Explorer0.70.50.5
Conservative0.50.60.1
Strategist0.60.80.3

লেআউট

আমরা শুরু করেছিলাম UC Berkeley CS188 কোর্সের ‘The Pac-Man Projects‘ এর ওপর ভিত্তি করে। এখানে অরিজিনাল প্যাকম্যান লেআউটের পাশাপাশি আরো বেশ কিছু লেআউট আছে। আমরা তার মধ্যে চারটি লেআউট বেছে নিয়েছি, যাদের নাম যথাক্রমে- Small Grid, Small Classic, Open Classic ও Minimax Classic।

লেআউট নির্বাচনের সময় আমাদের দুটি দিক মাথায় রাখতে হয়েছে- প্রথমত আমরা চেয়েছি লেআউটগুলো যেন যথেষ্ট ভিন্ন ধরণের হয়- প্রতিটির কিছু নিজস্বতা থাকে। ফলে আমরা ভিন্ন ভিন্ন লার্নারদের ভিন্ন ভিন্ন পরিবেশে পারফর্মেন্সের একটা সুন্দর ধারণা পাবো। দ্বিতীয়ত আমাদের মাথায় রাখতে হয়েছে কম্পিউটিং রিসোর্সের বিষয়টি। যেটা হয়, বড় লেআউটগুলোর ক্ষেত্রে জ্যামিতিক হারে স্টেটের সংখ্যা হিউজ হতে থাকে। প্রতিটা স্টেটে আবার চারটা সম্ভাব্য একশন। সব মিলিয়ে যত বেশি সিমুলেশন চালানো হবে Q-Table তত হিউজ আকার ধারণ করতে থাকবে। এরকম সিমুলেশনগুলো করতে আসলে শক্তিশালী সার্ভার প্রয়োজন এবং সাথে বিভিন্ন অপ্টিমাইজেশন। সেখানে আমরা রেগুলার একটি 12 GB র‌্যামের ল্যাপটপ থেকে লোকালি সিমুলেশনগুলো করেছি। কাজেই ছোট আকারের লেআউটগুলো ও সীমিত সংখ্যক ট্রেনিংয়ে আমাদের সীমাবদ্ধ থাকতে হয়েছে।

স্কোর সিস্টেম

স্কোর সিস্টেমের একটা সংক্ষিপ্ত বিবরণ দেয়া প্রয়োজন। প্রতিটা খাবার খাওয়ার জন্য +১০, সব খাবার খেতে পারলে, অর্থাৎ জিতে গেলে +৫০০, ভয়ার্ত অবস্থায় কোন ভূতকে খেলে +২০০ পয়েন্ট। অন্যদিকে প্রতিটা মুভের জন্য টাইম পেনাল্টি -১, আর ভূত ধরে ফেললে অর্থাৎ হেরে গেলে -৫০০।

একটা বিষয় খেয়াল করুন, পাওয়ার পিলেট খেলে কোন পয়েন্ট বা রিওয়ার্ড এখানে নেই। কিন্তু পাওয়ার পিলেট খেলে ভূতগুলো scared বা ভয়ার্ত অবস্থায় চলে যায়, সে অবস্থায় কোন ভূতকে খেলে তার জন্য আবার পয়েন্ট আছে।

Small Grid

Small Grid খুব সিম্পল একটি গ্রিড লেআউট, যেখানে একটি ভূত ও দুটি খাবার আছে। প্যাকম্যান ভূতকে এড়িয়ে খাবার দুটো খেতে পারলে জিতবে।

ট্রেনিং

তো আমরা প্রত্যেকটি লার্নিং প্রোফাইলের জন্য ৫০০০ বার ট্রেনিং রান করেছি। ০ থেকে ১০০ তম ট্রেনিং, ১০১ থেকে ২০০ তম ট্রেনিং এরকম করে প্রতি ১০০ ট্রেনিংয়ের ব্যবধানে এভারেজ রিওয়ার্ড কীরকম ছিলো তা দেখানো হয়েছে নিচের গ্রাফে। এখানে X অক্ষে ট্রেনিংয়ের সংখ্যা, আর Y অক্ষে এভারেজ রিওয়ার্ড।

তো আমরা গ্রাফটা যদি দেখার চেষ্টা করি, শুরুর দিকে সব ধরণের লার্নার -৫০০ এর কম স্কোর করছিলো। এই সময়টাতে আসলে তাদের কোন ধারণাই নেই, কোন একশনটা খাবারের কাছাকাছি তাদের নিয়ে যাবে। যেহেতু একদম কাছাকাছি কোন খাবার নেই, যেকোন একটা একশন নিলে -১ পয়েন্ট হবে। তখন সে পরবর্তী চেষ্টায় ভিন্ন একশনগুলো দেখার চেষ্টা করবে।

এভাবে বিভিন্ন মুভ ট্রাই করতে করতে একসময় সে প্রথম খাবার পর্যন্ত পৌঁছে যাবে। আমরা দেখছি ৫০০ ট্রেনিং থেকে ১১০০ ট্রেনিংয়ের মধ্যে কনজার্ভেটিভ এজেন্ট (নীল রঙের গ্রাফ) খুব দ্রুত এভারেজ রিওয়ার্ড বাড়াতে শুরু করেছে এবং স্কোর পজিটিভের দিকে নিতে শুরু করেছে। কুইক লার্নার থেকে এখানে কনজার্ভেটিভ শুরুতে ভালো করার কারণ সম্ভবত ডিসকাউন্ট ফ্যাক্টর। যেহেতু আমাদের Small Grid লেআউটে বেশ কয়েকটি মুভ প্রয়োজন প্রথম খাবার পর্যন্ত পৌঁছানোর জন্য, তাই কনজার্ভেটিভ লার্নার বেশি সামনের দিকে চিন্তা করায় শুরুতে ভালো করতে পেরেছে।

কিন্তু এক্সপ্লোরার আর স্ট্র্যাটেজিস্ট দেখা যাচ্ছে ট্রেনিং চলাকালে উন্নতি খুব বেশি করতে পারেনি। বিশেষ করে এক্সপ্লোরার দেখা যাচ্ছে যেখানে ছিলো সেখানেই থেকে গেছে। কারণ এক্সপ্লোরেশন রেট বেশি হওয়াতে সে আসলে বলতে গেলে র‌্যান্ডমলি সবকিছু ট্রাই করার চেষ্টা করে গেছে। কিন্তু এই প্রসেসে কি তাহলে সে কিছুই শিখেনি?

টেস্ট রান

ট্রেনিংয়ের সময় আমাদের এজেন্টরা নিজ নিজ ধরণ অনুযায়ী এক্সপ্লোর করেছে। ৫০০০ ইটারেশন শেষে আমাদের ট্রেনিং শেষ। এখন আমরা প্রত্যেকটিকে ২৫ বার করে টেস্ট রানের সুযোগ দিব। এই ১০টি রানে তারা নতুন কিছু এক্সপ্লোর করবে না বা নতুন কিছু শিখবে না। বরং আগের শিক্ষাকে কাজে লাগাবে।

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

এক্সপ্লোরারের দিকে দেখলে, সত্য যে ২৮% অর্থাৎ ২৫ বারের মধ্যে ৭ বার সে হেরে গেছে। তবে ট্রেনিংয়ের সময় যেখানে জয় দৃশ্যত প্রায় অধরাই ছিলো, এখন কিন্তু জয়ের হারই বেশি। কারণ সে এক্সপ্লোর যা করেছে, তার জ্ঞানটুকু তার থেকে গেছে। তবে কম সম্ভাব্য স্টেটগুলোও এক্সপ্লোর করাতে ৫০০০ ট্রেনিংয়ের যে সীমা, তা তার জন্য যথেষ্ট হয়নি। যদি আরো দীর্ঘ ট্রেনিং করানো যেতো, তবে একসময় না একসময় এটা বাকিদের সমান পারফর্মেন্সে আসতে পারতো।

Small Classic

তবে পরিস্থিতি অনেকটাই বদলে যাবে যখন আমরা আরো উন্মুক্ত একটা লেআউটের দিকে যাবো। Small Classic নামের এই লেআউটে দুটো ভূত, দুটো পাওয়ার পিলেট, অনেকগুলো খাবার আছে। একটা খাবার বা একটা ভূতের অবস্থান কমবেশি হলেই আমাদের এজেন্ট কিন্তু সেটা সম্পূর্ণ নতুন স্টেট মনে করবে।

Small Classic

তো আমি বলেছিলাম, লেআউট বড় হলে স্টেটের সংখ্যা জ্যামিতিক হারে বাড়তে থাকবে। চলুন, একটু অঙ্ক করি। 57 টা খাবার পিলেট (প্রত্যেকটা থাকা বা না থাকা), দুটো ভূত ও প্যাকম্যানের 64 রকম সম্ভাব্য অবস্থান ও 4 রকম করে দিক এবং ভূতদের ভীত বা স্বাভাবিক অবস্থা এভাবে যদি ধরি, তবে 2⁵⁷ × 64³ × 4³ × 2² = 9.67 × 10²⁴ বা 9.67 সেপ্টিলিয়ন রকম স্টেট সম্ভব। সংখ্যাটা পুরোটা লিখবো? 9,671,406,556,917,033,397,649,408!

অন্যদিকে আগের Small Grid লেআউটে সম্ভাব্য স্টেটের সংখ্যা ছিলো 2² × 18² × 2 × 4² = 41472। পার্থক্যটা আকাশ-পাতাল!

আরো দেখতে পারেন: বড় সংখ্যা

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

আমরা দেখেছি আগের লেআউটে এজেন্টগুলো ৫০০০ ট্রেনিংয়ের পর বেশিরভাগ গেম জিততে শুরু করেছিলো। কিন্তু এই লেআউটের জন্য কি তেমনটা হবে? চলুন দেখি।

ট্রেনিং

তো দেখা যাচ্ছে সবগুলো এজেন্ট ট্রেনিং চলাকালে কনস্ট্যান্টলি উন্নতি করেছে। কিন্তু -৪০০ এর থেকে বেশি পয়েন্টের দিকে কিন্তু কেউ আসতে পারেনি। আবার, এবার শুরু হয়েছে -৪৪৫ এর দিকে, কারণ আশেপাশে সর্বত্র পিলেট থাকাতে ভূতের হাতে ধরা পড়ার আগে র‌্যান্ডম ঘোরাঘুরিতেও কিছু সংখ্যক পিলেট খেতে পেরেছে আমাদের এজেন্টগুলো।

তবে এখানে লক্ষ্যণীয় যেটা, প্রথমদিকে এজেন্টরা তুলনামূলক দ্রুত উন্নতি করলেও পরবর্তীতে উন্নতি ধীর হতে শুরু করেছে। কেন? তো আমরা চিন্তা করি, প্রতিবারে আমাদের প্যাকম্যান আর দুটো ভূত, অর্থাৎ তিনজন ৪ দিকে যেতে পারে। মানে 4×4×4 = 64 রকম সম্ভাবনা। এরপর দুইবারে 64² = 4096 রকম। তিনবারে 64³ রকম ইত্যাদি। এখন প্রথম দিকের চালগুলোতে কোনদিকে গেলে পিলেট পাওয়া যায় সেটা প্যাকম্যান শুরুর ট্রেনিংগুলোতে আয়ত্ত্ব করতে পারবে, হয়ত প্রথম ৫-৬ টা মুভ মোটামুটি অপটিমালি নিতে শিখে যাবে। কিন্তু যেহেতু স্টেট স্পেস বড় হতে থাকবে, তাই পরবর্তী মুভগুলো আয়ত্ত্ব করতে অনেক বেশি ট্রেনিং দরকার হবে।

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

টেস্ট রান

টেস্ট রানে আমরা দেখছি কুইক লার্নার সবচেয়ে ভালো করেছে, যদিও ট্রেনিংয়ে কনজার্ভেটিভ এগিয়ে ছিলো। তো এটা একটা মজার দিক, যে ট্রেনিংয়ে ভালো করা মানেই বাস্তব পারফর্মেন্সে সবচেয়ে ভালো না-ও হতে পারে কোন কোন ক্ষেত্রে। যাইহোক, এজ এক্সপেক্টেড, জয় পর্যন্ত কেউ যেতে পারেনি।

Open Classic

আগের লেআউট থেকে আরো উন্মুক্ত একটা লেআউট এটা। আমার কম্পিউটার এতে ৫০০০ ট্রেনিংও আসলে নিতে পারেনি, র‌্যাম ফুল হয়ে যাচ্ছিলো। যেকারণে ৩০০০ ট্রেনিংয়ে সীমিত থাকতে হয়েছে। আমি শুধু গ্রাফগুলো দিয়ে দিচ্ছি।

ট্রেনিং পারফর্মেন্স
টেস্ট রান

পিওর ক্যাওস! তবে ফাইনালি এই সীমিত সময়ে বেশি এক্সপ্লোরেশন করাতে এক্সপ্লোরারের এডভান্টেজ দেখতে পাচ্ছি আমরা। ট্রেনিংয়ে সব থেকে পিছিয়ে থাকলেও টেস্ট রানে সবচেয়ে ভালো করতে পেরেছে। অন্যদিকে বিপরীতে কনজার্ভেটিভ ট্রেনিংয়ের সময় এগিয়ে থাকলেও খারাপ করেছে টেস্ট রানগুলোতে।

Minimax

একটা পিলেট, তিনটা ভূত। প্যাকম্যানকে জাস্ট ভূতগুলো ধরে ফেলার আগে পিলেট পর্যন্ত পৌঁছাতে হবে। তবে এখানে খুব ইন্টারেস্টিং একটা ব্যাপার আমরা দেখবো- ট্রেনিংয়ের সময়কাল সবারই গড়পড়তা পয়েন্ট নেগেটিভে থেকেছে, অর্থাৎ, বেশিরভাগ ম্যাচ এজেন্টরা হেরে গেছে।

ট্রেনিং

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

টেস্ট রান

ট্রেনিং আর টেস্ট রানের তফাৎটা এখানে চোখে পড়ার মত। ট্রেনিংয়ে প্রত্যেক এজেন্টের এভারেজ স্কোর শেষ পর্যন্ত নেগেটিভে থাকলেও টেস্ট রানে বেশিরভাগ এজেন্ট অধিকাংশ গেমে জিততে সক্ষম হয়েছে। কুইক লার্নার ট্রেনিংয়ের মত টেস্টেও টপে আছে, ২৫ বারের মধ্যে ২৩ বারই জিততে সক্ষম হয়েছে। অন্যদিকে বাকি এজেন্টরা কমবেশি স্ট্রাগল করেছে, বিশেষ করে কনজার্ভেটিভ এজেন্ট বেশিরভাগ গেমই হেরে গেছে। এখানে লার্নিং রেটের যে প্রভাব তা বেশ দৃশ্যমান হচ্ছে। অনেক ক্ষেত্রে ট্রেনিংয়ের সময় কোন সিনারিওর সম্মুখীন হলেও সেটা মনে না রাখাতে (অর্থাৎ Q-Table এ সেভ না করাতে) টেস্ট রানের সময় আগের অভিজ্ঞতা তারা কাজে লাগাতে পারেনি।

জেনারেলাইজেশনের ধারণা (Approximate Q-Learning)

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

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

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

তবে মোটিভেশনাল কথা অনেক হলো, Q-Learning এর সবচেয়ে বড় মুশকিলটা এতক্ষণে বোধহয় বুঝতে পারছেন। প্রত্যেকটা স্টেটকে এটা সম্পূর্ণ আলাদা হিসেবে চিন্তা করে।

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

Q-Learning এর অবস্থাটা অনেকটা এরকম। এখানে চলে আসে জেনারেলাইজেশনের প্রয়োজনীয়তা। অর্থাৎ আমাদের এজেন্টকে নতুন একটা পরিস্থিতিকে আগের পরিস্থিতির সাথে মেলাতে পারতে হবে। সব প্রশ্ন বা সব ডিটেইল না মিললেও সিমিলার প্রশ্ন আসলে পরীক্ষার হলে যেমন আমরা আমাদের জ্ঞানকে কাজে লাগাতে পারি।

তো সেসব আলোচনা হবে দ্বিতীয় পর্বে ইন শা আল্লাহ। সম্ভবত তৃতীয় আরো একটি পর্ব আমাদের দরকার হবে।

দ্বিতীয় পর্ব: আগের শিক্ষাকে নতুন পরিবেশে কাজে লাগানো (গেম ডেভেলোপমেন্টে রিইনফোর্সমেন্ট লার্নিং: পর্ব-২)

তবে আমাদের প্রোজেক্টের ওয়েবসাইটে ইন্টারেক্টিভ গ্রাফস, অ্যানালাইসিস, ব্যাকগ্রাউন্ডসহ আরো বিস্তারিত কিন্তু ইতোমধ্যেই আছে, ঘুরে আসতে পারেন: Reinforcement Learning
in Game Development

এছাড়াও আরো দেখতে পারেন: কৃত্রিম বুদ্ধিমত্তার আদ্যোপান্ত

Leave a Reply

Your email address will not be published. Required fields are marked *