Convolutional Neural Networks (CNNs)
🧠 Convolutional Neural Networks (CNNs)
🔹 Concept (মূল ধারণা):
CNN হল এমন একটি নিউরাল নেটওয়ার্ক যা grid-like data (যেমন: image) প্রক্রিয়া করার জন্য বিশেষভাবে ডিজাইন করা হয়েছে।
ছবি হচ্ছে 2D grid (পিক্সেল)।
-
CNN এই পিক্সেল গুলোর ভিতরকার স্থানিক সম্পর্ক (spatial features) যেমন: ধারের রেখা (edges), গঠন (shapes), টেক্সচার ইত্যাদি ধরতে পারে।
🧩 Key Components (মূল উপাদান):
১️⃣ Convolutional Layers (কনভলুশন লেয়ার)
🔹 কাজ:
ছবির উপরে ছোট ছোট ফিল্টার বা কনভলুশন কর্ণেল চালিয়ে ফিচার ম্যাপ তৈরি করে।
এই ফিচার ম্যাপে ধারের রেখা, কোণা, টেক্সচার ইত্যাদি ধরা পড়ে।
🔹 উদাহরণ:
একটা ফিল্টার শুধু ধারের দিকগুলো খুঁজে বের করে, আরেকটা কোণা চিহ্নিত করে।
২️⃣ Pooling Layers (পুলিং লেয়ার)
🔹 কাজ:
ফিচার ম্যাপের আকার ছোট করে ফেলে যাতে কম্পিউটেশন কমে যায় এবং নেটওয়ার্ক ছোট পরিবর্তনের (translation, rotation) প্রতি রেজিস্ট্যান্ট হয়।
🔹 সবচেয়ে ব্যবহৃত পুলিং:
Max Pooling: একটি অঞ্চল থেকে সর্বোচ্চ মানটা নেয়
-
Average Pooling: গড় মান নেয়
৩️⃣ Fully Connected Layers (ফুলি কানেক্টেড লেয়ার)
🔹 কাজ:
শেষে ফিচার ম্যাপগুলোকে একটি ভেক্টরে ফ্ল্যাট করে, এরপর সেই ভেক্টরকে দিয়ে চূড়ান্ত সিদ্ধান্ত (output) তৈরি করে।
🔹 উদাহরণ:
একটা ছবিতে বিড়াল আছে কিনা, সেটা বের করা — FC layer বলবে “হ্যাঁ” বা “না”।
🖼️ CNN-এর সাধারণ স্ট্রাকচার:
Input Image (e.g., 28x28x1)
→ Convolutional Layer (e.g., 5x5 filter)
→ ReLU
→ Pooling Layer (e.g., 2x2 max pool)
→ Convolutional Layer
→ ReLU
→ Pooling Layer
→ Flatten
→ Fully Connected Layer
→ Output
🧾 Applications (ব্যবহার ক্ষেত্র):
CNN মূলত Computer Vision এর জন্য তৈরি, তাই এর ব্যবহার হয়:
কাজ | উদাহরণ |
---|---|
Image Classification | কোন ছবি কুকুর, বিড়াল, গাড়ি ইত্যাদি |
Object Detection | ছবিতে কোন জিনিস কোথায় আছে সেটি চিহ্নিত |
Semantic Segmentation | ছবির প্রতিটি পিক্সেলের লেবেল নির্ধারণ |
Face Recognition | চেহারা শনাক্তকরণ |
Medical Imaging | MRI/CT স্ক্যান বিশ্লেষণ |
✅ সুবিধা (Advantages):
ছবির স্থানিক (spatial) বৈশিষ্ট্য ভালোভাবে ধরতে পারে
-
কম্পিউটেশনালি efficient (parameter sharing)
-
Translation invariant (ছবির সামান্য পরিবর্তনেও output বদলায় না)
❌ অসুবিধা (Disadvantages):
ছবি ছাড়া অন্য ধরনের ডেটার জন্য সেরা নয়
-
Complex architecture বানাতে অনেক রিসোর্স লাগে
-
ব্যাখ্যা করা কঠিন (কোন ফিচার কী কাজ করল বোঝা যায় না)