paint-brush
মাল্টি-আর্মড দস্যু: আপনার টাস্কের জন্য সেরা শক্তিবৃদ্ধি শেখার সমাধানদ্বারা@teenl0ve
2,222 পড়া
2,222 পড়া

মাল্টি-আর্মড দস্যু: আপনার টাস্কের জন্য সেরা শক্তিবৃদ্ধি শেখার সমাধান

দ্বারা Valentine Shkulov9m2023/07/20
Read on Terminal Reader
Read this story w/o Javascript

অতিদীর্ঘ; পড়তে

নিবন্ধটি বহু-সশস্ত্র দস্যুদের (MABs) অন্বেষণ করে, একটি শক্তিবৃদ্ধি শেখার কৌশল যা অন্বেষণ (নতুন বিকল্পের চেষ্টা করা) এবং শোষণের (বর্তমান সেরা বিকল্প ব্যবহার করে) ভারসাম্য বজায় রাখতে ব্যবহৃত হয়। এটি বিভিন্ন এমএবি অ্যালগরিদম প্রবর্তন করে যেমন ε-লোভী, UCB, এবং থম্পসন স্যাম্পলিং। ε-লোভী পদ্ধতিটি বেশিরভাগ সময় সবচেয়ে পরিচিত বিকল্পকে কাজে লাগায়, তবে নতুন বিকল্পগুলিও অন্বেষণ করে। অন্যদিকে UCB, আনুমানিক পুরস্কার এবং সংশ্লিষ্ট অনিশ্চয়তা বিবেচনা করে। থম্পসন স্যাম্পলিং, একটি Bayesian পদ্ধতি, একটি সম্ভাব্য কর্ম নির্বাচন ব্যবহার করে। MAB-এর বিজ্ঞাপন, স্বাস্থ্যসেবা, ওয়েব অপ্টিমাইজেশান, গতিশীল মূল্য, নেটওয়ার্ক রাউটিং এবং মেশিন লার্নিং-এ বিস্তৃত অ্যাপ্লিকেশন রয়েছে। তাদের অন্বেষণ এবং শোষণের ভারসাম্য তাদের অনিশ্চিত পরিবেশে সিদ্ধান্ত নেওয়ার জন্য আদর্শ করে তোলে।

People Mentioned

Mention Thumbnail
featured image - মাল্টি-আর্মড দস্যু: আপনার টাস্কের জন্য সেরা শক্তিবৃদ্ধি শেখার সমাধান
Valentine Shkulov HackerNoon profile picture
0-item
1-item

বহু-সশস্ত্র দস্যুরা (MABs) শক্তিবৃদ্ধি শিক্ষার জগতে একটি ভিত্তিপ্রস্তর তৈরি করে, যা অন্বেষণ এবং শোষণের মধ্যে সর্বোত্তম ভারসাম্যের প্রয়োজন হয় এমন পরিস্থিতিতে আলোচনার জন্য একটি শক্তিশালী প্রক্রিয়া সরবরাহ করে। অনুসন্ধান বলতে অভিনব বিকল্পগুলি চেষ্টা করা বোঝায়, যখন শোষণ বর্তমান সেরা বিকল্পের সাথে লেগে থাকা বোঝায়। এই ধরনের পরিস্থিতিতে, MABs প্রায়ই তাদের বুদ্ধিমান শেখার প্রক্রিয়ার কারণে একটি দুর্দান্ত পছন্দ হিসাবে প্রমাণিত হয়।


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

একটি মাল্টি-আর্মড দস্যু কি?

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


আরও আনুষ্ঠানিক সংজ্ঞায়, একটি MAB সমস্যা হল একটি টিপল (A, R)

MAB সমস্যার লক্ষ্য হল একটি নীতি π (ঐতিহাসিক ডেটা থেকে অ্যাকশনে একটি ম্যাপিং) খুঁজে বের করা যা প্রদত্ত সংখ্যক রাউন্ডের উপর প্রত্যাশিত মোট পুরস্কার Q সর্বাধিক করে।


MAB-এর মূল দ্বিধা হল "অন্বেষণ" এবং "শোষণ" এর মধ্যে বাণিজ্য:

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


ভারসাম্য অন্বেষণ এবং শোষণ শক্তিবৃদ্ধি শিক্ষা এবং MAB সমস্যা একটি মূল চ্যালেঞ্জ.


এই সমস্যা সমাধানের জন্য, এপসিলন-গ্রিডি, আপার কনফিডেন্স বাউন্ড (ইউসিবি) এবং থম্পসন স্যাম্পলিং কৌশল সহ অনেকগুলি অ্যালগরিদম তৈরি করা হয়েছে।


MAB-এর সম্প্রসারণ হিসাবে প্রাসঙ্গিক দস্যুদের বিশদ পর্যালোচনা পরবর্তী নিবন্ধগুলিতে কভার করা হবে।

এপসিলন(ε)-লোভী

এপসিলন(ε)-লোভী কৌশল একটি সরল নীতি মেনে চলে। বেশিরভাগ সময়, (1 - ε) হিসাবে পরিমাপ করা হয়, এটি সর্বোচ্চ আনুমানিক পুরষ্কার প্রদানকারী ক্রিয়াকলাপের জন্য বেছে নেয়, যার ফলে সর্বোত্তম পরিচিত বিকল্পটি ব্যবহার করা হয়। যাইহোক, বাকি সময়, ε হিসাবে পরিমাপ করা হয়, এটি একটি এলোমেলো ক্রিয়া বেছে নেয়, এইভাবে নতুন সম্ভাবনাগুলি অন্বেষণ করে। এই কৌশলটির চতুরতা এর সরলতা এবং কার্যকারিতার মধ্যে নিহিত, সতর্কতা সত্ত্বেও যে এটি তার অন্বেষণ পর্বের সময় সবচেয়ে পুরস্কৃত করার মতো একই সম্ভাবনা সহ কম ফলপ্রসূ ক্রিয়া নির্বাচন করতে পারে এবং ε এর মান অন্বেষণ এবং শোষণের মধ্যে ভারসাম্য নির্ধারণ করে।


গাণিতিকভাবে এটি সংজ্ঞায়িত করা যেতে পারে:

এটি নিম্নলিখিত pseudocode দ্বারা সংজ্ঞায়িত করা যেতে পারে:


 Initialize Q(a) for all a Repeat: Generate a random number p between 0 and 1 If p < epsilon: Select a random action a Else: Select action a with the highest Q(a) Execute action a and observe reward r Update Q(a) = Q(a) + alpha * (r - Q(a))

এপসিলন-লোভী কৌশলের পাইথনিক বাস্তবায়ন মোটামুটি সোজা:

 import numpy as np class EpsilonGreedy: def __init__(self, epsilon, counts, values): self.epsilon = epsilon self.counts = counts self.values = values def select_arm(self): if np.random.random() < self.epsilon: return np.random.choice(len(self.values)) else: return np.argmax(self.values) def update(self, chosen_arm, reward): self.counts[chosen_arm] += 1 n = self.counts[chosen_arm] value = self.values[chosen_arm] new_value = ((n-1) / float(n)) * value + (1 / float(n)) * reward self.values[chosen_arm] = new_value

ε-লোভী অ্যালগরিদমের সরলতার সুবিধা এবং গ্যারান্টি রয়েছে যে এটি অনেক পদক্ষেপের পরেও (একটু) অন্বেষণ করতে থাকবে। যাইহোক, এটি UCB বা থম্পসন স্যাম্পলিং এর বিপরীতে প্রতিটি ক্রিয়া সম্পর্কে কতটা জানা যায় তা বিবেচনা করে না।

ইউসিবি

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

এর পাইথন বাস্তবায়ন নিম্নরূপ:

 class UCB: def __init__(self, counts, values): self.counts = counts self.values = values def select_arm(self): n_arms = len(self.counts) for arm in range(n_arms): if self.counts[arm] == 0: return arm ucb_values = [0.0 for arm in range(n_arms)] total_counts = sum(self.counts) for arm in range(n_arms): bonus = sqrt((2 * log(total_counts)) / float(self.counts[arm])) ucb_values[arm] = self.values[arm] + bonus return np.argmax(ucb_values) def update(self, chosen_arm, reward): self.counts[chosen_arm] += 1 n = self.counts[chosen_arm] value = self.values[chosen_arm] new_value = ((n-1) / float(n)) * value + (1 / float(n)) * reward self.values[chosen_arm] = new_value

UCB-তে অন্বেষণ এবং শোষণের মধ্যে ভারসাম্য তার সূত্র থেকে আসে: একটি কর্মের আনুমানিক মূল্য এবং একটি শব্দ যা সময়ের সাথে সাথে হ্রাস পায় (যেমন কর্ম সম্পর্কে আরও জানা যায়) কিন্তু সেই কর্ম সম্পর্কে অনিশ্চয়তার সাথে বৃদ্ধি পায়। এইভাবে, অ্যালগরিদম উচ্চ অনিশ্চয়তা এবং উচ্চ সম্ভাব্য পুরস্কার সহ অস্ত্রগুলি অন্বেষণ করতে থাকে।

থম্পসন স্যাম্পলিং

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


একটি বিটা-বার্নোলি কাঠামোতে, আমরা প্রতিটি দস্যুদের পুরষ্কার বিতরণকে বার্নোলি বিতরণ হিসাবে বিবেচনা করি (অর্থাৎ, বাইনারি পুরস্কার 0 বা 1)। তারপরে আমরা পুরষ্কার পাওয়ার সম্ভাবনার আগে একটি বিটা বরাদ্দ করি। বিটা ডিস্ট্রিবিউশন হল বার্নোলি ডিস্ট্রিবিউশনের পূর্বের কনজুগেট, যা একটি সহজ পোস্টেরিয়র আপডেটের অনুমতি দেয়।

যুক্তি:

  1. α=1, β=1 (ইউনিফর্ম আগে) প্যারামিটার সহ প্রতিটি দস্যুকে একটি বিটা বন্টন বরাদ্দ করুন।

  2. প্রতিটি রাউন্ডের জন্য:

    1. প্রতিটি দস্যুদের বর্তমান বিটা বিতরণ থেকে একটি এলোমেলো সংখ্যার নমুনা নিন।
    2. সর্বোচ্চ নমুনা নম্বর সহ দস্যু নির্বাচন করুন এবং সেই ডাকাতকে টানুন।
    3. টানা দস্যু থেকে পুরস্কার পর্যবেক্ষণ. যদি এটি একটি সফল (1), দস্যু এর α এক দ্বারা বৃদ্ধি; যদি এটি একটি ব্যর্থতা (0), দস্যু এর β এক দ্বারা বৃদ্ধি.
    4. পদক্ষেপ 2 এবং 3 পুনরাবৃত্তি করুন।
 import numpy as np from scipy.stats import beta class Bandit: def __init__(self, true_probability): self.true_probability = true_probability self.alpha = 1 self.beta = 1 def pull(self): return np.random.random() < self.true_probability def sample(self): return np.random.beta(self.alpha, self.beta) def update(self, reward): self.alpha += reward self.beta += (1 - reward) def Thompson(bandits, num_trials): rewards = np.zeros(num_trials) for i in range(num_trials): # Thompson sampling j = np.argmax([b.sample() for b in bandits]) # Pull the arm for the bandit with the largest sample reward = bandits[j].pull() # Update rewards log rewards[i] = reward # Update the distribution for the bandit whose arm we just pulled bandits[j].update(reward) return rewards # Suppose we have 3 bandits with these true probabilities true_probabilities = [0.2, 0.5, 0.75] bandits = [Bandit(p) for p in true_probabilities] # Run experiment rewards = Thompson(bandits, num_trials=10000) # Print the total reward print("Total reward earned:", rewards.sum()) print("Overall win rate:", rewards.sum() / len(rewards))

থম্পসন স্যাম্পলিং এভাবে "অন্বেষণ" করে যে কর্মগুলি সম্পর্কে এটি অনিশ্চিত (যার জন্য মূল্যের বন্টন ছড়িয়ে দেওয়া হয়) এবং "শোষণ" ক্রিয়া যা এটি বিশ্বাস করে যে উচ্চ মূল্য থাকতে পারে (যার জন্য বিতরণ উচ্চ মূল্যের দিকে ঝুঁকছে)।


সময়ের সাথে সাথে, প্রতিটি ক্রিয়া সম্পর্কে আরও জানার সাথে সাথে বিতরণগুলি আরও শিখর হয়ে ওঠে এবং অ্যালগরিদম দ্বারা নির্বাচিত ক্রিয়াগুলি সর্বোচ্চ প্রত্যাশিত মান সহ একের সাথে একত্রিত হতে থাকে।

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

কেন মাল্টি-আর্মড দস্যুরা আপনার কাজের জন্য সেরা আরএল?

  1. সরলতা : MAB অ্যালগরিদমগুলি সম্পূর্ণ RL অ্যালগরিদমগুলির তুলনায় সহজ এবং গণনাগতভাবে আরও দক্ষ, যার জন্য একটি সম্ভাব্য বড় স্টেট-অ্যাকশন মান টেবিল বা আনুমানিক রক্ষণাবেক্ষণ এবং আপডেট করা প্রয়োজন।
  2. অন্বেষণ এবং শোষণের ভারসাম্য : এমএবি অ্যালগরিদমগুলি নতুন কর্মের চেষ্টা এবং পরিচিত ভাল ক্রিয়াগুলির সাথে লেগে থাকার মধ্যে ট্রেড-অফ পরিচালনা করার জন্য শক্তিশালী পদ্ধতি সরবরাহ করে।
  3. রিয়েল-টাইম অভিযোজনযোগ্যতা : MAB অ্যালগরিদমগুলি অ্যাকশনের পুরষ্কার বিতরণে পরিবর্তনের সাথে রিয়েল-টাইমে মানিয়ে নিতে পারে।
  4. সহজ ইন্টিগ্রেশন : MAB-এর সরলতা এবং দক্ষতা বিদ্যমান সিস্টেমে সহজে একীভূত করার অনুমতি দেয়, ন্যূনতম ব্যাঘাত সহ তাৎক্ষণিক সুবিধা প্রদান করে।
  5. বিস্তৃত প্রযোজ্যতা : এমএবি সফলভাবে বিভিন্ন ক্ষেত্রে প্রয়োগ করা হয়েছে, যার মধ্যে বিজ্ঞাপন (ক্লিক-থ্রু রেট সর্বাধিক করার জন্য কোন বিজ্ঞাপনটি দেখানো হবে তা নির্বাচন করা), স্বাস্থ্যসেবা (ব্যক্তিগতকরণের চিকিত্সা কৌশল), এবং ওয়েব পৃষ্ঠা অপ্টিমাইজেশান (A/B পরীক্ষা) সহ।

MABs এর অ্যাপ্লিকেশন

মাল্টি-আর্মড ব্যান্ডিটস (MABs) এর বিভিন্ন শিল্প এবং ডোমেন জুড়ে বিস্তৃত অ্যাপ্লিকেশন রয়েছে। এগুলি কীভাবে ব্যবহার করা যেতে পারে তার কয়েকটি উদাহরণ এখানে রয়েছে:


  1. অনলাইন বিজ্ঞাপন : MABs ব্যবহার করা যেতে পারে গতিশীলভাবে বিজ্ঞাপনের নির্বাচন সামঞ্জস্য করার জন্য ব্যবহারকারীদের তাদের মিথস্ক্রিয়াগুলির উপর ভিত্তি করে প্রদর্শন করার জন্য। এটি সময়ের সাথে সাথে ক্লিক-থ্রু রেট বা রূপান্তর সর্বাধিক করতে সহায়তা করে।
  2. ক্লিনিকাল ট্রায়াল : চিকিৎসা গবেষণায়, MAB অ্যালগরিদমগুলি গতিশীলভাবে রোগীদের বিভিন্ন চিকিত্সার জন্য বরাদ্দ করতে ব্যবহার করা যেতে পারে। এটি নিশ্চিত করে যে আরও রোগীরা সর্বাধিক কার্যকর চিকিত্সা গ্রহণ করে, এইভাবে অনুশোচনা হ্রাস করে, অর্থাত্ সর্বদা সর্বোত্তম চিকিত্সা বেছে না নেওয়ার কারণে যে ক্ষতি হয়।
  3. সংবাদ নিবন্ধের সুপারিশ : সংবাদ ওয়েবসাইটগুলি প্রতিটি ব্যবহারকারীকে দেখানো নিবন্ধগুলি ব্যক্তিগতকৃত করতে MABs ব্যবহার করতে পারে। MAB অ্যালগরিদম সময়ের সাথে সাথে প্রতিটি ব্যবহারকারীর কোন ধরনের নিবন্ধে আগ্রহী তা জানতে পারে এবং সেই অনুযায়ী সুপারিশগুলি সামঞ্জস্য করতে পারে।
  4. ডাইনামিক প্রাইসিং : ই-কমার্স প্ল্যাটফর্ম বা এয়ারলাইনগুলি তাদের মূল্য নির্ধারণের কৌশলগুলিকে রিয়েল টাইমে অপ্টিমাইজ করতে, গ্রাহকের আচরণ এবং বাজারের গতিশীলতার উপর ভিত্তি করে সর্বাধিক আয়ের জন্য MAB অ্যালগরিদম ব্যবহার করতে পারে।
  5. নেটওয়ার্ক রাউটিং : কম্পিউটার নেটওয়ার্কিং-এ, MAB অ্যালগরিদমগুলি যানজট পরিচালনা করতে এবং প্যাকেটগুলির রাউটিং অপ্টিমাইজ করতে ব্যবহার করা যেতে পারে। প্রতিটি রুটকে একটি বাহু হিসাবে বিবেচনা করা যেতে পারে, এবং অ্যালগরিদম প্যাকেটের ক্ষতি বা লেটেন্সি কমাতে গতিশীলভাবে রুট নির্বাচন করতে পারে।
  6. মেশিন লার্নিং হাইপারপ্যারামিটার টিউনিং : মেশিন লার্নিং মডেলগুলিতে হাইপারপ্যারামিটার নির্বাচনকে অপ্টিমাইজ করতে MABs ব্যবহার করা যেতে পারে। হাইপারপ্যারামিটারের প্রতিটি সেটকে একটি বাহু হিসাবে বিবেচনা করা যেতে পারে এবং সর্বোত্তম মডেল কনফিগারেশন খুঁজে পেতে অ্যালগরিদম পুনরাবৃত্তিমূলকভাবে নির্বাচনকে পরিমার্জন করতে পারে।


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

উপসংহার

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