ডীপ লার্নিং বা মেশিন লার্নিং মডেল ট্রেনিং এবং মূল্যায়ন (evaluation) একটি গুরুত্বপূর্ণ প্রক্রিয়া যা মডেলের পারফরম্যান্স নির্ধারণে সহায়ক। এখানে Keras এবং TensorFlow ব্যবহার করে মডেল ট্রেনিং এবং ইভ্যালুয়েশন করার জন্য প্রয়োজনীয় পদক্ষেপ এবং কোড উদাহরণ দেওয়া হয়েছে।
১. মডেল ট্রেনিং (Model Training)
মডেল ট্রেনিং হল সেই প্রক্রিয়া যার মাধ্যমে মডেল বিভিন্ন ইনপুট ডেটার মাধ্যমে শেখে এবং প্রতিটি ইনপুটের জন্য সঠিক আউটপুট দেওয়া শেখে। মডেল ট্রেনিং সাধারণত ফিচার ডেটা (X_train) এবং লেবেল (Y_train) এর উপর ভিত্তি করে হয়।
১.১ মডেল ট্রেনিং কোড:
নিচে একটি সাধারণ নিউরাল নেটওয়ার্ক মডেল তৈরি এবং ট্রেনিং করার উদাহরণ দেওয়া হল:
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.optimizers import Adam
# মডেল তৈরি করা
model = Sequential()
# ইনপুট লেয়ার
model.add(Dense(64, input_dim=8, activation='relu'))
# হিডেন লেয়ার
model.add(Dense(32, activation='relu'))
# আউটপুট লেয়ার
model.add(Dense(1, activation='sigmoid'))
# মডেল কম্পাইল করা
model.compile(loss='binary_crossentropy',
optimizer=Adam(),
metrics=['accuracy'])
# ডেটা তৈরি করা
import numpy as np
X_train = np.random.rand(100, 8) # 100 উদাহরণ, 8 ইনপুট ফিচার
y_train = np.random.randint(0, 2, 100) # 100 লেবেল (0 বা 1)
# মডেল প্রশিক্ষণ
model.fit(X_train, y_train, epochs=10, batch_size=32)
এখানে:
model.fit()ফাংশনটি মডেলকে ট্রেনিং ডেটা (X_train এবং y_train) দিয়ে ট্রেনিং করতে সাহায্য করে।epochsহল প্রশিক্ষণের জন্য ডেটাসেটটি কতবার প্রক্রিয়া করা হবে।batch_sizeহল একবারে কতগুলো উদাহরণ মডেলে পাস করা হবে।
২. মডেল Evaluate করা
মডেল ট্রেনিং করার পর, এটি মূল্যায়ন করার জন্য ইভ্যালুয়েশন প্রক্রিয়া প্রয়োজন। মডেল ইভ্যালুয়েশন হল মডেলের পারফরম্যান্স পরিমাপ করার প্রক্রিয়া, যা সাধারণত টেস্ট ডেটা এর উপর ভিত্তি করে করা হয়।
২.১ মডেল Evaluate কোড:
model.evaluate() ফাংশনটি একটি মডেলকে নির্দিষ্ট টেস্ট ডেটা দিয়ে মূল্যায়ন করার জন্য ব্যবহৃত হয়।
# টেস্ট ডেটা তৈরি
X_test = np.random.rand(20, 8) # 20 উদাহরণ, 8 ইনপুট ফিচার
y_test = np.random.randint(0, 2, 20) # 20 লেবেল (0 বা 1)
# মডেল Evaluate করা
loss, accuracy = model.evaluate(X_test, y_test)
# ফলাফল প্রিন্ট করা
print(f'Loss: {loss}')
print(f'Accuracy: {accuracy}')
এখানে:
model.evaluate()ফাংশনটি মডেলকে টেস্ট ডেটা (X_test,y_test) দিয়ে মূল্যায়ন করবে এবং এটি দুটি আউটপুট প্রদান করবে:- Loss: এটি মডেলের ভুলের পরিমাণ (যত কম হবে, তত ভালো)।
- Accuracy: এটি মডেলের সঠিকতার পরিমাণ (যত বেশি হবে, তত ভালো)।
২.২ মেট্রিক্স (Metrics):
মডেল ট্রেনিং এবং ইভ্যালুয়েশন করার সময় মেট্রিক্স যেমন accuracy, precision, recall, F1-score ইত্যাদি ব্যবহৃত হতে পারে। Keras আপনাকে বিভিন্ন ধরনের মেট্রিক্স ব্যবহার করার সুযোগ দেয়।
উদাহরণ:
from sklearn.metrics import classification_report
# মডেল থেকে প্রেডিকশন করা
y_pred = model.predict(X_test)
y_pred_classes = (y_pred > 0.5).astype("int32") # থ্রেশহোল্ড 0.5 দিয়ে ক্লাসিফিকেশন
# ক্লাসিফিকেশন রিপোর্ট
print(classification_report(y_test, y_pred_classes))
এখানে:
- classification_report মেট্রিক্সে
precision,recall,f1-scoreএবং অন্যান্য মেট্রিক্স দেখা যাবে, যা মডেলের পারফরম্যান্স মূল্যায়নে সহায়তা করবে।
৩. কনফিউশন ম্যাট্রিক্স (Confusion Matrix)
কনফিউশন ম্যাট্রিক্সটি সাধারণত binary classification অথবা multi-class classification এর জন্য ব্যবহৃত হয়, যা মডেলের সঠিকতা এবং ভুলের বিষয়ে বিস্তারিত তথ্য প্রদান করে।
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix
import seaborn as sns
# কনফিউশন ম্যাট্রিক্স তৈরি
cm = confusion_matrix(y_test, y_pred_classes)
# কনফিউশন ম্যাট্রিক্স প্লট করা
plt.figure(figsize=(6,6))
sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', xticklabels=['Class 0', 'Class 1'], yticklabels=['Class 0', 'Class 1'])
plt.xlabel('Predicted')
plt.ylabel('True')
plt.title('Confusion Matrix')
plt.show()
এখানে:
- Confusion Matrix এর মাধ্যমে আপনি মডেলের ভুল এবং সঠিক প্রেডিকশন গুলি বিশ্লেষণ করতে পারবেন, যেমন টু-টু টেকনিক্যাল রিডকশনের জন্য।
৪. মডেল Save এবং Load করা
একবার মডেল ট্রেনিং হয়ে গেলে, আপনি মডেলটি save করতে পারেন এবং পরে তা load করে আবার ব্যবহার করতে পারেন।
৪.১ মডেল সেভ করা:
# মডেল সেভ করা
model.save('model.h5')
৪.২ মডেল লোড করা:
from tensorflow.keras.models import load_model
# সেভ করা মডেল লোড করা
loaded_model = load_model('model.h5')
এটি আপনাকে একই মডেল পুনরায় লোড এবং ব্যবহার করার সুযোগ দেয়।
সারাংশ
- মডেল ট্রেনিং:
model.fit()ফাংশন ব্যবহার করে আপনার মডেলকে প্রশিক্ষণ দিন। - মডেল Evaluate:
model.evaluate()ফাংশন ব্যবহার করে আপনার মডেলকে টেস্ট ডেটা দিয়ে মূল্যায়ন করুন। - মেট্রিক্স:
accuracy,precision,recallএবংF1-scoreইত্যাদি মেট্রিক্স মডেলের পারফরম্যান্স পরিমাপ করতে ব্যবহৃত হয়। - কনফিউশন ম্যাট্রিক্স: এটি মডেলের ভুল এবং সঠিক প্রেডিকশন বিশ্লেষণ করতে সহায়তা করে।
- মডেল Save এবং Load: মডেল সেভ করে পরবর্তী সময়ে পুনরায় ব্যবহার করা সম্ভব।
এই পদক্ষেপগুলো অনুসরণ করে আপনি সহজে আপনার মডেল ট্রেনিং এবং ইভ্যালুয়েশন করতে পারবেন।
Read more