Convolutional Neural Network (CNN) এর প্রাথমিক তিনটি স্তর হলো Convolution Layer, Pooling Layer, এবং Fully Connected Layer। প্রতিটি স্তরের নিজস্ব ভূমিকা এবং কাজ রয়েছে, যা মডেলকে ইমেজ বা অন্য ধরনের ডেটা থেকে feature extraction, dimensionality reduction, এবং classification এ সাহায্য করে।
1. Convolution Layer
Convolution Layer CNN এর মূল স্তর এবং এটি মূলত feature extraction এর কাজ করে।
কিভাবে কাজ করে:
- Convolution লেয়ার একটি ইমেজের উপর filter বা kernel প্রয়োগ করে।
- প্রতিটি filter একটি ছোট matrix, যা input image এর উপর slide করে এবং dot product অপারেশন করে।
- এর মাধ্যমে একটি feature map বা activation map তৈরি হয়, যা ইমেজের বিভিন্ন features ধারণ করে।
বৈশিষ্ট্য:
- Filter/Kernels: Filter বা kernel একটি ছোট matrix (যেমন, 3x3 বা 5x5), যা input image এর উপর অপারেট করে এবং feature map তৈরি করে।
- Stride: এটি kernel এর চলমান গতির পরিমাণ নির্দেশ করে। Stride বড় হলে feature map ছোট হয়।
- Padding: Image এর চারপাশে zero-pixel যুক্ত করা হয়, যা output feature map এর shape পরিবর্তন করতে সাহায্য করে।
উদাহরণ:
ধরা যাক আমাদের একটি grayscale image আছে (8x8 dimension), এবং আমরা এতে একটি 3x3 filter প্রয়োগ করছি, stride = 1 এবং padding = 0।
2. Pooling Layer
Pooling Layer মূলত dimensionality কমানোর কাজ করে। এটি feature map এর গুরুত্বপূর্ণ অংশগুলো সংরক্ষণ করে এবং কম গুরুত্বপূর্ণ অংশ বাদ দেয়, যার মাধ্যমে computational efficiency বাড়ে।
কিভাবে কাজ করে:
- Pooling লেয়ার input feature map এর ছোট ছোট region থেকে একটি সংখ্যা নির্বাচন করে, সাধারণত সবচেয়ে বড় বা গড় মান।
- Pooling এর মাধ্যমে feature map এর spatial size ছোট হয়ে যায়, যা computation এবং overfitting কমাতে সাহায্য করে।
Pooling এর প্রকারভেদ:
- Max Pooling: প্রতিটি region এর সবচেয়ে বড় মান নির্বাচন করে।
- Average Pooling: প্রতিটি region এর গড় মান নির্বাচন করে।
উদাহরণ:
ধরা যাক, আমাদের একটি feature map আছে (4x4 dimension) এবং আমরা 2x2 max pooling প্রয়োগ করছি। Max pooling এর মাধ্যমে 4x4 feature map কে 2x2 এ রূপান্তরিত করা হবে এবং প্রতিটি 2x2 ব্লকের মধ্যে সবচেয়ে বড় মান নির্বাচন করা হবে।
বৈশিষ্ট্য:
- Dimensionality কমানো, যা computation কমাতে সাহায্য করে।
- Translation invariance বাড়ায়, যা object detection এ সাহায্য করে।
3. Fully Connected Layer
Fully Connected Layer (FC Layer) সাধারণত CNN এর শেষের দিকে ব্যবহৃত হয় এবং এটি feature map এর মাধ্যমে পাওয়া features গুলিকে output class এ ম্যাপ করে।
কিভাবে কাজ করে:
- Pooling এর পর যে feature vector পাওয়া যায়, সেটিকে flatten করে একটিমাত্র vector এ রূপান্তরিত করা হয়।
- এরপর, এই vector টি fully connected (dense) layer এ পাঠানো হয় যেখানে প্রত্যেকটি node এর সাথে আগের layer এর প্রতিটি node সংযুক্ত থাকে।
- FC লেয়ার output তৈরি করে, যা একটি final decision দেয়, যেমন image এর class।
উদাহরণ:
ধরা যাক, আমাদের pooling এর পর একটি flattened vector পাওয়া গেল এবং আমরা এটিকে fully connected layer এ পাঠাচ্ছি। এই লেয়ার features থেকে একটি class prediction তৈরি করে।
বৈশিষ্ট্য:
- Classification এর কাজ করে।
- প্রতিটি node এর সাথে আগের layer এর প্রতিটি node সংযুক্ত থাকে, যা মডেলকে output class নির্ধারণ করতে সাহায্য করে।
Convolution, Pooling, এবং Fully Connected Layer এর কাজের সারাংশ
| Layer | কাজ | উদাহরণ |
|---|---|---|
| Convolution Layer | Feature extraction | Edge, texture, এবং shape সনাক্ত করে |
| Pooling Layer | Dimensionality reduction, invariance | Max pooling মাধ্যমে shape reduce করে |
| Fully Connected Layer | Classification | Flattened features থেকে class নির্ধারণ |
সারসংক্ষেপ
- Convolution Layer ইমেজ থেকে বিভিন্ন features সনাক্ত করতে সাহায্য করে।
- Pooling Layer dimensionality কমিয়ে computation সহজ করে এবং object এর invariance বাড়ায়।
- Fully Connected Layer extracted features থেকে চূড়ান্ত output class নির্ধারণ করে।
এই তিনটি লেয়ার একত্রে কাজ করে CNN কে ইমেজ বা অন্যান্য ডেটা থেকে গুরুত্বপূর্ণ features সনাক্ত করতে এবং চূড়ান্ত output প্রদান করতে সক্ষম করে।
Read more