> For the complete documentation index, see [llms.txt](https://dl.howtocode.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dl.howtocode.dev/cnn/convolution.md).

# কনভলিউশন করা

![](https://nuhil.files.wordpress.com/2017/05/screen-shot-2017-05-20-at-9-02-07-pm.png?w=687)

প্রথমেই আমরা উপড়ের ফিল্টার কে সাথে নিয়ে বড় ইমেজের টপ লেফট সাইডে বসিয়েছি এবং ওখানকার পিক্সেল ভ্যালুর সাথে ফিল্টার এর সমন্বয় ঘটিয়ে (গুন যোগ) ভ্যালু পেয়েছি 4. পরের ধাপে বলা হচ্ছে যদি তুমি একটা হাই ভ্যালু পাও তার মানে হচ্ছে তুমি যে অংশ (অঙ্গ) খুজতেছিলা সেটা পাওয়া গেছে। অর্থাৎ Convolution এর এই ধাপে একটা \ পাওয়া গেছে। কারণ \ এর ফিল্টার দিয়ে চেক করা হচ্ছিল এবং ভ্যালু হাই এসেছে। এরপর ফিল্টারকে টপ রাইটে স্লাইড করে নিয়ে যেতে হবে নিচের মত,

![](https://nuhil.files.wordpress.com/2017/05/screen-shot-2017-05-20-at-9-02-44-pm.png?w=687)

এই অবস্থায় ভ্যালু এসেছে -4 যা আমাদের ফিল্টার দিয়ে অংশ চেনার লজিক অনুযায়ী মিথ্যা। তাই পরের ধাপ বলছে আমি কোন ব্যাক স্লাসের অস্তিত্ব পাই নাই তাই Pooled ইমেজে গ্রে বসায় রাখলাম। আবার ফিল্টারকে স্লাইড করে বোটম লেফট কর্নারে সেট করলাম এবং নিচের অবস্থা পেলাম,

![](https://nuhil.files.wordpress.com/2017/05/screen-shot-2017-05-20-at-9-03-26-pm.png?w=687)

আবারও ফিল্টারকে বোটম রাইট কর্নারে নিয়ে সেট করলাম এবং নিচের মত অবস্থা পর্যবেক্ষণ করলাম যে অনুযায়ী বলা যায় - এইবার আবারও একটা \ এর অস্তিত্ব পাওয়া গেছে।

![](https://nuhil.files.wordpress.com/2017/05/screen-shot-2017-05-20-at-9-03-52-pm.png?w=687)

এবার একই ভাবে আমরা ফরওয়ার্ড স্ল্যাস খোজার ফিল্টার দিয়ে বড় ইমেজের উপর Convolution করে নিচের মত আপডেট পাবো। অর্থাৎ যেখানে যেখানে ফিল্টার এর সমন্বয় হাই ভ্যালু পেয়েছে সেখানে একটি করে / এর অস্তিত্ব পাওয়া গেছে,

![](https://nuhil.files.wordpress.com/2017/05/screen-shot-2017-05-20-at-9-05-13-pm.png?w=687)

মনে রাখবেন, প্রত্যেকটি ফিল্টারই কিন্তু উপরে বাম থেকে শুরু করে, উপড়ে ডানে এবং তারপর নিচে বাম থেকে, নিচে ডানে গিয়ে কাজ/চেক/কনভলিউশন শেষ করে।

আর হ্যা, এই যে ফিল্টারকে স্লাইড করে পিক্সেল-কম্বিনেশন/অংশ/অঙ্গ খোজার স্টেজ, সেটাই কনভলিউশনাল লেয়ার। তারপর, আপনার ডিফাইন করা একটা নির্দিষ্ট থ্রেসহোল্ড ভ্যালুর চেয়ে বড় ভ্যালু আসলে (যেমন এক্ষেত্রে ধরছি 3) যে আপনি ভেবে নিচ্ছেন ‘একটা অংশ আপনি খুঁজে পেয়েছেন’ আর ভ্যালু কম আসলে ধরে নিচ্ছে ‘ওখানে সেই অংশ পাওয়া যায় নি’ এটাই হচ্ছে পুলিং লেয়ারের কাজ।

এরপর ডান পাশের অর্থাৎ পুলিং লেয়ার থেকে পাওয়া দুটো আলাদা ইমেজকে আমরা একসাথে করতে পারি নিচের মত,

![](https://nuhil.files.wordpress.com/2017/05/screen-shot-2017-05-20-at-9-06-24-pm.png)

অর্থাৎ এখন থেকে কম্পিউটার ভেবে নিবে যে বাম পাশের 3x3 পিক্সেলের যে ফটো সেটারই একটা সিমপ্লিফায়েড ভার্সন হচ্ছে ডান পাশের 2x2 পিক্সেলের ইমেজ যেটা কিনা কিছু \ / (সেই অংশ বা অঙ্গ যাই বলেন) এরসমন্বয়।

একই ভাবে আমরা O ওয়ালা বড় ইমেজকে ওই দুটো ফিল্টার দিয়েই Convolute করেও নিচের মত পুলিং লেয়ারের সাহায্যে সিমপ্লিফায়েড ভার্সনে কনভার্ট করতে পারি।

![](https://nuhil.files.wordpress.com/2017/05/screen-shot-2017-05-20-at-9-07-11-pm.png?w=687)

![](https://nuhil.files.wordpress.com/2017/05/screen-shot-2017-05-20-at-9-07-42-pm.png)

এভাবে আমাদের ৪ বর্ণ ওয়ালা জগতের বাকি দুটো বর্ণ \ এবং / এর জন্যও কাজ করে নিতে পারেন। সেক্ষেত্রেও তিন পিক্সেল ওয়ালা স্ল্যাসের সাপেক্ষে থ্রেসহোল্ড মেনে পুলিং লেয়ারের কাজ শেষে দুই পিক্সেল ওয়ালা স্ল্যাস পাবেন।

আবারও বলে নিচ্ছি, কনভলিউশন লেয়ারের কাজ হচ্ছে একটি ফিল্টার (র‍্যান্ডম বা নির্দিষ্ট) এর সাহায্যে একটি পূর্ণ ইমেজের উপর স্লাইড করে ঘুরে বেরিয়ে খুঁজে দেখা সেখানে কোথায় কোথায় ফিল্টার মোতাবেক অংশের অস্তিত্ব পাওয়া যায়। আর অস্তিত্ব আছে/নাই এর সিধান্ত নির্ভর করবে পুলিং লেয়ার এবং তার কাছে থাকা একটা থ্রেসহোল্ড ভ্যালুর উপর।
