Grid Search এবং Random Search এর মাধ্যমে Hyperparameter Tuning

Hyperparameter Tuning এবং Optimization - কেরাস (Keras) - Machine Learning

314

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

Grid Search এবং Random Search দুটি সাধারণ কৌশল যা মেশিন লার্নিং মডেলের হাইপারপ্যারামিটার টিউনিংয়ের জন্য ব্যবহৃত হয়।


১. Grid Search

Grid Search একটি পদ্ধতি যেখানে সমস্ত সম্ভাব্য হাইপারপ্যারামিটার সমন্বয়ের জন্য একটি exhaustive search করা হয়। Grid Search একটি নির্দিষ্ট পরিসরে বিভিন্ন হাইপারপ্যারামিটার পরীক্ষা করে এবং মডেলটির পারফরম্যান্স সবচেয়ে ভালো হওয়া সেটি নির্বাচন করে।

Grid Search এর কাজ করার পদ্ধতি:

  1. প্রথমে আপনি মডেলের জন্য যেসব হাইপারপ্যারামিটার টিউন করতে চান, সেগুলোর মানের একটি তালিকা প্রস্তুত করেন।
  2. তারপর, এই সমস্ত মানের সাথে একটি Cartesian Product তৈরি করে সমস্ত কম্বিনেশন পরীক্ষা করা হয়।
  3. প্রতিটি কম্বিনেশনের জন্য মডেল প্রশিক্ষণ এবং মূল্যায়ন করা হয়, এবং সবচেয়ে ভালো পারফরম্যান্স দেয় এমন কম্বিনেশন নির্বাচন করা হয়।

উদাহরণ:

ধরা যাক, আপনি একটি Random Forest মডেল ট্রেন করছেন এবং তার n_estimators (এবং কিভাবে ট্রেন করতে হবে তা জানানো হবে) এবং max_depth হাইপারপ্যারামিটারগুলোর জন্য Grid Search করতে চান।

from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestClassifier

# Random Forest মডেল
rf = RandomForestClassifier()

# Hyperparameter গ্রিড
param_grid = {
    'n_estimators': [10, 50, 100],
    'max_depth': [5, 10, 15]
}

# GridSearchCV সেটআপ
grid_search = GridSearchCV(estimator=rf, param_grid=param_grid, cv=5, n_jobs=-1)

# ফিট করা
grid_search.fit(X_train, y_train)

# সেরা পারফরম্যান্স পাওয়া হাইপারপ্যারামিটার
print("Best parameters:", grid_search.best_params_)

Grid Search এর সুবিধা:

  • এটি সমস্ত সম্ভাব্য হাইপারপ্যারামিটার পরীক্ষা করে, তাই সঠিক মান পাওয়া নিশ্চিত।
  • মডেলের পারফরম্যান্সের জন্য নির্দিষ্ট মানের নির্বাচন নিশ্চিত করে।

Grid Search এর অসুবিধা:

  • এটি অনেক সময়সাপেক্ষ এবং কম্পিউটেশনালভাবে ব্যয়বহুল হতে পারে, কারণ সমস্ত সমন্বয়ের জন্য পরীক্ষা করা হয়।
  • বড় ডেটাসেট বা অনেক হাইপারপ্যারামিটার থাকলে এটি দীর্ঘ সময় নেবে।

২. Random Search

Random Search হল একটি পদ্ধতি যেখানে একটি নির্দিষ্ট পরিসরে হাইপারপ্যারামিটারগুলোর মানগুলো এলোমেলোভাবে নির্বাচন করা হয় এবং সেই মানের জন্য মডেলটি প্রশিক্ষিত করা হয়। এটি কম্পিউটেশনালভাবে Grid Search এর তুলনায় অনেক দ্রুত হতে পারে, বিশেষত যখন হাইপারপ্যারামিটার স্পেস বড় হয়।

Random Search এর কাজ করার পদ্ধতি:

  1. প্রথমে, আপনি হাইপারপ্যারামিটারগুলির জন্য একটি মানের পরিসর নির্বাচন করেন।
  2. তারপর এলোমেলোভাবে কিছু ভ্যালু সিলেক্ট করা হয় এবং সেগুলো পরীক্ষা করা হয়।
  3. প্রতিটি পরীক্ষা শেষে, সবচেয়ে ভালো পারফরম্যান্স পাওয়া হাইপারপ্যারামিটার নির্বাচন করা হয়।

উদাহরণ:

from sklearn.model_selection import RandomizedSearchCV
from sklearn.ensemble import RandomForestClassifier
from scipy.stats import randint

# Random Forest মডেল
rf = RandomForestClassifier()

# Hyperparameter গ্রিড
param_dist = {
    'n_estimators': randint(10, 200),  # 10 থেকে 200 এর মধ্যে এলোমেলো মান
    'max_depth': randint(5, 20)         # 5 থেকে 20 এর মধ্যে এলোমেলো মান
}

# RandomizedSearchCV সেটআপ
random_search = RandomizedSearchCV(estimator=rf, param_distributions=param_dist, n_iter=100, cv=5, n_jobs=-1)

# ফিট করা
random_search.fit(X_train, y_train)

# সেরা পারফরম্যান্স পাওয়া হাইপারপ্যারামিটার
print("Best parameters:", random_search.best_params_)

Random Search এর সুবিধা:

  • এটি Grid Search এর চেয়ে দ্রুত, কারণ এটি সমস্ত কম্বিনেশন পরীক্ষা না করে শুধুমাত্র কিছু এলোমেলো কম্বিনেশন পরীক্ষা করে।
  • এটি বড় ডেটাসেট এবং বড় হাইপারপ্যারামিটার স্পেসের জন্য আরও কার্যকরী।

Random Search এর অসুবিধা:

  • এতে সঠিক মান খুঁজে পাওয়ার নিশ্চয়তা নেই, কারণ এটি এলোমেলোভাবে কম্বিনেশন নির্বাচন করে এবং সব সমন্বয়ের পরীক্ষা করে না।
  • কিছু ক্ষেত্রে, এটি Grid Search এর তুলনায় কম ভালো ফলাফল দিতে পারে।

৩. Grid Search এবং Random Search এর তুলনা

বৈশিষ্ট্যGrid SearchRandom Search
পরীক্ষিত কম্বিনেশনসমস্ত সম্ভব কম্বিনেশনএলোমেলোভাবে নির্বাচিত কিছু কম্বিনেশন
কম্পিউটেশনাল খরচঅনেক বেশি, কারণ সমস্ত কম্বিনেশন পরীক্ষা করতে হয়কম, কারণ এটি এলোমেলোভাবে কম্বিনেশন পরীক্ষা করে
পারফরম্যান্সসর্বোচ্চ পারফরম্যান্স দেওয়ার সম্ভাবনা বেশিকিছু ক্ষেত্রে কম পারফরম্যান্স হতে পারে
সীমাবদ্ধতাবৃহৎ হাইপারপ্যারামিটার স্পেসে ধীরগতিতে কাজ করেবড় স্পেসে দ্রুত কাজ করে, কিন্তু সঠিক পারফরম্যান্স নিশ্চিত নয়
ফলাফল পাওয়ার সময়বেশি সময় নেয়কম সময় নেয়

সারাংশ

  • Grid Search হল একটি exhaustive search পদ্ধতি যা সমস্ত সম্ভাব্য হাইপারপ্যারামিটার কম্বিনেশন পরীক্ষা করে, তবে এটি কম্পিউটেশনালি ব্যয়বহুল হতে পারে।
  • Random Search একটি এলোমেলো সার্চ পদ্ধতি, যা দ্রুত কাজ করে এবং অনেক বড় হাইপারপ্যারামিটার স্পেসের জন্য কার্যকর। তবে, এর মাধ্যমে সঠিক ফলাফল পাওয়ার নিশ্চয়তা থাকে না।

প্রথমবারের মতো Hyperparameter Tuning শুরু করার জন্য Random Search ভালো হতে পারে, এবং নির্দিষ্ট ফলাফল পেতে Grid Search ব্যবহার করা যেতে পারে।

Content added By
Promotion

Are you sure to start over?

Loading...