PyBrain একটি শক্তিশালী লাইব্রেরি যা মেশিন লার্নিং মডেল তৈরি, ট্রেনিং এবং মূল্যায়ন করার জন্য বিভিন্ন সরঞ্জাম সরবরাহ করে। এখানে আমরা মডেল ট্রেনিং এবং মূল্যায়ন (evaluation) সম্পর্কিত প্রক্রিয়াগুলি আলোচনা করব।
১. মডেল Training (প্রশিক্ষণ)
মডেল ট্রেনিং বা প্রশিক্ষণ হল সেই প্রক্রিয়া যেখানে একটি মডেল ডেটার উপর ভিত্তি করে শিখে এবং তার আউটপুট নির্ধারণ করে। PyBrain এ মডেল ট্রেনিং সাধারণত Trainer ক্লাস ব্যবহার করে করা হয়, বিশেষভাবে BackpropTrainer ব্যবহার করে।
১.১ Trainer ক্লাস (মডেল ট্রেনিং)
PyBrain এর Trainer ক্লাস ডেটা সেট থেকে মডেল শিখতে সাহায্য করে। এই ক্লাসটি মডেল ট্রেনিংয়ের জন্য সাধারণ কাজগুলি যেমন ফিডফরওয়ার্ড পাস, ব্যাকপ্রপাগেশন, এবং গ্রেডিয়েন্ট আপডেট করে।
১.২ BackpropTrainer ব্যবহার করে ট্রেনিং
Backpropagation হল সবচেয়ে জনপ্রিয় ট্রেনিং অ্যালগরিদম যা নিউরাল নেটওয়ার্কে ব্যাকওয়ার্ড পাস করে ওজন আপডেট করে।
উদাহরণ:
from pybrain.tools.shortcuts import buildNetwork
from pybrain.datasets import ClassificationDataSet
from pybrain.supervised import BackpropTrainer
# ডেটাসেট তৈরি করা (ইনপুট ও আউটপুট)
ds = ClassificationDataSet(2, 1) # 2 ইনপুট ফিচার এবং 1 আউটপুট
ds.addSample([0.1, 0.2], [0])
ds.addSample([0.3, 0.4], [1])
ds.addSample([0.5, 0.6], [0])
ds.addSample([0.7, 0.8], [1])
# নিউরাল নেটওয়ার্ক তৈরি করা (2 ইনপুট, 3 হিডেন, 1 আউটপুট)
network = buildNetwork(2, 3, 1)
# ট্রেনার তৈরি করা
trainer = BackpropTrainer(network, dataset=ds)
# ট্রেনিং করা
trainer.trainEpochs(1000) # 1000 ইপোকস
# মডেল আউটপুট পরীক্ষা
print("Trained Network Output: ", network.activate([0.1, 0.2]))
এখানে:
- ds হল একটি ClassificationDataSet যা ইনপুট এবং আউটপুট ডেটা ধারণ করে।
- buildNetwork ফাংশনটি একটি নিউরাল নেটওয়ার্ক তৈরি করে।
- BackpropTrainer ক্লাসটি ব্যাকপ্রপাগেশন অ্যালগরিদমের মাধ্যমে মডেলটিকে ট্রেন করে।
১.৩ Epochs এবং Batch Processing
- Epoch হল একটি একক ট্রেনিং চক্র, যেখানে মডেল সমস্ত ডেটা দেখার পরে একটি পাস সম্পন্ন করে।
- Batch Processing এর মাধ্যমে একাধিক স্যাম্পল একসাথে ট্রেন করা হয়।
২. মডেল Evaluation (মূল্যায়ন)
মডেল মূল্যায়ন হল সেই প্রক্রিয়া যেখানে মডেলটির কার্যকারিতা পরিমাপ করা হয়। এটি সাধারণত মডেলের ট্রেনিং শেষে করা হয়, যেখানে মডেলটির আউটপুট এবং প্রকৃত আউটপুটের সাথে তুলনা করা হয়।
২.১ Evaluation Metrics
মডেল মূল্যায়ন করার জন্য বিভিন্ন মেট্রিক্স ব্যবহৃত হয়:
- Accuracy: এটি দেখায় মডেলটি সঠিকভাবে কতটি আউটপুট প্রেডিক্ট করেছে।
- Confusion Matrix: এটি প্রকৃত এবং পূর্বাভাস করা ক্লাসগুলির মধ্যে সম্পর্কের একটি টেবিল।
- Mean Squared Error (MSE): এটি মূলত রিগ্রেশন মডেলের জন্য ব্যবহৃত হয় এবং এটি আউটপুটের সাথে প্রকৃত মানের পার্থক্য মাপতে সাহায্য করে।
২.২ PyBrain এ Evaluation
PyBrain এ সাধারণত ClassificationDataSet বা RegressionDataSet থেকে মডেল মূল্যায়ন করা হয়। এখানে আমরা Accuracy এবং MSE গণনা করার একটি উদাহরণ দেখবো:
উদাহরণ: Accuracy মাপা
from pybrain.datasets import ClassificationDataSet
from pybrain.supervised import BackpropTrainer
# ডেটাসেট তৈরি
ds = ClassificationDataSet(2, 1)
ds.addSample([0.1, 0.2], [0])
ds.addSample([0.3, 0.4], [1])
ds.addSample([0.5, 0.6], [0])
ds.addSample([0.7, 0.8], [1])
# নিউরাল নেটওয়ার্ক তৈরি
network = buildNetwork(2, 3, 1)
# ট্রেনার তৈরি
trainer = BackpropTrainer(network, dataset=ds)
# মডেল ট্রেনিং
trainer.trainEpochs(1000)
# সঠিক আউটপুট গণনা
correct = 0
for inp, target in ds:
output = network.activate(inp)
if round(output[0]) == target[0]:
correct += 1
accuracy = correct / len(ds) * 100
print("Accuracy: ", accuracy, "%")
উদাহরণ: Mean Squared Error (MSE)
import numpy as np
# Mean Squared Error (MSE) গণনা করা
mse = np.mean((network.activateOnDataset(ds) - ds['target'])**2)
print("Mean Squared Error: ", mse)
সারাংশ
- মডেল ট্রেনিং: PyBrain এ BackpropTrainer ব্যবহার করে মডেলটি ট্রেন করা হয়। ট্রেনিংয়ের জন্য ডেটাসেট এবং নিউরাল নেটওয়ার্ক কাঠামো নির্ধারণ করতে হয়।
- মডেল মূল্যায়ন: মডেলটির কার্যকারিতা Accuracy, Confusion Matrix, বা Mean Squared Error (MSE) দিয়ে মূল্যায়ন করা হয়। এটি মডেলের আউটপুট এবং প্রকৃত আউটপুটের মধ্যে পার্থক্য পরিমাপ করতে সাহায্য করে।
এভাবে, আপনি PyBrain ব্যবহার করে আপনার মডেলটি ট্রেন করতে পারবেন এবং তার পর কার্যকারিতা মূল্যায়ন করতে পারবেন।
Read more