Header Ads

Header ADS

Artificial Neural Network (ANN)

 



🧠 ১. Neurons (বা Nodes)

Neurons হলো ANN-এর সবচেয়ে মৌলিক ইউনিট। প্রতিটা neuron একটি ইনপুট পায়, সেটার উপর কিছু গাণিতিক ফাংশন (যেমন weighted sum) প্রয়োগ করে, তারপর activation function এর মাধ্যমে আউটপুট দেয়।

ধরুন:
একটি neuron নিচেরভাবে কাজ করে:

z=w1x1+w2x2+...+wnxn+bz = w_1x_1 + w_2x_2 + ... + w_nx_n + b

এখানে,

  1. x1,x2,...,xnx_1, x_2, ..., x_n হলো ইনপুট ভ্যালু

  2. w1,w2,...,wnw_1, w_2, ..., w_n হলো ওজন (weights)

  3. bb হলো বায়াস (bias)

  4. তারপর z-এর উপর activation function প্রয়োগ করে আউটপুট পাওয়া যায়।


🧱 ২. Layers (স্তর)

ANN-এ সাধারণত তিন ধরনের লেয়ার থাকে:

  1. Input Layer:

    1. যেখানে ডেটা প্রবেশ করে।

    2. এই লেয়ারে কেবল ইনপুট থাকে, কোনো প্রসেসিং হয় না।

  2. Hidden Layers:

    1. মূল ক্যালকুলেশন এই লেয়ারগুলোতে হয়।

    2. এক বা একাধিক hidden layer থাকতে পারে।

    3. প্রতিটি layer অনেকগুলো neuron নিয়ে গঠিত।

  3. Output Layer:

    1. শেষ লেয়ার যেটা ফাইনাল রেজাল্ট দেয়।

    2. যেমন: Binary classification হলে একটি neuron থাকবে যেটা 0 বা 1 রিটার্ন করবে।


🔗 ৩. Connections (সংযোগ)

  1. প্রতিটি neuron আগের লেয়ারের neuron গুলোর সাথে সংযুক্ত থাকে।

  2. প্রতিটি সংযোগের সাথে একটি weight থাকে।

  3. এই weight-ই শেখার সময় পরিবর্তিত হয় (Training phase এ)।

  4. সংযোগের মাধ্যমে ডেটা এক লেয়ার থেকে আরেক লেয়ারে যায়।

উদাহরণ:


Input Layer (3 neuron) ↓ ↓ ↓ Hidden Layer (4 neuron) ↓ ↓ ↓ Output Layer (1 neuron)

প্রতিটি উপরের থেকে নিচের দিকে সম্পূর্ণ সংযুক্ত (fully connected) থাকে।


⚙️ ৪. Activation Function (সক্রিয়করণ ফাংশন)

এই ফাংশনের কাজ হলো Neuron-এর আউটপুটকে একটি নির্দিষ্ট ফর্মে রূপান্তর করা, যাতে complex এবং nonlinear সম্পর্ক শিখতে পারে।

বিভিন্ন ধরনের Activation Function:

নামফর্মুলাবৈশিষ্ট্য
Sigmoid11+ez\frac{1}{1 + e^{-z}}আউটপুট: 0 থেকে 1 এর মধ্যে
Tanhezezez+ez\frac{e^z - e^{-z}}{e^z + e^{-z}}আউটপুট: -1 থেকে 1
ReLU (Rectified Linear Unit)max(0,z)max(0, z)খুব জনপ্রিয়, স্পারস অ্যাক্টিভেশন দেয়
Softmaxeziezj\frac{e^{z_i}}{\sum e^{z_j}}Multi-class classification-এ ব্যবহার হয়

🧮 ছোট্ট উদাহরণ:

ধরুন আপনি একটি image input দিলেন। সেই image যাবে Input Layer-এ → তারপর Hidden Layers-এ → সেখানে Weighted sum + Activation Function → শেষে Output Layer → Output: “This is a Cat”।


🧠 সংক্ষেপে মনে রাখার ট্রিক:

  1. Neuron: ছোট কম্পিউটার প্রসেসর

  2. Layer: বহু neuron এর একটি স্তর

  3. Connections: এক neuron থেকে অন্য neuron এ তথ্য প্রবাহের পথ

  4. Activation Function: ইনপুটকে ব্যাবহারযোগ্য আউটপুটে রূপান্তর করে



Sigmoid, Tanh, ReLU এবং Softmax activation functions-এর বিশদভাবে সুবিধা (Advantages) এবং অসুবিধা (Disadvantages) ব্যাখ্যা :


✅ ১. Sigmoid Activation Function

📌 ফর্মুলা:

σ(x)=11+ex\sigma(x) = \frac{1}{1 + e^{-x}}

📊 আউটপুট রেঞ্জ: (0, 1)


✔️ সুবিধা (Advantages):

  1. Probabilistic output দেয় — আউটপুট সবসময় 0 ও 1 এর মধ্যে থাকে, তাই Binary Classification-এর জন্য ভালো।

  2. Smooth gradient — গ্র্যাডিয়েন্ট স্মুথ হওয়ায় ব্যাকপ্রোপাগেশন সহজ হয়।


অসুবিধা (Disadvantages):

  1. Vanishing Gradient Problem — বড় বা ছোট ইনপুটের জন্য gradient প্রায় শূন্য হয়ে যায়, ফলে নেটওয়ার্ক শেখে না।

  2. Output not zero-centered — সব আউটপুট ধনাত্মক হওয়ায় weight update এর সময় সমস্যা হয় (oscillation বেড়ে যায়)।

  3. Computation ব্যয়বহুল — exponentiation (e^-x) করার দরকার হয়।


✅ ২. Tanh Activation Function

📌 ফর্মুলা:

tanh(x)=exexex+extanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}

📊 আউটপুট রেঞ্জ: (-1, 1)


✔️ সুবিধা (Advantages):

  1. Zero-centered — Sigmoid-এর চেয়ে ভালো কারণ এর আউটপুট 0 কেন্দ্রিক।

  2. Smooth gradient — শেখার জন্য সহায়ক।


অসুবিধা (Disadvantages):

  1. Vanishing Gradient Problem — বড় ইনপুটের ক্ষেত্রে gradient অনেক ছোট হয়ে যায়।

  2. Computationally ব্যয়বহুল — Sigmoid-এর মতো exponentiation দরকার হয়।


✅ ৩. ReLU (Rectified Linear Unit)

📌 ফর্মুলা:

ReLU(x)=max(0,x)ReLU(x) = max(0, x)

📊 আউটপুট রেঞ্জ: [0, ∞)


✔️ সুবিধা (Advantages):

  1. Very efficient computation — সহজ ও দ্রুত হিসাব করা যায়।

  2. No vanishing gradient for positive x — gradient 1 থাকে, ফলে শেখার গতি বেশি।

  3. Sparse activation — কিছু neuron বন্ধ (0) হয়ে থাকে, ফলে efficiency বাড়ে।


অসুবিধা (Disadvantages):

  1. Dying ReLU Problem — কখনো কখনো neuron সবসময় 0 হয়ে যায় (যদি weight update-এর পর ইনপুট negative হয়ে পড়ে)।

  2. Not zero-centered — আউটপুট সবসময় ধনাত্মক থাকে।


✅ ৪. Softmax Activation Function

📌 ফর্মুলা:

Softmax(xi)=exijexjSoftmax(x_i) = \frac{e^{x_i}}{\sum_{j} e^{x_j}}

📊 আউটপুট রেঞ্জ: প্রতিটি ভ্যালু (0,1) এর মধ্যে এবং সব ভ্যালুর যোগফল = 1


✔️ সুবিধা (Advantages):

  1. Multi-class classification-এর জন্য উপযুক্ত — বিভিন্ন ক্লাসে belonging probability দেয়।

  2. Normalized output — সব আউটপুটের যোগফল 1 হয়, তাই একে probabilistic output হিসেবে ধরা যায়।


অসুবিধা (Disadvantages):

  1. Sensitive to large input values — যদি কোনো ইনপুট অনেক বড় হয়, সেটা অন্যান্য সব ভ্যালুকে দমন করে ফেলে।

  2. Computationally complex — exponentiation এবং normalization করতে হয়।

  3. Gradient saturation — বৃহৎ ইনপুটে কিছুটা vanishing gradient-এর সমস্যা হতে পারে।


📌 সংক্ষেপে তুলনা টেবিলে:

Function Range Vanishing Gradient Zero-Centered Use Case
Sigmoid (0, 1) ✅ High Risk ❌ No Binary classification
Tanh (-1, 1) ✅ Moderate Risk ✅ Yes Hidden layers (traditional)
ReLU [0, ∞) ❌ No (for x > 0) ❌ No Deep networks (hidden)
Softmax (0, 1), sum=1 ✅ Possible ❌ No Output layer for multi-class



Artificial Neural Networks (ANNs)-এর Advantages এবং Disadvantages :


Advantages (সুবিধা)

১. Flexible Output Type

🔹 মূল বক্তব্য:
ANN এর আউটপুট হতে পারে:

  1. একক সংখ্যা (Real-valued): যেমন 3.4

  2. শ্রেণীবদ্ধ মান (Discrete-valued): যেমন "Yes" বা "No"

  3. একাধিক মানের ভেক্টর (Vector of multiple values): যেমন [Yes, 0.87, 5.3]

🔹 ব্যাখ্যা:
ANN যে কোনো ধরনের সমস্যা সমাধান করতে পারে – যেমন:

  1. Classification: (যেমন: ইমেইল স্প্যাম কিনা)

  2. Regression: (যেমন: ভবিষ্যতের তাপমাত্রা কত হবে)

  3. Multivariate Prediction: (যেমন: একই সঙ্গে বিভিন্ন জিনিসের মান অনুমান করা)

🔹 উদাহরণ:
ধরো, তুমি একটি সিস্টেম বানালে যা একই সাথে:

  1. কোনো গ্রাহকের বয়স অনুমান করে (real-valued),

  2. তার পছন্দের প্রোডাক্ট ক্লাসিফাই করে (discrete),

  3. এবং ভবিষ্যতের খরচের পরিমাণ অনুমান করে (real-valued)।
    এই সব একসাথে ANN করতে পারে।


২. Noise Handling (শব্দ বা ভুল ডেটা সমস্যা করে না)

🔹 মূল বক্তব্য:
ট্রেইনিং ডেটাতে যদি কিছু ভুল থাকে (নয়েজ), তাহলেও ANN ঠিকঠাক শেখে।

🔹 ব্যাখ্যা:

  1. Real-world ডেটা প্রায়ই ভুল বা অসম্পূর্ণ হয়।

  2. ANN এমনভাবে ডিজাইন করা যে তা গড়পড়তা প্যাটার্ন চিনতে পারে।

  3. এর মানে, যদি কিছু ডেটা ভুলও থাকে, ANN তবুও মূল প্যাটার্নটি ধরতে পারে।

🔹 উদাহরণ:
একজন ছাত্র ভুলভাবে একটি উত্তর দিয়েছে — তবুও যদি অধিকাংশ ছাত্র ঠিক উত্তর দেয়, তাহলে শিক্ষকেরা বুঝতে পারে সঠিকটা কী। ঠিক একইভাবে ANN গড়পড়তা থেকে শেখে।


Disadvantages (অসুবিধা)

১. Hardware Dependence (হার্ডওয়্যার নির্ভরতা)

🔹 মূল বক্তব্য:
ANN অনেক বেশি কম্পিউটেশনাল পাওয়ার চায়। তাই GPU/TPU দরকার হয়।

🔹 ব্যাখ্যা:

  1. ANN-এ হাজার হাজার নোড ও লেয়ার থাকে।

  2. প্রতিটি সংযোগে matrix multiplication হয়।

  3. এটা প্রচুর র‍্যাম, প্রসেসিং পাওয়ার, এবং সময় লাগে।

  4. বড় মডেলের জন্য high-performance hardware দরকার, যা সবার কাছে নেই।


২. Black Box Nature (বুঝা যায় না ভিতরে কী হচ্ছে)

🔹 মূল বক্তব্য:
ANN কোন সিদ্ধান্তে পৌঁছালো, সেটা ব্যাখ্যা করা কঠিন।

🔹 ব্যাখ্যা:

  1. ANN-এর ভেতরে হাজার হাজার weight, bias, activation থাকে।

  2. Output আমরা দেখতে পারি, কিন্তু কোন feature সবচেয়ে গুরুত্বপূর্ণ ছিল – সেটা বোঝা কঠিন।

  3. এই কারণে, মেডিকেল বা আইনগত সিস্টেমে এটি risky হতে পারে।

🔹 উদাহরণ:
একজন ডাক্তার যদি বলে "এই ওষুধ নিন", আমরা জিজ্ঞেস করলে তিনি ব্যাখ্যা দিতে পারবেন।
কিন্তু ANN যদি বলে "এই রোগী ক্যানসার পেশেন্ট", তখন ব্যাখ্যা করা কঠিন হয় কেন সে এমন বলল।


🔚 সংক্ষেপে বলতে গেলে:

  1. সুবিধা: ANN শক্তিশালী, নমনীয়, এবং ভুল বা গোলমেলে ডেটাতেও কাজ করতে পারে।

  2. অসুবিধা: শক্তিশালী হার্ডওয়্যার দরকার এবং সিদ্ধান্তের কারণ বোঝা কঠিন।


Powered by Blogger.