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

একদম ছোটবেলার কথা। মনে আছে, অন্যরা বলতো ১০ পর্যন্ত লিখতে শিখলেই পরের সব সংখ্যা লেখা যায়। তবে ১০ পর্যন্ত লিখেও আমি যেকোন সংখ্যা তৈরির কারিকুরি ঠিক ধরতে পারিনি। যেদিন প্রথম ১০০ পর্যন্ত লিখলাম, সেদিন পর্যন্ত লেগেছে যেকোন সংখ্যা লিখতে ও পড়তে পারার রহস্য শিখতে।

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

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

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

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

কিন্তু Approximate Q-L এর ক্ষেত্রে আমরা শুধু অল্প কিছু বিষয় বিবেচনা করব। একটা স্টেটের সবকিছু ব্যবহার না করে ফিচার এক্সট্রাক্টর ব্যবহার করে শুধু তিনটা ফিচার নিয়ে আমাদের এজেন্ট চিন্তা করবে-

১. যে ঘরে যেতে চাচ্ছে, তার এক ঘর দূরত্বের মধ্যে ভূতের সংখ্যা কত
২. যদি এক ঘর দূরত্বের মধ্যে কোন ভূত না থাকে, তাহলে সেখানে কোন খাবার আছে কিনা
৩. সবচেয়ে নিকটবর্তী খাবার কত দূরত্বে

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

চলুন Approximate Q-Learning এর ট্রেনিংয়ের পরের একটা গেমপ্লে ভিডিও দেখে নিই, এখানে বেশ ইন্টারেস্টিং কিছু ব্যাপার ঘটবে।

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

পাওয়ার পিলেট যদি পথে পড়ে যায়, তাহলে যে প্যাকম্যান না খাওয়ার চেষ্টা করবে, এমন না। তবে আরেকটা মজার জিনিস এখানে দেখবো আমরা, পাওয়ার পিলেট খাওয়া অবস্থাতেও ভূতকে না খেয়ে প্যাকম্যান পালিয়ে থাকার চেষ্টা করছে। কারণ ভূত ভয়ার্ত (scared) অবস্থায় আছে কিনা সে জানে না।

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

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

তো চলুন, এখন দেখি Q-Learning যে চারটি লেআউটে আমরা চালিয়েছিলাম, সে লেআউটগুলোতে Approximate Q-L এজেন্টের পারফর্মেন্স কেমন হয়।

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

যাইহোক, আমরা এখানে ভ্যারিয়েশন করেছিলাম ট্রেনিংয়ের সংখ্যা। Q-L এর বেলায় ৫০০০ করে ট্রেনিং করালেও Approximate Q-L এ এত ট্রেনিং আমাদের দরকার হবে না। আমরা দেখবো ১, ১০, ১০০ এবং ১০০০ ট্রেনিংয়ের পর ২৫টি করে টেস্ট রানে আমাদের এজেন্টরা কেমন পারফর্ম করে।

Small Grid

Small Grid

এই লেআউটে আমাদের Approximate Q-L এজেন্টের পারফর্মেন্স ছিলো এরকম:

ট্রেনিংয়ের সংখ্যাট্রেনিংয়ের পর গড় স্কোরজয়ের হার
1-17.9212/25 (48%)
10220.2418/25 (72%)
100300.820/25 (80%)
1000261.3219/25 (76%)

খেয়াল করুন, মাত্র এক ট্রেনিংয়ের পরই আমাদের এজেন্ট ৪৮% গেমে জিততে সক্ষম হয়েছে। আসলে তার শুধু দুটো জিনিস শেখা প্রয়োজন, এক ঘর দূরত্বের মধ্যে ভূত থাকলে পালাতে হবে, আর ভূত না থাকলে নিকটবর্তী খাবার থেকে দূরত্ব কমছে যেদিকে সেদিকে যেতে হবে। একবার গেমপ্লেতেই সে এই বিষয় দুটো সে অনেকটা আয়ত্ব করতে পেরেছে।

১০ ট্রেনিং ও ১০০ ট্রেনিংয়ে পারফর্মেন্স আরো ভালো হয়েছে, কিন্তু ১০০০ ট্রেনিংয়ে আমরা আর নতুন করে উন্নতি দেখছি না। অর্থাৎ আমাদের এজেন্ট কিন্তু একটা পর্যায়ে গিয়ে তার সীমায় পৌঁছে যাচ্ছে। আমাদের Q-L এজেন্টদের তিনটি যদিও এই লেআউটে শতভাগ জয় পেতে সক্ষম হয়েছিলো, Approximate Q-L এজেন্টের ক্ষেত্রে তেমনটা সম্ভব হয়নি।

Small Classic

ট্রেনিংয়ের সংখ্যাট্রেনিংয়ের পর গড় স্কোরজয়ের হার
1-227.760/25 (0%)
10838.222/25 (88%)
100736.8420/25 (80%)
1000833.622/25 (88%)

এখানে আমাদের এজেন্ট ১ ট্রেনিংয়ের পর ২৫ গেমের মধ্যে কোনটিতে জিততে পারেনি। তবে -২২৭.৭৬ ছিলো গড় স্কোর, যেখানে Q-Learning এজেন্টরা -৩৮০ র ওপরে কিন্তু উঠতে পারেনি। অর্থাৎ ১ ট্রেনিংয়ে Approximate Q-Learning এজেন্ট ৫০০০ ট্রেনিংয়ের পর Q-Learning এজেন্টদের পারফর্মেন্স থেকে কিন্তু আরো ভালো করেছে।

১০ ট্রেনিংয়ের পর ৮৮% জয়সহ ৮৩৮.২ এভারেজ স্কোর করতে আমাদের এজেন্ট সফল হয়েছে। কিন্তু আমরা যখন বেশি ট্রেনিং করাচ্ছি, আমরা আবারো দেখছি যে তার থেকে ভালো অবস্থানে আর যেতে পারছে না।

Open Classic

Q-L এজেন্টের জন্য এই লেআউটটা ছিলো সবচেয়ে চ্যালেঞ্জিং। কারণ অসংখ্য স্টেট সম্ভব এখানে। কিন্তু Approximate Q-L এজেন্টের জন্য এটা যেন স্বর্গরাজ্য। ভূত যে ঘরের পাশে, সে ঘরে যাওয়া যাবে না- এই একটা শিক্ষা শুধু লাগবে।

ট্রেনিংয়ের সংখ্যাট্রেনিংয়ের পর গড় স্কোরজয়ের হার
11239.9225/25 (100%)
101240.625/25 (100%)
1001241.1625/25 (100%)
10001240.225/25 (100%)

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

Minimax

ট্রেনিংয়ের সংখ্যাট্রেনিংয়ের পর গড় স্কোরজয়ের হার
127119/25 (76%)
10190.2417/25 (68%)
100271.5619/25 (76%)
1000392.4822/25 (88%)

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

বাস্তব জীবনে জেনারেলাইজেশন

একজন শ্রমজীবী মানুষের কথা চিন্তা করুন যিনি বছরের পর বছর ধরে একই ধরণের কাজ করে যাচ্ছেন। নিজের কাজের জায়গাতে তার যে দক্ষতা, আমরা তার ধারেকাছেও যেতে পারবো না। তিনি তার কাজের নাড়ি-নক্ষত্র সবকিছু জানেন।

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

একজন যখন সীমিত একটা অংশে মনোনিবেশ করতে পারে, তখন সে সেই বিষয়টুকুকে পুরোপুরি শৈল্পিক মাত্রায় নিয়ে যেতে পারে। Q-L এজেন্টদের ব্যাপারটা অনেকটা তেমন ছিলো। কিন্তু যখন আরো বড় পরিসরে কাজ করতে হয়, তখন কিন্তু এভাবে প্রতিটা খুঁটিনাটি ধরে শেখাটা সম্ভব না। তখন আমাদের জেনারেল রুলগুলো শিখতে হয়। কিন্তু শুধু জেনারেল রুলগুলো আমাদের সেই শৈল্পিক পর্যায়ে নিয়ে যেতে পারবে না।

তবে প্রত্যেকের জায়গা থেকে তার পারিপার্শ্বিকতা অনুযায়ী নিজের শিখন পদ্ধতিকে সাজিয়ে নেয়া- এটা এখানে সবচেয়ে গুরুত্বপূর্ণ। কেউ যদি তার কাজের মধ্যে, পড়ার মধ্যে, শেখার মধ্যে এক্সপ্লোর না করে- অনেক কিছু তার অজানা থেকে যাবে। কেউ যদি অনেক বেশি ভবিষ্যৎ নিয়ে ভাবে, বর্তমানকে সে সঠিকভাবে কাজে লাগাতে পারবে না। এরকম সবকিছুতে ভারসাম্য খুঁজে নেয়াটা শিখনপদ্ধতির বড় চ্যালেঞ্জ।

আমরা দেখেছি ভিন্ন ভিন্ন পরিস্থিতিতে ভিন্ন ভিন্ন এজেন্টরা ভালো করতে পেরেছে। যেহেতু আমরা মানুষ, আমাদের এজেন্টদের মত একেবারে বেঁধে দেয়া কোন নিয়মে আমরা আটকে নেই। তবে আমাদের নিজ নিজ বৈশিষ্ট্য ও চিন্তাপদ্ধতি আছে এবং আমরা সবাই একই পরিস্থিতিতে নেই। শেখার পদ্ধতি ঠিক করার ক্ষেত্রে সবচেয়ে গুরুত্বপূর্ণ জিনিসটা হলো পরিস্থিতি বোঝার চেষ্টা করা এবং পরিস্থিতির সাথে নিজের শেখার কৌশলকে নিজের পারদর্শিতার সাথে মিলিয়ে সাজিয়ে নেয়া।

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

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

Leave a Reply

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