ডিপ লার্নিং ও আর্টিফিশিয়াল নিউরাল নেটওয়ার্ক
  • পরিচিতি
  • মেশিন লার্নিং বনাম ডিপ লার্নিং
  • আর্টিফিশিয়াল নিউরাল নেটওয়ার্ক
  • সহজ একটি নিউরাল নেটওয়ার্ক
    • ট্রেনিং এর পদ্ধতি
    • ফিরে দেখা
    • কোডিং
    • পরীক্ষা করে দেখা
  • মাল্টি লেয়ার নিউরাল নেটওয়ার্ক
    • কোডিং
    • পরীক্ষা করে দেখা
  • কনভলিউশনাল নিউরাল নেটওয়ার্ক
    • ব্যাসিক পরিচিতি
    • কনভলিউশন করা
    • ফুলি কানেক্টেড লেয়ার
    • কমপ্লিট কনভলিউশনাল নিউরাল নেটওয়ার্ক
    • পরীক্ষা করে দেখা
  • বিভিন্ন লাইব্রেরীর ব্যবহার
  • TensorFlow পরিচিতি
    • TensorFlow ব্যাসিক
    • ভ্যারিয়েবল ও প্লেসহোল্ডার
  • TensorFlow দিয়ে ইমেজ ক্লাসিফায়ার তৈরি
    • ডাটা বুঝে নেয়া
    • ডাটা ডাইমেনশন
    • গ্রাফ তৈরি
    • মডেল
    • Cost ফাংশন ও অপটিমাইজেশন
    • TensorFlow রান
  • TensorFlow দিয়ে কনভলিউশনাল NN
  • Pretty Tensor
  • Inception মডেল
  • ট্রান্সফার লার্নিং
  • ডিপ ড্রিম
  • রি-ইনফোর্সমেন্ট লার্নিং
Powered by GitBook
On this page
  1. কনভলিউশনাল নিউরাল নেটওয়ার্ক

কনভলিউশন করা

Previousব্যাসিক পরিচিতিNextফুলি কানেক্টেড লেয়ার

Last updated 6 years ago

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

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

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

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

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

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

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

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

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

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

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