Input — what the filter sees: one brightness per pixel, 0 (black) to 255 (white).Output — the feature map. One number per position of the filter.
3×3 patch of the image
×
the filter (edit any number)
=
nine products
→
add them up
মূল ধারণা।
একটি filter হলো সংখ্যার একটি ছোট গ্রিড — এখানে 3×3, অর্থাৎ নয়টি weight। এটিকে ছবির একটি
3×3 টুকরোর ওপর রাখুন, প্রতিটি pixel-কে তার ওপরের weight দিয়ে গুণ করুন, আর নয়টি গুণফল যোগ করুন। ওই
একটি সংখ্যাই output-এর একটি pixel। তারপর এক pixel ডানে সরে আবার করুন, সেই একই নয়টি weight দিয়ে,
যতক্ষণ না filter প্রতিটি অবস্থানে ঘুরে আসে।
Vertical edges দেখুন: বাঁ কলাম ঋণাত্মক, ডান কলাম ধনাত্মক, মাঝেরটি শূন্য, আর নয়টি weight যোগ করলে
0। একই রকম উজ্জ্বলতার একটি টুকরোয় ঋণাত্মক আর ধনাত্মকগুলো কাটাকাটি হয়ে যোগফল ঠিক 0 হয়। শুধু যেখানে ডান দিক
বাঁ দিকের চেয়ে উজ্জ্বল বা গাঢ়, সেখানেই কিছু টিকে থাকে। এটিই একটি edge detector।
CNN কোথায় আসে।
একটি convolutional layer ঠিক এটাই, শুধু একটি পার্থক্য: নয়টি সংখ্যা কেউ হাতে লিখে দেয় না। সেগুলো এলোমেলো
দিয়ে শুরু হয় আর training সেগুলো ঠিক করে, আর একটি layer পাশাপাশি অনেকগুলো filter চালায়, প্রতিটি নিজের একটি
feature map তৈরি করে। একটি প্রশিক্ষিত ছবি-নেটওয়ার্কের প্রথম layer সাধারণত এমন filter-এ পৌঁছায় যেগুলো এই
পাতার filter-গুলোর মতোই দেখতে — অথচ কেউ তাকে edge খুঁজতে বলেনি।
(সঠিকভাবে বললে, filter না উল্টিয়ে সরানো হলো cross-correlation; পাঠ্যবইয়ের convolution আগে
kernel-টি উল্টে নেয়। deep learning library-গুলো এভাবেই করে, তবু একে convolution বলে।)
যা চেষ্টা করে দেখার মতো:
1. House, Vertical edges, Whole image at once। দেয়াল, দরজা আর জানালার পাশগুলো
জ্বলে ওঠে; লম্বা আনুভূমিক রেখাগুলো — মাটি, চালের কিনারা, জানালার নিচের তাক — মিলিয়ে যায়।
Horizontal edges-এ গেলে তারা জায়গা বদল করে। ছাদটি হেলানো, তাই দুটোতেই দেখা যায়।
2. House-এ থেকেই ফাঁকা আকাশের যেকোনো জায়গায় ক্লিক করুন। টুকরোটি নয়টি একই সংখ্যা, আর যোগফল ঠিক
0 আসে।
3. আবার Vertical edges, এবার Signed দেখানো। দরজার দুই পাশ উল্টো রঙে আসে: বাঁ থেকে ডানে
পড়লে হালকা থেকে গাঢ় ঋণাত্মক আর গাঢ় থেকে হালকা ধনাত্মক। এখন ReLU বেছে নিন, যা একটি CNN প্রতিটি
filter-এর পরে প্রয়োগ করে — অর্ধেক edge মিলিয়ে যায়। দুটোই দেখতে হলে নেটওয়ার্কের উল্টো চিহ্নের একটি
দ্বিতীয় filter লাগে।
4. Do nothing বেছে নিয়ে গ্রিডের কোথাও একটি ভিন্ন সংখ্যা লিখুন। প্রতিটি filter শুধুই নয়টি সংখ্যা;
এর বেশি কিছু নেই। তারপর Your own image চেষ্টা করুন — ছবিটি আপনার ব্রাউজারেই থাকে, কোথাও
আপলোড হয় না।