Single-Layer এবং Multi-Layer Perceptron

Machine Learning - পাইথন কৃত্রিম বুদ্ধিমত্তা (Artificial Intelligence with Python) - নিউরাল নেটওয়ার্ক এবং ডিপ লার্নিং (Neural Networks & Deep Learning)
463

Perceptron হলো একটি প্রাথমিক নিউরাল নেটওয়ার্ক মডেল যা বিশেষ করে কৃত্রিম নিউরাল নেটওয়ার্কের ভিত্তি হিসেবে ব্যবহৃত হয়। এটি ইনপুট এবং আউটপুট নোড বা ইউনিটের মধ্যকার সম্পর্ক শিখে ক্লাসিফিকেশন বা রিগ্রেশন কাজ করতে সক্ষম।

এখানে Single-Layer Perceptron (SLP) এবং Multi-Layer Perceptron (MLP) নিয়ে বিস্তারিত আলোচনা করা হলো:


Single-Layer Perceptron (SLP)

Single-Layer Perceptron (SLP) হলো একটি খুবই মৌলিক নিউরাল নেটওয়ার্ক যা শুধুমাত্র একটি একক লেয়ার ব্যবহার করে ইনপুট এবং আউটপুট নোডের মধ্যে সম্পর্ক শিখতে। এটি লিনিয়ার সেপারেবিলিটি (Linear Separability) কাজে লাগে, অর্থাৎ যখন ডেটা দুটি শ্রেণীতে বিভক্ত হতে পারে একটি সরল রেখা বা সমতল দিয়ে।

SLP এর কাঠামো:

  • ইনপুট লেয়ার (Input Layer): একাধিক ইনপুট ইউনিট বা নোড, যা নিউরাল নেটওয়ার্কে ডেটা গ্রহণ করে।
  • আউটপুট লেয়ার (Output Layer): এক বা একাধিক আউটপুট নোড, যা নিউরাল নেটওয়ার্কের ফলাফল প্রদান করে।
  • ওজন (Weights): প্রতিটি ইনপুটের সাথে সংশ্লিষ্ট একটি ওজন থাকে যা ইনপুট সিগন্যালের শক্তি নির্ধারণ করে।

বিশেষত্ব:

  • লিনিয়ার ক্লাসিফিকেশন: SLP শুধুমাত্র সোজা (লিনিয়ার)ভাবে বিভক্ত করা সম্ভব এমন ডেটার ক্লাসিফিকেশন করতে পারে। যেমন, XOR সমস্যা SLP দ্বারা সমাধান করা সম্ভব নয়।
  • Activation Function: SLP সাধারণত Step Function বা Sigmoid Function ব্যবহার করে সিদ্ধান্ত নেয়।

SLP এর উদাহরণ:

import numpy as np
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.neural_network import MLPClassifier
from sklearn.metrics import accuracy_score

# কৃত্রিম ডেটাসেট তৈরি করা
X, y = make_classification(n_samples=1000, n_features=2, n_classes=2, random_state=42)

# ডেটা ট্রেনিং এবং টেস্টিং সেটে ভাগ করা
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# Single-Layer Perceptron (SLP) মডেল তৈরি
model = MLPClassifier(hidden_layer_sizes=(), max_iter=1000, random_state=42)
model.fit(X_train, y_train)

# পূর্বাভাস করা
y_pred = model.predict(X_test)

# Accuracy গণনা করা
print("Accuracy:", accuracy_score(y_test, y_pred))

Multi-Layer Perceptron (MLP)

Multi-Layer Perceptron (MLP) হলো একটি আরও উন্নত নিউরাল নেটওয়ার্ক মডেল, যেখানে একাধিক লুকানো লেয়ার (Hidden Layers) ব্যবহৃত হয়। এটি Non-Linear Separability ডেটা ক্লাসিফিকেশন করতে সক্ষম, যা Single-Layer Perceptron দ্বারা সম্ভব নয়। MLP এনকোডিং এবং ডিকোডিং, ফিচার এক্সট্র্যাকশন, এবং কমপ্লেক্স সমস্যা সমাধান করতে সক্ষম।

MLP এর কাঠামো:

  • ইনপুট লেয়ার (Input Layer): ইনপুট ডেটা গ্রহণ করে, যেটি বিভিন্ন বৈশিষ্ট্য থেকে তৈরি হয়।
  • লুকানো লেয়ার (Hidden Layer): এক বা একাধিক লুকানো লেয়ার থাকতে পারে যা ইনপুট এবং আউটপুট নোডের মধ্যকার সম্পর্ক শিখে।
  • আউটপুট লেয়ার (Output Layer): ক্লাসিফিকেশন বা রিগ্রেশন ফলাফল প্রদান করে।
  • Activation Function: সাধারণত ReLU, Sigmoid, বা Tanh ফাংশন ব্যবহার করা হয়।

MLP এর বৈশিষ্ট্য:

  • Non-linear Decision Boundaries: MLP লিনিয়ার সিদ্ধান্ত সীমার বাইরে ডেটার সম্পর্ক শিখতে সক্ষম।
  • বহু লুকানো লেয়ার: একাধিক লুকানো লেয়ার নিউরাল নেটওয়ার্ককে আরও জটিল এবং শক্তিশালী করে তোলে।
  • ব্যাকপ্রোপাগেশন (Backpropagation): এটি মডেল ট্রেনিং এর একটি গুরুত্বপূর্ণ অংশ, যেখানে ভুল পূর্বাভাসের জন্য ওজন আপডেট করা হয়।

MLP এর উদাহরণ:

from sklearn.neural_network import MLPClassifier
from sklearn.metrics import accuracy_score

# MLP মডেল তৈরি করা
model_mlp = MLPClassifier(hidden_layer_sizes=(5, 5), max_iter=1000, random_state=42)
model_mlp.fit(X_train, y_train)

# পূর্বাভাস করা
y_pred_mlp = model_mlp.predict(X_test)

# Accuracy গণনা করা
print("MLP Accuracy:", accuracy_score(y_test, y_pred_mlp))

SLP এবং MLP এর মধ্যে পার্থক্য

পার্থক্যের ধরনSingle-Layer Perceptron (SLP)Multi-Layer Perceptron (MLP)
লুকানো লেয়ারএকমাত্র ইনপুট এবং আউটপুট লেয়ারএক বা একাধিক লুকানো লেয়ার
ক্লাসিফিকেশন ক্ষমতাশুধুমাত্র লিনিয়ার সেপারেবিলিটি (Linear Separability)লিনিয়ার এবং নন-লিনিয়ার সেপারেবিলিটি (Non-Linear Separability)
পারফরম্যান্সসরল এবং দ্রুত, কিন্তু সীমিত ক্ষমতাশক্তিশালী, তবে কম্পিউটেশনালভাবে বেশি খরচ হয়
মডেল ক্ষমতাসহজ এবং সরলজটিল এবং শক্তিশালী
প্রধান ব্যবহৃত ফাংশনStep Function বা SigmoidReLU, Sigmoid, Tanh, Softmax
ব্যাকপ্রোপাগেশননেইআছে (ব্যাকপ্রোপাগেশন ব্যবহৃত হয়)

সারাংশ

  • Single-Layer Perceptron (SLP) একটি খুব সহজ নিউরাল নেটওয়ার্ক যা একক লেয়ার ব্যবহার করে এবং শুধুমাত্র লিনিয়ার সম্পর্ক শিখতে সক্ষম।
  • Multi-Layer Perceptron (MLP) একাধিক লুকানো লেয়ার ব্যবহার করে এবং এটি নন-লিনিয়ার সম্পর্ক শিখতে সক্ষম, যা এটিকে আরো শক্তিশালী এবং কমপ্লেক্স সমস্যার সমাধানে সহায়ক করে।

এখনো SLP সাধারণত সহজ এবং দ্রুত, তবে MLP অত্যন্ত শক্তিশালী এবং অনেক বৃহত্তর কাজের জন্য ব্যবহৃত হয়, যেমন ইমেজ রিকগনিশন, ভাষা প্রক্রিয়াকরণ এবং জটিল ডেটা মডেলিং।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...