• Convolutional Neural Networks for Visual Recognition, bangla.

    Convolutional Neural Networks for Visual Recognition


    সুচিপত্র:

    কনভোলিউশনাল নিউরাল নেটওয়ার্ক (সিএনএন / কনভনেটস)

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

    আর্কিটেকচার ওভারভিউ

    প্রত্যাহার করুন: নিয়মিত নিউরাল জাল। আমরা পূর্ববর্তী অধ্যায়ে দেখেছি, নিউরাল নেটওয়ার্কগুলি একটি ইনপুট (একক ভেক্টর) গ্রহণ করে এবং গোপন স্তরগুলির একটি সিরিজের মাধ্যমে এটি রূপান্তর করে । প্রতিটি লুকানো স্তরটি নিউরনের একটি সেট দিয়ে তৈরি, যেখানে প্রতিটি নিউরন পূর্ববর্তী স্তরের সমস্ত নিউরনের সাথে সম্পূর্ণভাবে সংযুক্ত থাকে এবং যেখানে একক স্তরের নিউরনগুলি সম্পূর্ণ স্বাধীনভাবে কাজ করে এবং কোনও সংযোগ ভাগ করে না। শেষ পুরোপুরি সংযুক্ত স্তরটিকে "আউটপুট স্তর" বলা হয় এবং শ্রেণিবদ্ধকরণ সেটিংসে এটি শ্রেণীর স্কোরগুলি উপস্থাপন করে।
    নিয়মিত নিউরাল নেটগুলি পুরো চিত্রগুলিতে ভাল স্কেল করে না । সিআইএফএআর -10 এ চিত্রগুলি কেবলমাত্র 32x32x3 আকারের (32 প্রশস্ত, 32 উচ্চ, 3 টি রঙিন চ্যানেল), তাই নিয়মিত নিউরাল নেটওয়ার্কের প্রথম লুকানো স্তরের একক সম্পূর্ণ সংযুক্ত নিউরনটিতে 32 * 32 * 3 = 3072 ওজন থাকবে । এই পরিমাণটি এখনও পরিচালনাযোগ্য বলে মনে হচ্ছে, তবে স্পষ্টতই এই সম্পূর্ণ সংযুক্ত কাঠামোটি বৃহত্তর চিত্রগুলিতে স্কেল করে না। উদাহরণস্বরূপ, আরও সম্মানজনক আকারের একটি চিত্র, যেমন 200x200x3, 200 * 200 * 3 = 120,000 ওজনযুক্ত নিউরনগুলিতে নিয়ে যায়। তদুপরি, আমরা প্রায় অবশ্যই এই জাতীয় বেশ কয়েকটি নিউরন রাখতে চাই, যাতে প্যারামিটারগুলি দ্রুত যুক্ত হয়! স্পষ্টতই, এই সম্পূর্ণ সংযোগটি অপব্যয়কর এবং পরামিতিগুলির বিশাল সংখ্যক দ্রুত অতিমাত্রায় উত্থাপন করবে।
    নিউরনের 3 ডি ভলিউম । কনভ্যোলিউশনাল নিউরাল নেটওয়ার্কগুলি ইনপুটটিতে চিত্রগুলি নিয়ে গঠিত এবং এগুলি আরও বুদ্ধিমান উপায়ে আর্কিটেকচারকে সীমাবদ্ধ করে তোলে এর সুবিধা গ্রহণ করে। বিশেষত, নিয়মিত নিউরাল নেটওয়ার্কের বিপরীতে কনভনেটের স্তরগুলির 3 টি মাত্রায় নিউরনগুলি সাজানো থাকে: প্রস্থ, উচ্চতা, গভীরতা । (মনে রাখবেন শব্দের গভীরতাএখানে একটি অ্যাক্টিভেশন ভলিউমের তৃতীয় মাত্রা বোঝায়, সম্পূর্ণ নিউরাল নেটওয়ার্কের গভীরতার দিকে নয়, যা কোনও নেটওয়ার্কের স্তরগুলির মোট সংখ্যা উল্লেখ করতে পারে)) উদাহরণস্বরূপ, সিআইএফএআর -10 এর ইনপুট চিত্রগুলি একটি ইনপুট ভলিউম ক্রিয়াকলাপ এবং ভলিউমের মাত্রা 32x32x3 (যথাক্রমে প্রস্থ, উচ্চতা, গভীরতা) রয়েছে। আমরা শীঘ্রই দেখতে পাব, একটি স্তরের নিউরনগুলি সম্পূর্ণরূপে সংযুক্ত পদ্ধতিতে সমস্ত নিউরনের পরিবর্তে কেবলমাত্র স্তরটির একটি ছোট অঞ্চলে যুক্ত হবে। তদুপরি, সিআইএফএআর -10 এর চূড়ান্ত আউটপুট স্তরটির মাত্রা 1x1x10 থাকবে, কারণ কনভনেট আর্কিটেকচারের শেষে আমরা গভীর চিত্রের একক ভেক্টরে পূর্ণ চিত্রকে হ্রাস করব, যা গভীরতার মাত্রা সহ সাজানো হয়েছে। এখানে একটি দৃশ্যায়ন আছে:
    বাম: একটি নিয়মিত 3-স্তর নিউরাল নেটওয়ার্ক। ডান: একটি কনভনেট তার নিউরনগুলিকে তিনটি মাত্রায় (প্রস্থ, উচ্চতা, গভীরতা) সাজিয়েছে, স্তরগুলির মধ্যে একটিতে দৃশ্যমান হিসাবে। কনভনেটের প্রতিটি স্তর 3 ডি ইনপুট ভলিউমকে নিউরন অ্যাক্টিভেশনগুলির 3 ডি আউটপুট ভলিউমে রূপান্তর করে। এই উদাহরণে, লাল ইনপুট স্তরটি চিত্রটি ধারণ করে, সুতরাং এর প্রস্থ এবং উচ্চতা চিত্রটির মাত্রা হবে এবং গভীরতাটি 3 (লাল, সবুজ, নীল চ্যানেল) হবে।
    একটি কনভনেট স্তরগুলি দিয়ে তৈরি। প্রতিটি স্তরের একটি সাধারণ এপিআই থাকে: এটি কোনও ইনফুট 3D ভলিউমকে একটি আউটপুট 3 ডি ভলিউমে রূপান্তর করে কিছু পৃথক ফাংশন যার সাথে প্যারামিটার থাকতে পারে বা নাও থাকতে পারে।

    কনভনেটগুলি তৈরি করতে ব্যবহৃত স্তরগুলি

    আমরা উপরে বর্ণিত হিসাবে, একটি সরল কনভনেট স্তরগুলির ক্রম এবং কনভনেটের প্রতিটি স্তর একটি পার্থক্যযুক্ত ফাংশনটির মাধ্যমে ক্রিয়াকলাপগুলির একটি ভলিউমকে অন্যটিতে রূপান্তরিত করে। কনভনেট আর্কিটেকচার তৈরির জন্য আমরা তিনটি প্রধান ধরণের স্তর ব্যবহার করি: কনভলিউশনাল স্তর , পুলিং স্তর এবং ফুল-সংযুক্ত স্তর (নিয়মিত নিউরাল নেটওয়ার্কগুলিতে ঠিক যেমন দেখা যায়)। একটি সম্পূর্ণ কনভনেট আর্কিটেকচার গঠনের জন্য আমরা এই স্তরগুলি স্ট্যাক করব 
    উদাহরণ আর্কিটেকচার: ওভারভিউ । আমরা নীচে আরও বিশদে যাব, তবে সিআইএফএআর -10 শ্রেণিবিন্যাসের জন্য একটি সহজ কনভনেটটিতে আর্কিটেকচার থাকতে পারে [INPUT - CONV - RELU - POOL - FC]। আরো বিস্তারিত:
    • ইনপুট [32x32x3] চিত্রের কাঁচা পিক্সেল মানগুলিকে ধারণ করবে, এক্ষেত্রে প্রস্থ 32, উচ্চতা 32 এবং তিনটি রঙিন চ্যানেল আর, জি, বি সহ একটি চিত্র।
    • সিএনভি স্তর হ'ল নিউরনগুলির আউটপুট গণনা করবে যা ইনপুটটিতে স্থানীয় অঞ্চলে সংযুক্ত থাকে, প্রতিটি তাদের ওজন এবং একটি ছোট অঞ্চলের মধ্যে একটি ডট পণ্য গণনা করে যা তারা ইনপুট ভলিউমে সংযুক্ত থাকে। যদি আমরা 12 টি ফিল্টার ব্যবহার করার সিদ্ধান্ত নিয়েছি তবে এর ফলে [32x32x12] এর মতো ভলিউম হতে পারে।
    • রেলইউ স্তরটি এলিমেন্টওয়্যার অ্যাক্টিভেশন ফাংশন প্রয়োগ করবে, যেমন শূন্যের উপরে \ (সর্বোচ্চ (0, x) res) প্রান্তিককরণ। এটি অপরিবর্তিত ভলিউমের আকার ছেড়ে দেয় ([32x32x12])।
    • পল স্তরটি স্থানিক মাত্রাগুলি (প্রস্থ, উচ্চতা) বরাবর একটি ডাউনস্যাম্পলিং অপারেশন সম্পাদন করবে, ফলস্বরূপ [16x16x12] এর পরিমাণের পরিমাণ হবে।
    • এফসি (অর্থাত্ সম্পূর্ণরূপে সংযুক্ত) স্তর শ্রেণীর স্কোরগুলি গণনা করবে, যার ফলে আকারের পরিমাণ হবে [1x1x10], যেখানে 10 নম্বরগুলির প্রতিটি শ্রেণি স্কোরের সাথে মিল রাখে, যেমন সিআইএফএআর -10 এর 10 বিভাগগুলির মধ্যে। সাধারণ নিউরাল নেটওয়ার্কগুলির মতো এবং নামটিও বোঝা যায়, এই স্তরের প্রতিটি নিউরন পূর্ববর্তী ভলিউমের সমস্ত সংখ্যার সাথে সংযুক্ত থাকবে।
    এইভাবে, কনভনেটগুলি মূল চিত্রের স্তরটিকে মূল পিক্সেল মান থেকে চূড়ান্ত শ্রেণীর স্কোরগুলিতে রূপান্তর করে। নোট করুন যে কয়েকটি স্তরগুলিতে প্যারামিটার রয়েছে এবং অন্যগুলি নেই। বিশেষত, সিওএনভি / এফসি স্তরগুলি রূপান্তরগুলি সম্পাদন করে যা কেবল ইনপুট ভলিউমে সক্রিয়করণের কাজ নয়, তবে পরামিতিগুলির (নিউরনের ওজন এবং বায়াস) রয়েছে। অন্যদিকে, RELU / POOL স্তরগুলি একটি নির্দিষ্ট ফাংশন বাস্তবায়ন করবে। সিওএনভি / এফসি স্তরগুলির পরামিতিগুলি গ্রেডিয়েন্ট বংশোদ্ভূত দিয়ে প্রশিক্ষিত হবে যাতে শ্রেণি স্কোর যে কনভনেট গণনাগুলি প্রতিটি চিত্রের জন্য প্রশিক্ষণের সেটে লেবেলের সাথে সামঞ্জস্যপূর্ণ।
    সংক্ষেপে:
    • কনভনেট আর্কিটেকচারটি সবচেয়ে সহজ ক্ষেত্রে স্তরগুলির একটি তালিকা যা চিত্রের ভলিউমকে আউটপুট ভলিউমে রূপান্তর করে (যেমন শ্রেণীর স্কোরগুলি ধারণ করে)
    • কয়েকটি আলাদা আলাদা স্তর রয়েছে (যেমন CONV / FC / RELU / POOL এখন পর্যন্ত সবচেয়ে জনপ্রিয়)
    • প্রতিটি স্তর একটি ইনপুট 3D ভলিউম গ্রহণ করে এবং একটি পার্থক্যযুক্ত ফাংশনটির মাধ্যমে আউটপুট 3D ভলিউমে রূপান্তর করে
    • প্রতিটি স্তরটির প্যারামিটার থাকতে পারে বা নাও থাকতে পারে (যেমন CONV / FC do, RELU / POOL না)
    • প্রতিটি স্তরের অতিরিক্ত হাইপারপ্যারামিটার থাকতে পারে বা নাও থাকতে পারে (যেমন CONV / FC / POOL না, RELU না)
    একটি উদাহরণ কনভনেট আর্কিটেকচারের ক্রিয়াকলাপ। প্রাথমিক ভলিউম কাঁচা চিত্র পিক্সেল (বাম) এবং শেষ ভলিউম ক্লাস স্কোরগুলি (ডানদিকে) সঞ্চয় করে। প্রসেসিংয়ের পথ ধরে অ্যাক্টিভেশনগুলির প্রতিটি ভলিউম কলাম হিসাবে দেখানো হয়। যেহেতু 3 ডি ভলিউম ভিজ্যুয়ালাইজ করা কঠিন, তাই আমরা প্রতিটি ভলিউমের স্লাইসগুলি সারিগুলিতে রেখেছি। সর্বশেষ স্তরের ভলিউম প্রতিটি শ্রেণীর জন্য স্কোর ধারণ করে তবে এখানে আমরা কেবল সাজানো শীর্ষ 5 স্কোরটি ভিজ্যুয়ালাইজ করি এবং প্রত্যেকটির লেবেল মুদ্রণ করি। সম্পূর্ণ ওয়েব-ভিত্তিক ডেমোটি আমাদের ওয়েবসাইটের শিরোনামে প্রদর্শিত হবে। এখানে প্রদর্শিত আর্কিটেকচারটি একটি ক্ষুদ্র ভিজিজি নেট, যা আমরা পরে আলোচনা করব।
    আমরা এখন পৃথক স্তরগুলি এবং তাদের হাইপারপ্যারামিটারগুলি এবং তাদের সংযোগগুলির বিশদ বর্ণনা করি।

    কনভলিউশনাল লেয়ার

    কনভ স্তরটি একটি কনভলিউশনাল নেটওয়ার্কের মূল বিল্ডিং ব্লক যা বেশিরভাগ গণনা ভারী উত্তোলন করে।
    মস্তিষ্কের স্টাফ ছাড়াই ওভারভিউ এবং অন্তর্দৃষ্টি।প্রথমে মস্তিষ্ক / নিউরন সাদৃশ্যগুলি ছাড়াই CONV স্তরকে কী গণনা করে তা নিয়ে আলোচনা করতে দিন। সিওএনভি স্তরের পরামিতিগুলি শিখনযোগ্য ফিল্টারগুলির একটি সেট নিয়ে গঠিত। প্রতিটি ফিল্টার স্থানিকভাবে ছোট (প্রস্থ এবং উচ্চতা বরাবর), তবে ইনপুট ভলিউমের সম্পূর্ণ গভীরতার মাধ্যমে প্রসারিত। উদাহরণস্বরূপ, কনভনেটের প্রথম স্তরের একটি সাধারণ ফিল্টারটির আকার 5x5x3 (অর্থাত্ 5 পিক্সেলের প্রস্থ এবং উচ্চতা এবং 3 কারণ চিত্রের গভীরতা 3, রঙ চ্যানেল) থাকতে পারে। ফরোয়ার্ড পাসের সময়, আমরা ইনপুট ভলিউমের প্রস্থ এবং উচ্চতা জুড়ে প্রতিটি ফিল্টার স্লাইড (আরও সুনির্দিষ্টভাবে, একত্রীকরণ) করি এবং ফিল্টারগুলির প্রবেশদ্বার এবং কোনও অবস্থানে ইনপুটগুলির মধ্যে গণনা ডট পণ্যগুলি গণনা করি। আমরা যখন ইনপুট ভলিউমের প্রস্থ এবং উচ্চতায় ফিল্টারটি স্লাইড করব আমরা একটি দ্বি-মাত্রিক অ্যাক্টিভেশন মানচিত্র তৈরি করব যা প্রতিটি স্থানিক অবস্থানে সেই ফিল্টারটির প্রতিক্রিয়া দেয়। intuitively, নেটওয়ার্কটি এমন ফিল্টারগুলি শিখতে পারে যেগুলি যখন সক্রিয় হয় যখন তারা কিছু ধরণের ভিজ্যুয়াল বৈশিষ্ট্য যেমন প্রথম দিকের কিছু প্রান্ত বা কিছু রঙের একটি ব্লট, বা শেষ পর্যন্ত পুরো মধুচক্র বা চক্রের মতো ধরণের নেটওয়ার্কের উচ্চ স্তরগুলিতে দেখায়। এখন, আমাদের প্রতিটি সিএনভি স্তর (যেমন 12 টি ফিল্টার) ফিল্টারগুলির একটি সম্পূর্ণ সেট থাকবে এবং তাদের প্রত্যেকটি পৃথক 2-মাত্রিক অ্যাক্টিভেশন মানচিত্র তৈরি করবে। আমরা গভীরতা মাত্রা বরাবর এই সক্রিয়করণ মানচিত্রগুলি স্ট্যাক করব এবং আউটপুট ভলিউম উত্পাদন করব। এবং তাদের প্রত্যেকে পৃথক দ্বি-মাত্রিক অ্যাক্টিভেশন মানচিত্র তৈরি করবে। আমরা গভীরতা মাত্রা বরাবর এই সক্রিয়করণ মানচিত্রগুলি স্ট্যাক করব এবং আউটপুট ভলিউম উত্পাদন করব। এবং তাদের প্রত্যেকে পৃথক দ্বি-মাত্রিক অ্যাক্টিভেশন মানচিত্র তৈরি করবে। আমরা গভীরতা মাত্রা বরাবর এই সক্রিয়করণ মানচিত্রগুলি স্ট্যাক করব এবং আউটপুট ভলিউম উত্পাদন করব।
    মস্তিষ্ক দেখুন । আপনি যদি মস্তিষ্ক / নিউরন সাদৃশ্যগুলির অনুরাগী হন তবে 3 ডি আউটপুট ভলিউমের প্রতিটি প্রবেশকে নিউরনের আউটপুট হিসাবেও ব্যাখ্যা করা যেতে পারে যা ইনপুটটিতে কেবলমাত্র একটি ছোট অঞ্চল দেখায় এবং সমস্ত নিউরনের সাথে বাম দিকে পরামিতি ভাগ করে এবং ডান স্থানগতভাবে (যেহেতু এই সংখ্যাগুলি সমস্ত একই ফিল্টার প্রয়োগ করে ফলাফল)। আমরা এখন নিউরন সংযোগগুলির বিশদ, মহাকাশে তাদের ব্যবস্থা এবং তাদের পরামিতি ভাগ করে নেওয়ার প্রকল্প নিয়ে আলোচনা করব।
    স্থানীয় সংযোগ। চিত্রগুলির মতো উচ্চ-মাত্রিক ইনপুটগুলির সাথে কাজ করার সময় আমরা যেমনটি দেখেছি এটি পূর্বের ভলিউমের সমস্ত নিউরনের সাথে নিউরনকে সংযুক্ত করা অবৈধ। পরিবর্তে, আমরা প্রতিটি নিউরনকে কেবল ইনপুট ভলিউমের একটি স্থানীয় অঞ্চলে সংযুক্ত করব। এই সংযোগটির স্থানিক পরিধি হ'ল নিউরনের রিসেপটিভ ফিল্ড নামে পরিচিত একটি হাইপারপ্রেমিটার (সমানভাবে এটি ফিল্টার আকার) size গভীরতার অক্ষ বরাবর সংযোগের পরিমাণ সর্বদা ইনপুট ভলিউমের গভীরতার সমান। আমরা স্থানিক মাত্রাগুলি (প্রস্থ এবং উচ্চতা) এবং গভীরতার মাত্রাটি কীভাবে আচরণ করি তাতে এই অসম্পূর্ণতার উপর আবার জোর দেওয়া গুরুত্বপূর্ণ: সংযোগগুলি স্থানটিতে স্থানীয় (প্রস্থ এবং উচ্চতা বরাবর), তবে ইনপুট ভলিউমের পুরো গভীরতার সাথে সর্বদা পরিপূর্ণ।
    উদাহরণ 1 । উদাহরণস্বরূপ, ধরুন যে ইনপুট ভলিউমের আকার [32x32x3], (যেমন একটি আরজিবি সিআইএফএআর -10 চিত্র)। যদি গ্রহণযোগ্য ক্ষেত্র (বা ফিল্টার আকার) 5x5 হয়, তবে কনভ লেয়ারের প্রতিটি নিউরনের ইনপুট ভলিউমের একটি [5x5x3] অঞ্চলের ওজন থাকবে মোট 5 * 5 * 3 = 75 ওজনের (এবং +1) বায়াস প্যারামিটার)। লক্ষ্য করুন যে গভীরতার অক্ষের সাথে সংযোগের পরিমাণটি 3 হওয়া আবশ্যক, কারণ এটি ইনপুট ভলিউমের গভীরতা।
    উদাহরণ 2 । ধরুন কোনও ইনপুট ভলিউমের আকার [16x16x20] রয়েছে। তারপরে 3x3 এর গ্রহণযোগ্য ক্ষেত্রের আকারের উদাহরণ ব্যবহার করে, কনভ লেয়ারের প্রতিটি নিউরনে এখন ইনপুট ভলিউমের সাথে মোট 3 * 3 * 20 = 180 সংযোগ থাকবে। লক্ষ্য করুন, আবার, সংযোগটি স্থানটিতে স্থানীয় (উদাহরণস্বরূপ 3x3), তবে ইনপুট গভীরতায় (20) পূর্ণ।
     
    বাম: লাল ইনপুট ভলিউমের উদাহরণ (যেমন একটি 32x32x3 সিআইএফএআর -10 চিত্র) এবং প্রথম কনভোলিউশনাল স্তরটিতে নিউরনের একটি উদাহরণ ভলিউম। কনভ্যুশনাল স্তরটিতে প্রতিটি নিউরন কেবল স্থানগতভাবে ইনপুট ভলিউমের কোনও স্থানীয় অঞ্চলে সংযুক্ত থাকে তবে পুরো গভীরতার সাথে (যেমন সমস্ত রঙের চ্যানেল)। দ্রষ্টব্য, গভীরতার সাথে একাধিক নিউরন রয়েছে (এই উদাহরণে 5), সমস্ত ইনপুটে একই অঞ্চলের দিকে তাকাচ্ছেন - নীচের পাঠ্যে গভীরতার কলামগুলির আলোচনা দেখুন। ডান: নিউরাল নেটওয়ার্ক অধ্যায় থেকে নিউরনগুলি অপরিবর্তিত রয়েছে: তারা এখনও তাদের ওজনগুলির একটি ডট পণ্যকে ইনপুট দিয়ে একটি অ-রৈখিকতা গণনা করে তবে তাদের সংযোগ এখন স্থানীয়ভাবে স্থানিকভাবে সীমাবদ্ধ is
    স্থানিক ব্যবস্থা । আমরা কনভ লেয়ারের প্রতিটি নিউরনের সংযোগটি ইনপুট ভলিউমে ব্যাখ্যা করেছি, তবে আউটপুট ভলিউমে কতগুলি নিউরন রয়েছে বা সেগুলি কীভাবে সাজানো হয়েছে তা আমরা এখনও আলোচনা করিনি। তিনটি হাইপারপ্যারামিটারগুলি আউটপুট ভলিউমের আকার নিয়ন্ত্রণ করে: গভীরতা, স্ট্রাইড এবং শূন্য-প্যাডিং । আমরা এগুলি পরবর্তী আলোচনা করব:
    1. প্রথমত, আউটপুট ভলিউমের গভীরতা একটি হাইপারপ্যারামিটার: এটি আমরা যে ফিল্টারগুলি ব্যবহার করতে চাই তার সাথে সংযুক্ত, প্রতিটি শিখতে ইনপুটটিতে আলাদা কিছু সন্ধান করতে। উদাহরণস্বরূপ, যদি প্রথম কনভোলিউশনাল স্তরটি কাঁচা চিত্রটি ইনপুট হিসাবে গ্রহণ করে, তবে গভীরতার মাত্রা সহ বিভিন্ন নিউরন বিভিন্নমুখী প্রান্ত বা রঙের ব্লবগুলির উপস্থিতিতে সক্রিয় হতে পারে। আমরা নিউরনের একটি সেট উল্লেখ করব যা সবাই ইনপুটটির একই অঞ্চলে গভীরতা কলাম হিসাবে দেখছে (কিছু লোকেরা ফাইবার শব্দটিও পছন্দ করে )।
    2. দ্বিতীয়ত, আমাদের অবশ্যই ফিল্ডটিকে স্লাইড করে এমন স্ট্রাইড নির্দিষ্ট করতে হবে । যখন প্রবাহটি 1 হয় তখন আমরা ফিল্টারগুলি একবারে এক পিক্সেল স্থানান্তরিত করি। যখন স্ট্রাইডটি 2 হয় (বা অস্বাভাবিকভাবে 3 বা ততোধিক, যদিও এটি অনুশীলনে বিরল) তবে ফিল্টারগুলি একবারে স্লাইড করার সাথে সাথে একটি সময়ে 2 পিক্সেল লাফিয়ে যায়। এটি স্থানিকভাবে ছোট আউটপুট ভলিউম উত্পাদন করবে।
    3. আমরা শীঘ্রই দেখতে পাব, কখনও কখনও সীমানার চারপাশে জিরো দিয়ে ইনপুট ভলিউম প্যাড করা সুবিধাজনক হবে। এই শূন্য-প্যাডিংয়ের আকার একটি হাইপারপ্যারামিটার। শূন্য প্যাডিংয়ের দুর্দান্ত বৈশিষ্ট্যটি হ'ল এটি আমাদের আউটপুট ভলিউমের স্থানিক আকার নিয়ন্ত্রণ করতে দেয় (সাধারণত আমরা শীঘ্রই দেখতে পাব আমরা সঠিকভাবে ইনপুট ভলিউমের স্থানিক আকার সংরক্ষণ করতে ব্যবহার করব যাতে ইনপুট এবং আউটপুট প্রস্থ এবং উচ্চতা সমান)।
    ইনপুট ভলিউমের আকার (\ (ডাব্লু \)), কনভ লেয়ার নিউরনের (\ (এফ \)) গ্রহণযোগ্য ক্ষেত্রের আকার, যে স্ট্রাইডের সাথে তারা প্রয়োগ করা হয় তার ফলস্বরূপ আমরা আউটপুট ভলিউমের স্থানিক আকারটি গণনা করতে পারি (\ (এস \)), এবং সীমান্তে শূন্য প্যাডিংয়ের পরিমাণ (\ (পি \)) ব্যবহৃত হয়েছে। আপনি নিজেকে বোঝাতে পারেন যে ne ((ডাব্লু - এফ + 2 পি) / এস + 1 by) দ্বারা কতগুলি নিউরন "ফিট" রয়েছে তা গণনা করার সঠিক সূত্র। উদাহরণস্বরূপ, 7x7 ইনপুট এবং স্ট্রাইড 1 এবং প্যাড 0 সহ একটি 3x3 ফিল্টারের জন্য আমরা একটি 5x5 আউটপুট পাব। স্ট্রাইড 2 এর সাথে আমরা একটি 3x3 আউটপুট পাব। আরও একটি গ্রাফিকাল উদাহরণ দেখতে দিন:
    স্থানিক বিন্যাসের উদাহরণ। এই উদাহরণে কেবলমাত্র একটি স্থানিক মাত্রা (এক্স-অক্ষ) রয়েছে, F = 3 এর গ্রহণযোগ্য ক্ষেত্রের আকারের সাথে একটি নিউরন রয়েছে, ইনপুট আকার ডাব্লু = 5 এবং পি = 1 এর শূন্য প্যাডিং রয়েছে বাম: নিউরন স্ট্রাইডেড এস = 1 এর প্রান্তে ইনপুট জুড়ে, আকারের আউটপুট প্রদান করে (5 - 3 + 2) / 1 + 1 = 5. ডান: নিউরন আকারের আউটপুট প্রদান করে, এস = 2 এর প্রসারিত ব্যবহার করে (5 - 3 + 2) / 2 + 1 = 3. লক্ষ্য করুন যে স্ট্রাইড S = 3 ব্যবহার করা যায়নি কারণ এটি ভলিউম জুড়ে ঝরঝরে ফিট করে না। সমীকরণের ক্ষেত্রে এটি নির্ধারণ করা যায় যেহেতু (5 - 3 + 2) = 4টি 3
    দ্বারা বিভাজ্য নয়, নিউরনের ওজন এই উদাহরণে রয়েছে [1,0, -1] (খুব ডানদিকে দেখানো হয়েছে) এবং এর পক্ষপাত শূন্য। এই ওজনগুলি সমস্ত হলুদ নিউরনগুলিতে ভাগ করা হয় (নীচে প্যারামিটার ভাগ করে নেওয়া দেখুন)।
    শূন্য-প্যাডিংয়ের ব্যবহার । বাম দিকে উপরের উদাহরণে, নোট করুন যে ইনপুট মাত্রা 5 ছিল এবং আউটপুট মাত্রা সমান: এছাড়াও 5 এটি কার্যকর হয়েছিল কারণ আমাদের গ্রহনকারী ক্ষেত্রগুলি 3 ছিল এবং আমরা 1 এর শূন্য প্যাডিং ব্যবহার করি যদি কোনও শূন্য প্যাডিং ব্যবহার না করা হত , তারপরে আউটপুট ভলিউমের স্থানিক মাত্রাটি কেবল 3 হত, কারণ এটিই মূল ইনপুট জুড়ে কতগুলি নিউরনের "ফিট" থাকবে। সাধারণভাবে, যখন স্ট্রাইড \ (এস = 1 \) হয় তখন শূন্য প্যাডিং \ (পি = (এফ - 1) / 2 \) হিসাবে নির্ধারণ করে তা নিশ্চিত করে যে ইনপুট ভলিউম এবং আউটপুট ভলিউম একই স্থানে থাকবে। এইভাবে শূন্য-প্যাডিং ব্যবহার করা খুব সাধারণ এবং আমরা যখন কনভনেট আর্কিটেকচার সম্পর্কে আরও কথা বলি তখন আমরা সম্পূর্ণ কারণগুলি নিয়ে আলোচনা করব।
    পদক্ষেপে বাধা। আবার লক্ষ করুন যে স্থানিক ব্যবস্থা হাইপারপ্যারামিটারগুলির পারস্পরিক প্রতিবন্ধকতা রয়েছে। উদাহরণস্বরূপ, যখন ইনপুটটির আকার \ (ডাব্লু = 10 \) থাকে তখন কোনও শূন্য-প্যাডিং ব্যবহার করা হয় না \ (পি = 0 \), এবং ফিল্টার আকার size (এফ = 3 \) হয়, তবে এটি ব্যবহার করা অসম্ভব হবে স্ট্রাইড \ (এস = 2 \), যেহেতু \ ((ডাব্লু - এফ +2 পি) / এস + 1 = (10 - 3 + 0) / 2 + 1 = 4.5 \), অর্থাত্ কোনও পূর্ণসংখ্যা নয়, ইঙ্গিত করে যে নিউরন ডন ইনপুট জুড়ে ঝরঝরে এবং প্রতিসাম্যহীনভাবে 'ফিট' করুন। অতএব, হাইপারপ্যারামিটারগুলির এই সেটিংটি অবৈধ হিসাবে বিবেচিত হয় এবং একটি কনভনেট লাইব্রেরি একটি ব্যতিক্রম বা শূন্য প্যাড বাকীটিকে এটি ফিট করে ফেলতে পারে, বা এটি ফিট করার জন্য ইনপুট ক্রপ করতে পারে বা কোনও কিছু। যেমনটি আমরা কনভনেট আর্কিটেকচার বিভাগে দেখতে পাব, কনভনেটগুলি যথাযথ আকারে আকার দিন যাতে সমস্ত মাত্রা "কাজ করা" একটি আসল মাথাব্যথা হতে পারে, যা শূন্য-প্যাডিং এবং কিছু নকশার নির্দেশিকা ব্যবহারের উল্লেখযোগ্যভাবে প্রশমন করতে পারে।
    বাস্তব বিশ্বের উদাহরণ । Krizhevsky এট অল।2012 সালে চিত্রনাট চ্যালেঞ্জ জিতেছে এমন আর্কিটেকচার আকারের চিত্রগুলি [227x227x3] গ্রহণ করেছে। প্রথম কনভোলিউশনাল স্তরটিতে, এটি গ্রহনযোগ্য ক্ষেত্রের আকার \ (এফ = 11 \), স্ট্রাইড \ (এস = 4 \) এবং কোনও শূন্য প্যাডিং P (পি = 0 \) সহ নিউরন ব্যবহার করে না। (227 - 11) / 4 + 1 = 55, এবং যেহেতু কনভ স্তরটির গভীরতা \ (কে = 96 \) ছিল, তাই কনভ স্তর আউটপুট ভলিউমের আকার [55x55x96] ছিল। এই ভলিউমের প্রতিটি 55 * 55 * 96 নিউরন ইনপুট ভলিউমে আকারের [11x11x3] অঞ্চলে সংযুক্ত ছিল। তদুপরি, প্রতিটি গভীরতার কলামে সমস্ত 96 নিউরন ইনপুটটির একই [11x11x3] অঞ্চলে সংযুক্ত থাকে তবে অবশ্যই বিভিন্ন ওজন সহ। মজাদার বিষয়টিকে বাদ দিয়ে, যদি আপনি প্রকৃত কাগজটি পড়েন তবে দাবি করা হয়েছে যে ইনপুট চিত্রগুলি 224x224 ছিল, যা অবশ্যই ভুল কারণ কারণ (224 - 11) / 4 + 1 পুরোপুরি পূর্ণসংখ্যা নয়। এটি কনভনেটসের ইতিহাসে অনেক লোককে বিভ্রান্ত করেছে এবং কী ঘটেছিল সে সম্পর্কে খুব কমই জানা যায়। আমার নিজের সেরা অনুমান যে অ্যালেক্স তিনটি অতিরিক্ত পিক্সেলের জিরো-প্যাডিং ব্যবহার করেছিলেন যা তিনি কাগজে উল্লেখ করেন না।
    প্যারামিটার ভাগ করে নেওয়া। প্যারামিটার ভাগ করে নেওয়ার প্রকল্পটি পরামিতিগুলির সংখ্যা নিয়ন্ত্রণ করতে কনভলিউশনাল স্তরগুলিতে ব্যবহৃত হয়। উপরের বাস্তব-বিশ্বের উদাহরণ ব্যবহার করে আমরা দেখতে পাচ্ছি যে প্রথম কনভ লেয়ারে 55 * 55 * 96 = 290,400 নিউরন রয়েছে এবং প্রত্যেকের 11 * 11 * 3 = 363 ওজন এবং 1 পক্ষপাত রয়েছে। একসাথে, এটি একা কনভনেটের প্রথম স্তরে 290400 * 364 = 105,705,600 পরামিতি যুক্ত করে। স্পষ্টতই, এই সংখ্যাটি খুব বেশি।
    দেখা যাচ্ছে যে আমরা একটি যুক্তিসঙ্গত অনুমান করে নাটকীয়ভাবে প্যারামিটারগুলির সংখ্যা হ্রাস করতে পারি: যে কোনও স্থান যদি কিছু স্থানিক অবস্থান (x, y) এ গণনা করতে কার্যকর হয়, তবে এটি পৃথক অবস্থানে (x2) গণনা করার জন্যও কার্যকর হতে হবে , Y2)। অন্য কথায়, গভীরতার একক দ্বি-মাত্রিক স্লাইসকে গভীরতার স্লাইস হিসাবে চিহ্নিত করা(যেমন আকারের [55x55x96] এর 96 টি গভীরতার টুকরোগুলি রয়েছে, প্রতিটি আকারের [55x55]), আমরা একই ওজন এবং পক্ষপাতিত্ব ব্যবহার করতে প্রতিটি গভীরতার টুকরোতে নিউরনগুলিকে সীমাবদ্ধ করতে চলেছি। এই প্যারামিটার ভাগ করে নেওয়ার প্রকল্পের সাথে, আমাদের উদাহরণের প্রথম কনভ স্তরটিতে এখন মোট 96 * 11 * 11 * 3 = 34,848 অনন্য ওজন বা 34,944 পরামিতিগুলির জন্য, কেবলমাত্র 96 টি ওজনের একটি নির্দিষ্ট সেট (প্রতিটি গভীরতার ফালিগুলির জন্য একটি) থাকবে ( +96 পক্ষপাত)) বিকল্পভাবে, প্রতিটি গভীরতার স্লাইসে সমস্ত 55 * 55 নিউরন এখন একই প্যারামিটার ব্যবহার করবে। ব্যাকপ্রস্যাগেশন চলাকালীন অনুশীলনে, ভলিউমের প্রতিটি নিউরন তার ওজনের জন্য গ্রেডিয়েন্টটি গণনা করবে তবে এই গ্রেডিয়েন্টগুলি প্রতিটি গভীরতার টুকরো জুড়ে যোগ করা হবে এবং কেবল প্রতিটি স্লাইসে ওজনের একক সেট আপডেট করবে।
    লক্ষ করুন যে, একটি একক গভীরতা ফালি সমস্ত নিউরোন একই ওজন ভেক্টর ব্যবহার করছেন, তাহলে প্রতিটি গভীরতা ফালি মধ্যে পরিবর্তনের স্তর করতে পারেন এর ফরওয়ার্ড পাস হিসেবে নির্ণিত করা সংবর্তন ইনপুট ভলিউম (অত: পর নামের সঙ্গে স্নায়ুর এর ওজন: Convolutional লেয়ার )। এই কারণেই ওজনের সেটগুলিকে ফিল্টার (বা কার্নেল ) হিসাবে উল্লেখ করা সাধারণ , যা ইনপুট দিয়ে সমাধান হয়।
    ক্রিজেভস্কি এট আল দ্বারা শিখে নেওয়া উদাহরণস্বরূপ ফিল্টারগুলি। এখানে প্রদর্শিত 96 টি ফিল্টারগুলির প্রতিটি আকারের [11x11x3] আকারের এবং প্রতিটি এক 55 ডিগ্রী 55 নিউরন দ্বারা একটি গভীরতার টুকরোতে ভাগ করা হয়। লক্ষ্য করুন যে প্যারামিটার ভাগ করে নেওয়ার ধারণাটি তুলনামূলকভাবে যুক্তিসঙ্গত: চিত্রের কোনও স্থানে যদি অনুভূমিক প্রান্তটি সনাক্ত করা গুরুত্বপূর্ণ, তবে চিত্রগুলির অনুবাদ-অদ্বিতীয় কাঠামোর কারণে এটি অন্য কোনও জায়গায় স্বজ্ঞাতভাবে কার্যকর হওয়া উচিত। সুতরাং কনভ স্তর আউটপুট ভলিউমের 55 * 55 স্বতন্ত্র অবস্থানগুলির প্রত্যেকটিতে একটি অনুভূমিক প্রান্ত সনাক্ত করার জন্য পুনরায় প্রকাশের প্রয়োজন নেই।
    মনে রাখবেন যে কখনও কখনও প্যারামিটার ভাগ করে নেওয়ার ধারণাটি বোধগম্য হয় না। এটি বিশেষত ক্ষেত্রে যখন কনভনেটের ইনপুট চিত্রগুলির একটি নির্দিষ্ট কেন্দ্রিক কাঠামো থাকে, যেখানে আমাদের প্রত্যাশা করা উচিত, উদাহরণস্বরূপ, পুরোপুরি আলাদা বৈশিষ্ট্যগুলি অন্যের চেয়ে চিত্রের একপাশে শিখতে হবে। একটি ব্যবহারিক উদাহরণ হ'ল যখন ইনপুটটি মুখগুলিতে থাকে যা চিত্রকে কেন্দ্র করে করা হয়। আপনি আশা করতে পারেন যে বিভিন্ন চক্ষু-নির্দিষ্ট বা চুল-নির্দিষ্ট বৈশিষ্ট্যগুলি বিভিন্ন স্থানগত স্থানে শিখতে পারে (এবং হওয়া উচিত)। সেক্ষেত্রে প্যারামিটার ভাগ করে নেওয়ার প্রকল্পটি শিথিল করা সাধারণ, এবং পরিবর্তে কেবল স্তরটিকে স্থানীয়ভাবে সংযুক্ত স্তর হিসাবে কল করুন 
    নোংরা উদাহরণ। আলোচনাটিকে আরও কংক্রিটের উপরে উঠানোর জন্য কোডগুলিতে এবং একটি নির্দিষ্ট উদাহরণ সহ একই ধারণাগুলি প্রকাশ করতে দিন। ধরুন যে ইনপুট ভলিউমটি একটি অদ্ভুত অ্যারে X। তারপর:
    • অবস্থানের একটি গভীরতার কলাম (বা একটি ফাইবার ) (x,y)সক্রিয়করণ হবে X[x,y,:]
    • একটি গভীরতা ফালি , বা equivalently একটি অ্যাক্টিভেশন মানচিত্র গভীরতায় dসক্রিয়করণব্যবস্থা হবে X[:,:,d]
    রূপান্তর স্তর উদাহরণ । মনে করুন ইনপুট ভলিউমের Xআকার রয়েছে X.shape: (11,11,4)। ধরা যাক আমরা শূন্য প্যাডিং (\ (পি = 0 \)) ব্যবহার করি না, ফিল্টারের আকার \ (এফ = 5 \), এবং স্ট্রাইডটি \ (এস = 2 \) হয়। আউটপুট ভলিউমের সুতরাং স্থানিক আকার (11-5) / 2 + 1 = 4 হবে, প্রস্থ এবং উচ্চতা 4 এর একটি ভলিউম প্রদান করে আউটপুট ভলিউমের অ্যাক্টিভেশন মানচিত্র (এটি কল করুন V), তারপরে নিম্নলিখিত হিসাবে প্রদর্শিত হবে (কেবলমাত্র কিছু উপাদানগুলির মধ্যে এই উদাহরণটি গণনা করা হয়):
    • V[0,0,0] = np.sum(X[:5,:5,:] * W0) + b0
    • V[1,0,0] = np.sum(X[2:7,:5,:] * W0) + b0
    • V[2,0,0] = np.sum(X[4:9,:5,:] * W0) + b0
    • V[3,0,0] = np.sum(X[6:11,:5,:] * W0) + b0
    মনে রাখবেন যে নপিতে, *উপরের ক্রিয়াকলাপটি অ্যারের মধ্যে মৌলিক দিকের গুণাকে বোঝায়। আরও লক্ষ করুন যে ওজন ভেক্টর W0সেই নিউরনের ওজন ভেক্টর এবং b0পক্ষপাতিত্ব। এখানে, W0আকারের হিসাবে ধরে নেওয়া হয় W0.shape: (5,5,4), যেহেতু ফিল্টারের আকার 5 এবং ইনপুট ভলিউমের গভীরতা 4 লক্ষ্য করুন যে প্রতিটি বিন্দুতে আমরা সাধারণ স্নায়বিক নেটওয়ার্কগুলিতে আগের মতো ডট পণ্যটি গণনা করছি। এছাড়াও, আমরা দেখতে পাচ্ছি যে আমরা একই ওজন এবং পক্ষপাত ব্যবহার করছি (প্যারামিটার ভাগ করে নেওয়ার কারণে), এবং যেখানে প্রস্থ বরাবর মাত্রা 2 (অর্থাৎ স্ট্রাইড) এর ধাপে বৃদ্ধি পাচ্ছে। আউটপুট ভলিউমে দ্বিতীয় অ্যাক্টিভেশন মানচিত্রটি তৈরি করতে, আমাদের কাছে রয়েছে:
    • V[0,0,1] = np.sum(X[:5,:5,:] * W1) + b1
    • V[1,0,1] = np.sum(X[2:7,:5,:] * W1) + b1
    • V[2,0,1] = np.sum(X[4:9,:5,:] * W1) + b1
    • V[3,0,1] = np.sum(X[6:11,:5,:] * W1) + b1
    • V[0,1,1] = np.sum(X[:5,2:7,:] * W1) + b1 (y এর সাথে যাওয়ার উদাহরণ)
    • V[2,3,1] = np.sum(X[4:9,6:11,:] * W1) + b1 (বা উভয় বরাবর)
    যেখানে আমরা দেখতে পাই যে আমরা দ্বিতীয় Vসূচক মাত্রায় সূচক করছি (সূচী 1 এ) কারণ আমরা দ্বিতীয় সক্রিয়করণ মানচিত্রটি গণনা করছি, এবং W1এখন প্যারামিটারগুলির একটি পৃথক সেট ব্যবহার করা হয়েছে। উপরের উদাহরণে, আমরা সংক্ষিপ্ততার জন্য আছি আউটপুট অ্যারের অন্যান্য অংশগুলি পূরণ করার জন্য কনভ লেয়ার সঞ্চালিত অন্যান্য ক্রিয়াকলাপগুলির কিছু বাদ দিয়ে V। অতিরিক্ত হিসাবে, মনে রাখবেন যে এই অ্যাক্টিভেশন মানচিত্রগুলি প্রায়শই একটি সক্রিয়করণ ফাংশন যেমন রিলু এর মাধ্যমে উপাদান অনুসারে অনুসরণ করা হয়, তবে এটি এখানে প্রদর্শিত হয় না।
    সংক্ষিপ্তসার । সংক্ষেপে বলতে গেলে কনভ লেয়ার:
    • আকারের একটি ভলিউম স্বীকার করে (W_1 \ বার H_1 H বার D_1 \)
    • চারটি হাইপারপ্যারামিটার প্রয়োজন:
      • ফিল্টার সংখ্যা K (কে \),
      • তাদের স্থানিক পরিধি F (এফ \),
      • স্ট্রাইড \ (এস \),
      • শূন্য প্যাডিংয়ের পরিমাণ P (পি \)।
    • আকারের একটি ভলিউম উত্পাদন করে (ডাব্লু 3 \ বার H_2 _2 গুণ D_2 \) যেখানে:
      • \ (ডাব্লু_২ = = (ডাব্লু_আর_1 - এফ + 2 পি) / এস + 1 \)
      • H (এইচ 2 = (এইচ_1 - এফ + 2 পি) / এস + 1 \) (অর্থাত্ প্রস্থ এবং উচ্চতা সমান্তরালভাবে সমানভাবে গণনা করা হয়)
      • \ (ডি_2 = কে \)
    • প্যারামিটার ভাগ করে নেওয়ার সাথে, এটি মোট per ((এফ \ সিডট এফ \ সিডট ডি_1) \ সিডট কে \) ওজন এবং \ (কে \) বায়াসগুলি ফিল্টার প্রতি ights (এফ \ সিডট এফ d সিডট ডি_1 \) উপস্থাপন করে।
    • আউটপুট ভলিউমে, \ (d \) - depth ষ্ঠ গভীরতার স্লাইস (আকারের \ (ডাব্লু 3 _2 বার এইচ 2 \)) এর ফলাফল is (ডি \) - এর সাথে ইনপুট ভলিউমের ওপরে ফিল্টার করে str (এস \) এর একটি প্রবাহ, এবং তারপরে \ (d \) দ্বারা অফসেট - তম পক্ষপাতিত্ব।
    হাইপারপ্যারামিটারগুলির একটি সাধারণ সেটিংস হ'ল \ (এফ = 3, এস = 1, পি = 1 \)। তবে থাম্বের প্রচলিত সম্মেলন এবং নিয়ম রয়েছে যা এই হাইপারপ্রেমেটারগুলিকে অনুপ্রাণিত করে। দেখুন ConvNet আর্কিটেকচারের বিভাগটি দেখুন।
    কনভলিউশন ডেমো। নীচে একটি সিওএনভি স্তরের চলমান ডেমো রয়েছে। যেহেতু 3 ডি ভলিউম ভিজ্যুয়ালাইজ করা শক্ত, তাই সমস্ত ভলিউম (ইনপুট ভলিউম (নীলায়), ওজনের ভলিউম (লাল রঙে), আউটপুট ভলিউম (সবুজ রঙে) সারিগুলিতে স্ট্যাক করা প্রতিটি গভীরতার টুকরা দিয়ে ভিজ্যুয়ালাইজ করা হয়। ইনপুট ভলিউম আকার \ (ডাব্লু_1 = 5, এইচ_1 = 5, ডি_1 = 3 \), এবং সিওএনভি স্তর প্যারামিটারগুলি হ'ল K (কে = 2, এফ = 3, এস = 2, পি = 1 \)। এটি হ'ল, আমাদের আকারের দুটি ফিল্টার রয়েছে \ (3 \ গুণ 3 \), এবং সেগুলি 2 এর প্রান্ত দিয়ে প্রয়োগ করা হয় Therefore সুতরাং, আউটপুট ভলিউমের আকারের স্থানিক আকার থাকে (5 - 3 + 2) / 2 + 1 = 3 । তদতিরিক্ত, লক্ষ্য করুন যে ইনপুট ভলিউমের শূন্যের বাইরের সীমানা তৈরি করে ইনপুট ভলিউমে to (P = 1 \) এর একটি প্যাডিং প্রয়োগ করা হয়েছে। নীচের চাক্ষুষটি আউটপুট অ্যাক্টিভেশনগুলি (সবুজ) এর উপরে পুনরাবৃত্তি করে এবং দেখায় যে প্রতিটি উপাদানকে মৌলিকভাবে ফিল্টার (লাল) দিয়ে হাইলাইটেড ইনপুট (নীল) দিয়ে গুণিত করা হয়,
    ম্যাট্রিক্স গুণন হিসাবে বাস্তবায়ন । নোট করুন যে কনভোলশন অপারেশনটি মূলত ইনপুটটির ফিল্টার এবং স্থানীয় অঞ্চলের মধ্যে বিন্দু পণ্যগুলি সম্পাদন করে। সিওএনভি স্তরটির একটি সাধারণ বাস্তবায়ন প্যাটার্নটি হ'ল এই সত্যটির সুবিধা গ্রহণ করা এবং একটি বৃহত্তর ম্যাট্রিক্সের গুণফল হিসাবে নিম্নরূপে একটি কনভ্যুশনাল স্তরটির এগিয়ে পাসটি প্রস্তুত করা:
    1. ইনপুট চিত্রের স্থানীয় অঞ্চলগুলি সাধারণভাবে ইম 2col নামক একটি অপারেশনে কলামগুলিতে প্রসারিত হয় । উদাহরণস্বরূপ, যদি ইনপুটটি [227x227x3] হয় এবং এটিকে স্ট্রাইক 4 এ 11x11x3 ফিল্টার দিয়ে সংহত করা হয়, তবে আমরা ইনপুটটিতে [11x11x3] পিক্সেলগুলির ব্লক নেব এবং প্রতিটি ব্লক 11 * 11 * আকারের কলাম ভেক্টরে প্রসারিত করব would 3 = 363. 4 প্রান্তে ইনপুটটিতে এই প্রক্রিয়াটি বিশদভাবে দেয় (227-11) / 4 + 1 = 55 উভয় প্রস্থ এবং উচ্চতা বরাবর অবস্থান করে , আকারের ইম 2col এর আউটপুট ম্যাট্রিক্সের X_colদিকে পরিচালিত করে [363 x 3025], যেখানে প্রতিটি কলামটি প্রসারিত গ্রহনযোগ্য ক্ষেত্র এবং সেগুলির মধ্যে 55 * 55 = 3025 টি রয়েছে। নোট করুন যেহেতু গ্রহণযোগ্য ক্ষেত্রগুলি ওভারল্যাপ হয়ে গেছে, ইনপুট ভলিউমের প্রতিটি সংখ্যা একাধিক স্বতন্ত্র কলামে নকল করা যেতে পারে।
    2. সিওএনভি স্তরের ওজন একইভাবে সারিগুলিতে প্রসারিত। উদাহরণস্বরূপ, যদি আকারের 96 টি ফিল্টার থাকে [11x11x3] এটি W_rowআকারের একটি ম্যাট্রিক্স [96 x 363] দেবে।
    3. একটি কনভোলিউশনের ফলাফল এখন একটি বৃহত ম্যাট্রিক্স গুণমান সম্পাদনের সমতুল্য np.dot(W_row, X_col), যা প্রতিটি ফিল্টার এবং প্রতিটি গ্রহণযোগ্য ক্ষেত্রের অবস্থানের মধ্যে ডট পণ্যকে মূল্যায়ন করে। আমাদের উদাহরণস্বরূপ, এই ক্রিয়াকলাপের আউটপুট হবে [96 x 3025], প্রতিটি জায়গাতে প্রতিটি ফিল্টারের ডট পণ্যের আউটপুট দেয়।
    4. ফলাফলটি শেষ পর্যন্ত তার সঠিক আউটপুট মাত্রা [55x55x96] এ পুনরায় আকার দিতে হবে।
    এই পদ্ধতির খারাপ দিক রয়েছে যা এটি প্রচুর মেমরি ব্যবহার করতে পারে, যেহেতু ইনপুট ভলিউমের কিছু মান একাধিকবার প্রতিলিপি করা হয় X_col। তবে, সুবিধাটি হ'ল ম্যাট্রিক্সের বহুগুণে অনেকগুলি কার্যকর বাস্তবায়ন রয়েছে যা আমরা সুবিধা নিতে পারি (উদাহরণস্বরূপ, সাধারণত ব্যবহৃত BLAS API এ)। তদুপরি, একই im2col ধারণাটি পুলিং অপারেশন সম্পাদন করতে পুনরায় ব্যবহার করা যেতে পারে, যা আমরা পরবর্তী আলোচনা করব।
    Backpropagation। কনভলিউশন অপারেশনের জন্য পশ্চাদপদ পাস (ডেটা এবং ওজন উভয়ের জন্য) এছাড়াও একটি কনভলজ হয় (তবে স্থানিকভাবে উল্টানো ফিল্টার সহ)। খেলনা উদাহরণের সাথে 1-মাত্রিক ক্ষেত্রে এটি পাওয়া সহজ (বর্তমানে আপাতত প্রসারিত হয়নি)।
    1x1 সমঝোতা । একদিকে যেমন, বেশিরভাগ কাগজপত্র 1x1 কনভোলিউশন ব্যবহার করে, যেমন নেটওয়ার্ক ইন নেটওয়ার্ক দ্বারা প্রথম তদন্ত করা হয়েছিল । কিছু লোক প্রথমে 1x1 টি রূপান্তরগুলি দেখে বিভ্রান্ত হয় বিশেষত যখন তারা সংকেত প্রক্রিয়াকরণ ব্যাকগ্রাউন্ড থেকে আসে। সাধারণত সিগন্যালগুলি দ্বিমাত্রিক হয় তাই 1x1 কনভোলশানগুলি বোঝায় না (এটি কেবলমাত্র বিন্যাসের স্কেলিং)। তবে কনভনেটসে এটি ঘটনাটি নয় কারণ একজনকে অবশ্যই মনে রাখতে হবে যে আমরা ত্রি-মাত্রিক ভলিউমের বেশি পরিচালনা করি এবং ফিল্টারগুলি সর্বদা ইনপুট ভলিউমের সম্পূর্ণ গভীরতার মধ্য দিয়ে প্রসারিত করে। উদাহরণস্বরূপ, যদি ইনপুটটি [32x32x3] হয় তবে 1x1 কনভোলিউশনগুলি কার্যকরভাবে কার্যকরভাবে ত্রিমাত্রিক ডট পণ্যগুলি করানো হবে (যেহেতু ইনপুট গভীরতা 3 টি চ্যানেল)।
    বিভক্ত কনভলিউশনগুলি। সাম্প্রতিক একটি বিকাশ (উদাহরণস্বরূপ ফিশার ইউ এবং ভ্লাদলান কোল্টুনের কাগজ দেখুন ) হ'ল ডিলেশন নামক সিওএনভি স্তরটিতে আরও একটি হাইপারপ্যারামিটার প্রবর্তন করা । এখনও অবধি আমরা কেবল সিএনভি ফিল্টার নিয়েই আলোচনা করেছি যা সংগত tig তবে, প্রতিটি কক্ষের মধ্যে ফাঁকা স্থান রয়েছে এমন ফিল্টারগুলি থাকা সম্ভব, যাকে ডিলেশন বলা হয়। উদাহরণস্বরূপ, এক মাত্রা একটি ফিল্টার wআকার 3 এর উপর ইনপুট গনা হবে xনিম্নলিখিত: w[0]*x[0] + w[1]*x[1] + w[2]*x[2]। এটি ০. এর প্রসারণ 1 টির জন্য 1 ফিল্টার পরিবর্তে গণনা করবেw[0]*x[0] + w[1]*x[2] + w[2]*x[4]অন্য কথায় অ্যাপ্লিকেশনগুলির মধ্যে 1 এর ব্যবধান রয়েছে। এটি 0-বিভক্ত ফিল্টারগুলির সাথে একত্রে ব্যবহার করতে কিছু সেটিংসে খুব কার্যকর হতে পারে কারণ এটি আপনাকে ইনপুটগুলি জুড়ে স্থানিক তথ্যকে আরও কম আগ্রাসনে কম স্তরগুলির সাথে সংহত করতে দেয়। উদাহরণস্বরূপ, আপনি যদি একে অপরের উপরে দুটি 3x3 সিএনভি স্তর স্থাপন করেন তবে আপনি নিজেকে বোঝাতে পারেন যে ২ য় স্তরের নিউরনগুলি ইনপুটটির একটি 5x5 প্যাচের ফাংশন (আমরা বলব যে এই নিউরনের কার্যকর গ্রহনযোগ্য ক্ষেত্রটি হ'ল) 5x5)। আমরা যদি বিশিষ্ট কনভোলিউশনগুলি ব্যবহার করি তবে এই কার্যকর গ্রহণযোগ্য ক্ষেত্রটি আরও দ্রুত বাড়বে।

    পুলিং স্তর

    কনভনেট আর্কিটেকচারে পর্যায়ক্রমে কনভ স্তরগুলির মধ্যে একটি পুলিং স্তরটি পর্যায়ক্রমে সন্নিবেশ করানো সাধারণ। নেটওয়ার্কে পরামিতি এবং গণনার পরিমাণ হ্রাস করার জন্য এবং এর ফলে ওভারফিটিং নিয়ন্ত্রণ করার জন্য এটির ক্রিয়াকলাপটি প্রতিনিধিত্বমূলক স্থানের আকারকে পর্যায়ক্রমে হ্রাস করা। পুলিং স্তরটি ইনপুটটির প্রতিটি গভীরতার ফালিগুলিতে স্বাধীনভাবে পরিচালনা করে এবং ম্যাক্স অপারেশনটি ব্যবহার করে স্থানিকভাবে এটি আকার দেয়। সর্বাধিক প্রচলিত ফর্মটি হ'ল একটি পুলিং স্তর যা 2x2 আকারের ফিল্টার সহ 2 টি ডাউনসাম্পলের স্ট্রাইড সহ প্রয়োগ করা হয় প্রতিটি গভীরতার টুকরো 2 এবং প্রস্থ এবং উচ্চতা উভয় দিয়ে 2 দ্বারা বিভক্ত করে সক্রিয়করণের 75% বাদ দেয়। প্রতিটি MAX অপারেশন এই ক্ষেত্রে সর্বাধিক 4 টি সংখ্যার (কিছু গভীরতার টুকরোতে 2x2 অঞ্চল) গ্রহণ করবে। গভীরতার মাত্রা অপরিবর্তিত রয়েছে। আরও সাধারণভাবে, পুলিং স্তর:
    • আকারের একটি ভলিউম স্বীকার করে (W_1 \ বার H_1 H বার D_1 \)
    • দুটি হাইপারপ্যারামিটার প্রয়োজন:
      • তাদের স্থানিক পরিধি F (এফ \),
      • স্ট্রাইড \ (এস \),
    • আকারের একটি ভলিউম উত্পাদন করে (ডাব্লু 3 \ বার H_2 _2 গুণ D_2 \) যেখানে:
      • \ (ডাব্লু_২ = (ডাব্লু_উইউ - ফ) / এস + ১ \)
      • H (এইচ 2 = (এইচ_1 - এফ) / এস + 1 \)
      • \ (D_2 = D_1 \)
    • শূন্য পরামিতিগুলি উপস্থাপন করে যেহেতু এটি ইনপুটটির একটি নির্দিষ্ট ফাংশনটি গণনা করে
    • পুলিং স্তরগুলির জন্য, শূন্য-প্যাডিং ব্যবহার করে ইনপুটটি প্যাড করা সাধারণ নয়।
    এটি লক্ষণীয় যে অনুশীলনে সর্বাধিক পুলিং স্তরের মাত্র দুটি দেখা যায়: ations (এফ = 3, এস = 2 \) সহ একটি পুলিং স্তর (এটিকে ওভারল্যাপিং পুলিংও বলা হয়), এবং আরও সাধারণভাবে F (এফ = 2, এস = 2 \)। বৃহত্তর গ্রহণযোগ্য ক্ষেত্রগুলির সাথে পুলিংয়ের আকারগুলি অত্যন্ত ধ্বংসাত্মক।
    সাধারণ পুলিং । সর্বাধিক পুলিংয়ের পাশাপাশি, পুলিং ইউনিটগুলি অন্যান্য ফাংশনগুলিও সম্পাদন করতে পারে যেমন গড় পুলিং বা এমনকি এল 2-নর্মিং পুলিং । গড় পুলিং প্রায়শই historতিহাসিকভাবে ব্যবহৃত হত তবে সর্বাধিক পুলিং অপারেশনের তুলনায় সাম্প্রতিক সময়ের পক্ষে এটি কমে গেছে, যা অনুশীলনে আরও ভালভাবে কাজ করার জন্য প্রদর্শিত হয়েছে।
     
    পুলিং স্তরটি ইনপুট ভলিউমের প্রতিটি গভীরতার টুকরোটিতে স্বতঃস্ফূর্তভাবে ভলিউমটিকে উত্সাহিত করে। বাম: এই উদাহরণে, আকারের ইনপুট ভলিউম [224x224x64] ফিল্টার আকার 2, স্ট্রাইড 2 দিয়ে আকারের আউটপুট ভলিউমে [112x112x64] দিয়ে পুল করা হয়। লক্ষ্য করুন যে ভলিউমের গভীরতা সংরক্ষণ করা হয়েছে। ডান: সর্বাধিক সাধারণ ডাউনসাম্পলিং অপারেশন সর্বাধিক, সর্বাধিক পুলিংয়ের উত্সাহ দেয় , এখানে ২ এর প্রান্ত দিয়ে দেখানো হয়েছে That অর্থাৎ, প্রতিটি সর্বাধিক 4 টি সংখ্যার (সামান্য 2x2 বর্গ) ধরে নেওয়া হয়।
    ব্যাকপ্রোপেশন । ব্যাকপ্রপ্যাগেশন অধ্যায়টি থেকে স্মরণ করুন যে সর্বাধিক (এক্স, ওয়াই) অপারেশনের জন্য পশ্চাদপটে পাসের একটি সহজ ব্যাখ্যা আছে কেবলমাত্র ইনপুটটিতে গ্রেডিয়েন্টকে রাউটিং হিসাবে যা ফরোয়ার্ড পাসের সর্বোচ্চ মান ছিল। অতএব, একটি পুলিং লেয়ারের এগিয়ে যাওয়ার সময় সর্বাধিক অ্যাক্টিভেশন (কখনও কখনও এটি সুইচও বলা হয় ) এর সূচকের উপর নজর রাখা সাধারণ বিষয় যাতে ব্যাকপ্রসারণের সময় গ্রেডিয়েন্ট রাউটিং দক্ষ হয় efficient
    পুলিং থেকে মুক্তি পাওয়া । অনেকে পুলিং অপারেশন অপছন্দ করে এবং মনে করে যে আমরা এগুলি ছাড়তে পারি। উদাহরণস্বরূপ, সরলতার জন্য সংগ্রাম: অল কনভ্যোলিউশনাল নেট কেবলমাত্র পুনরাবৃত্ত CONV স্তরগুলি সমন্বিত স্থাপত্যের পক্ষে পুলিং স্তরটি বাতিল করার প্রস্তাব দেয়। প্রতিনিধিত্বের আকার হ্রাস করার জন্য তারা একবারে CONV স্তরে বৃহত্তর স্ট্রাইড ব্যবহার করার পরামর্শ দেয়। পুলিং স্তরগুলি বাতিল করা ভাল জেনারেটরি মডেলগুলির প্রশিক্ষণের ক্ষেত্রে যেমন ভেরিয়েশনাল অটেনকোডারস (ভিএই) বা জেনারেটর অ্যাডভারসিয়াল নেটওয়ার্ক (জিএএনএস) গুরুত্বপূর্ণ ছিল তাও গুরুত্বপূর্ণ বলে প্রমাণিত হয়েছে। সম্ভবত মনে হচ্ছে ভবিষ্যতের আর্কিটেকচারগুলিতে খুব কম সংখ্যক পুলিং স্তর থাকবে।

    সাধারণকরণ স্তর

    জৈবিক মস্তিষ্কে পরিলক্ষিত বাধা স্কিমগুলি বাস্তবায়নের অভিপ্রায় নিয়ে, কখনও কখনও কনভনেট আর্কিটেকচারগুলিতে ব্যবহারের জন্য অনেক ধরণের সাধারণকরণ স্তরগুলির প্রস্তাব দেওয়া হয়েছিল। যাইহোক, এই স্তরগুলি তখন থেকে অনুকূলে পড়েছে কারণ বাস্তবে তাদের অবদানটি যদি সর্বনিম্ন হয় তবে তা যদি দেখানো হয় তবে তা ন্যূনতম। বিভিন্ন ধরণের নরমালাইজেশনের জন্য, অ্যালেক্স ক্রিজেভস্কির চুদা-কনভেট লাইব্রেরি এপিআইতে আলোচনাটি দেখুন ।

    সম্পূর্ণভাবে সংযুক্ত স্তর

    নিয়মিত নিউরাল নেটওয়ার্কগুলিতে দেখা যায়, সম্পূর্ণ সংযুক্ত স্তরের নিউরনের পূর্ববর্তী স্তরের সমস্ত ক্রিয়াকলাপের সাথে সম্পূর্ণ সংযোগ রয়েছে। তাদের ক্রিয়াকলাপগুলি ম্যাট্রিক্সের গুণ দ্বারা এবং তারপরে একটি পক্ষপাতিত্ব অফসেট দ্বারা গণনা করা যেতে পারে। দেখুন নিউরাল নেটওয়ার্ক আরও তথ্যের জন্য নোট অধ্যায়।

    FC স্তরগুলিকে CONV স্তরগুলিতে রূপান্তর করা হচ্ছে

    এটি লক্ষণীয় যে এফসি এবং সিওএনভি স্তরগুলির মধ্যে একমাত্র পার্থক্য হ'ল সিওএনভি স্তরের নিউরনগুলি কেবল ইনপুটটিতে একটি স্থানীয় অঞ্চলে সংযুক্ত থাকে এবং সিওএনভি ভলিউম শেয়ার পরামিতিগুলির অনেকগুলি নিউরন রয়েছে। তবে উভয় স্তরগুলিতে থাকা নিউরনগুলি এখনও ডট পণ্যগুলি গণনা করে, তাই তাদের কার্যকরী ফর্মটি অভিন্ন। অতএব, দেখা যাচ্ছে যে FC এবং CONV স্তরগুলির মধ্যে রূপান্তর করা সম্ভব:
    • যে কোনও সিওএনভি স্তরের জন্য একটি এফসি স্তর রয়েছে যা একই ফরোয়ার্ড ফাংশনটি কার্যকর করে। ওজন ম্যাট্রিক্স একটি বৃহত ম্যাট্রিক্স হবে যা নির্দিষ্ট ব্লক (স্থানীয় সংযোগের কারণে) ব্যতীত বেশিরভাগ শূন্য যেখানে অনেকগুলি ব্লকের ওজন সমান (প্যারামিটার ভাগের কারণে)।
    • বিপরীতে, যে কোনও এফসি স্তর একটি সিওএনভি স্তরে রূপান্তর করা যায়। উদাহরণস্বরূপ, F (কে = 4096 \) সহ একটি এফসি স্তর যা আকারের কিছু ইনপুট ভলিউম দেখছে (7 \ গুণ 7 \ গুণ 512 looking) সমানভাবে \ (এফ = 7, পি) এর সাথে একটি সিএনভি স্তর হিসাবে প্রকাশ করা যেতে পারে = 0, এস = 1, কে = 4096 \)। অন্য কথায়, আমরা ফিল্টার আকারটি ইনপুট ভলিউমের হুবহু আকার হিসাবে নির্ধারণ করছি এবং সুতরাং আউটপুটটি কেবল \ (1 \ গুণ 1 \ গুণ 4096 \) হবে কারণ ইনপুট জুড়ে কেবল একটি একক গভীরতার কলাম "ফিট করে" since ভলিউম, প্রাথমিক এফসি স্তর হিসাবে অভিন্ন ফলাফল প্রদান।
    FC-> CONV রূপান্তর । এই দুটি রূপান্তরগুলির মধ্যে, একটি এফসি স্তরকে একটি সিওএনভি স্তরে রূপান্তর করার ক্ষমতা অনুশীলনে বিশেষভাবে কার্যকর। একটি কনভনেট আর্কিটেকচারটি বিবেচনা করুন যা একটি 224x224x3 চিত্র নেয় এবং তারপরে চিত্রটি 7x7x512 আকারের একটি ক্রিয়াকলাপের পরিমাণে কমিয়ে আনার জন্য CONV স্তর এবং POOL স্তরগুলির একটি সিরিজ ব্যবহার করে (একটি আলেকসনেট আর্কিটেকচারে যা আমরা পরে দেখব, এটি ব্যবহারের মাধ্যমে সম্পন্ন করা হয়েছে) 5 টি পুলিং স্তর যা প্রতিবার দু'একটি ফ্যাক্টর দ্বারা ইনপুটটিকে স্থানিকভাবে নিচে নমুনা দেয়, চূড়ান্ত স্থানিক আকার 224/2/2/2/2/2 = 7 তৈরি করে)। সেখান থেকে, একটি অ্যালেক্সনেট 4096 আকারের দুটি এফসি স্তর এবং পরিশেষে 1000 টি নিউরন সহ শেষ এফসি স্তরগুলি ব্যবহার করে যা শ্রেণীর স্কোরগুলি গণনা করে। উপরে বর্ণিত হিসাবে আমরা এই তিনটি FC স্তরকে CONV স্তরগুলিতে রূপান্তর করতে পারি:
    • [7x7x512] ভলিউমটি দেখে এমন প্রথম এফসি স্তরটি প্রতিস্থাপন করুন যা একটি সিওএনভি স্তর দিয়ে ফিল্টার আকার 1 (এফ = 7 \) ব্যবহার করে আউটপুট ভলিউম [1x1x4096] দেয়।
    • ফিল্টার আকার uses (F = 1 \) ব্যবহার করে আউটপুট ভলিউম প্রদান করে দ্বিতীয় এফসি স্তরটি প্রতিস্থাপন করুন [1x1x4096]
    • চূড়ান্ত আউটপুট প্রদান করে \ (এফ = 1 \) এর সাথে শেষ এফসি স্তরটি একইভাবে প্রতিস্থাপন করুন [1x1x1000]
    এই রূপান্তরগুলির প্রত্যেকটিতে অনুশীলনের মধ্যে প্রতিটি এফসি স্তরটিতে ওজন ম্যাট্রিক্স \ (ডাব্লু \) সিওএনভি স্তর ফিল্টারগুলিতে ম্যানিপুলেটিং (উদাহরণস্বরূপ পুনর্নির্মাণ) জড়িত থাকতে পারে। দেখা যাচ্ছে যে এই রূপান্তরটি আমাদের একক ফরোয়ার্ড পাসে একটি বৃহত্তর চিত্রের অনেক স্থানিক অবস্থান জুড়ে মূল কনভনেটটি খুব দক্ষতার সাথে "স্লাইড" করতে দেয়।
    উদাহরণস্বরূপ, যদি 224x224 চিত্র [7x7x512] আকারের পরিমাণ দেয় - অর্থাত্ 32 টি হ্রাস, তবে রূপান্তরিত আর্কিটেকচারের মাধ্যমে 384x384 আকারের একটি চিত্র ফরোয়ার্ড করা 384/32 = 12 থেকে আকারের [12x12x512] এর সমতুল্য পরিমাণ দেয়। পরের 3 টি সিএনভি স্তর সহ যে আমরা সবেমাত্র এফসি স্তর থেকে রূপান্তর করেছি তা আকারের চূড়ান্ত পরিমাণ [6x6x1000] দেবে, যেহেতু (12 - 7) / 1 + 1 = 6. নোট করুন যে ক্লাস স্কোরগুলির একক ভেক্টরের পরিবর্তে আকারের [1x1x1000], এখন আমরা 384x384 চিত্র জুড়ে ক্লাস স্কোরগুলির একটি সম্পূর্ণ 6x6 অ্যারে পাচ্ছি।
    আসল কনভনেটকে মূল্যায়ন (এফসি স্তর সহ) 324 পিক্সেলের স্ট্রাইজে 384x384 চিত্রের 224x224 ফসলে স্বাধীনভাবে রূপান্তরিত কনভনেটকে একবার ফরোয়ার্ড করার জন্য একটি অভিন্ন ফলাফল দেয়।
    স্বভাবতই, রূপান্তরিত কনভনেটকে একক সময় ফরোয়ার্ড করা those সমস্ত over locations টি স্থানে মূল কনভনেটকে পুনরুক্ত করার চেয়ে অনেক বেশি কার্যকর, যেহেতু ৩ evalu টি মূল্যায়ন ভাগ করে নিচ্ছে। এই কৌশলটি প্রায়শই আরও ভাল পারফরম্যান্স পাওয়ার জন্য অনুশীলনে ব্যবহৃত হয়, উদাহরণস্বরূপ, কোনও চিত্রকে বড় করার জন্য এটি আকার পরিবর্তন করা সাধারণ, অনেক স্থানিক অবস্থানে ক্লাস স্কোরগুলি মূল্যায়নের জন্য রূপান্তরিত কনভনেট ব্যবহার করুন এবং তারপরে শ্রেণীর স্কোরগুলি গড় করুন।
    শেষ অবধি, যদি আমরা চিত্রের উপরে মূল কনভনেট দক্ষতার সাথে প্রয়োগ করতে চাই তবে 32 পিক্সেলের চেয়ে ছোট ধাপে পারি? আমরা একাধিক ফরোয়ার্ড পাস দিয়ে এটি অর্জন করতে পারি। উদাহরণস্বরূপ, নোট করুন যে আমরা যদি 16 পিক্সেলের একটি প্রান্ত ব্যবহার করতে চাই আমরা রূপান্তরিত কনভনেটকে দু'বার ফরওয়ার্ড করে প্রাপ্ত ভলিউমগুলিকে একত্রিত করে এটি করতে পারি: মূল চিত্রের ওপরে এবং দ্বিতীয়টির সাথে চিত্রটি 16 পিক্সেলের দ্বারা স্থানিকভাবে স্থানান্তরিত হবে প্রস্থ এবং উচ্চতা উভয় বরাবর।
    • নেট সার্জারির একটি আইপিথন নোটবুক কোডটিতে (ক্যাফে ব্যবহার করে) বাস্তবে রূপান্তরটি কীভাবে সম্পাদন করবেন তা দেখায়

    কনভনেট আর্কিটেকচার

    আমরা দেখেছি যে কনভলিউশনাল নেটওয়ার্কগুলি সাধারণত তিনটি স্তর ধরণের গঠিত: CONV, POOL (আমরা অন্যভাবে উল্লেখ না করে সর্বোচ্চ পুলকে ধরে নিই) এবং এফসি (সম্পূর্ণ সংযোগের জন্য সংক্ষিপ্ত)। আমরা স্পষ্টভাবে একটি স্তর হিসাবে RELU অ্যাক্টিভেশন ফাংশনটি লিখব যা উপাদান হিসাবে অ-রৈখিকতা প্রয়োগ করে। এই বিভাগে আমরা আলোচনা করব যে কীভাবে এগুলি সাধারণত একসাথে পুরো কনভনেটগুলি তৈরি করা হয় form

    স্তর প্যাটার্নস

    কনভনেট আর্কিটেকচারের সর্বাধিক সাধারণ ফর্মটি কয়েকটি সিএনভি-আরইলইউ স্তরগুলি স্ট্যাক করে, সেগুলি পিওওএল স্তরগুলির সাথে অনুসরণ করে এবং চিত্রটি একটি ছোট আকারে স্থান পরিবর্তন না করা অবধি এই প্যাটার্নটি পুনরাবৃত্তি করে। কিছু সময়ে, সম্পূর্ণরূপে সংযুক্ত স্তরগুলিতে স্থানান্তর করা সাধারণ। শেষ পুরোপুরি সংযুক্ত স্তর আউটপুট ধারণ করে যেমন শ্রেণীর স্কোরগুলি। অন্য কথায়, সর্বাধিক সাধারণ কনভনেট আর্কিটেকচার প্যাটার্নটি অনুসরণ করে:
    INPUT -> [[CONV -> RELU]*N -> POOL?]*M -> [FC -> RELU]*K -> FC
    যেখানে *ইঙ্গিতগুলি পুনরাবৃত্তি নির্দেশ করে এবং POOL?anচ্ছিক পুলিং স্তর নির্দেশ করে। তাছাড়া, N >= 0(এবং সাধারণত N <= 3M >= 0K >= 0(এবং সাধারণত K < 3)। উদাহরণস্বরূপ, এখানে কয়েকটি সাধারণ কনভনেট আর্কিটেকচার আপনি দেখতে পাচ্ছেন যা এই প্যাটার্নটি অনুসরণ করে:
    • INPUT -> FC, একটি লিনিয়ার শ্রেণিবদ্ধকরণ প্রয়োগ করে। এখানে N = M = K = 0
    • INPUT -> CONV -> RELU -> FC
    • INPUT -> [CONV -> RELU -> POOL]*2 -> FC -> RELU -> FC। এখানে আমরা দেখতে পাচ্ছি যে প্রতিটি পওল স্তরের মধ্যে একটি সিওএনভি স্তর রয়েছে।
    • INPUT -> [CONV -> RELU -> CONV -> RELU -> POOL]*3 -> [FC -> RELU]*2 -> FCএখানে আমরা প্রতিটি পনল স্তরের আগে দুটি CONV স্তর সজ্জিত দেখতে পাচ্ছি। বৃহত্তর এবং গভীর নেটওয়ার্কগুলির জন্য এটি সাধারণত একটি ভাল ধারণা, কারণ একাধিক স্ট্যাকড সিওএনভি স্তরগুলি ধ্বংসাত্মক পুলিং অপারেশনের আগে ইনপুট ভলিউমের আরও জটিল বৈশিষ্ট্য বিকাশ করতে পারে।
    একটি বৃহত্তর গ্রহণযোগ্য ক্ষেত্র CONV স্তর থেকে ছোট ফিল্টার CONV এর একটি স্ট্যাক পছন্দ করুন। মনে করুন যে আপনি একে অপরের উপরে তিনটি 3x3 সিএনভি স্তর রেখেছেন (অবশ্যই এর মধ্যে অ-রৈখিকতা সহ)। এই বিন্যাসে, প্রথম সিওএনভি স্তরের প্রতিটি নিউরনের ইনপুট ভলিউমের একটি 3x3 ভিউ রয়েছে। দ্বিতীয় সিওএনভি স্তরের একটি নিউরনের প্রথম সিওএনভি স্তরটির 3x3 ভিউ রয়েছে এবং তাই ইনপুট ভলিউমের একটি 5x5 ভিউ এক্সটেনশন দ্বারা। একইভাবে, তৃতীয় সিওএনভি স্তরের একটি নিউরনের ২ য় সিওএনভি স্তরটির 3x3 ভিউ রয়েছে, এবং সুতরাং ইনপুট ভলিউমের 7x7 ভিউ রয়েছে। মনে করুন যে 3x3 CONV এর এই তিনটি স্তরটির পরিবর্তে, আমরা কেবলমাত্র 7x7 গ্রাহক ক্ষেত্র সহ একটি সিএনভিভি স্তর ব্যবহার করতে চেয়েছিলাম। এই নিউরনগুলির ইনপুট ভলিউমের একটি গ্রহণযোগ্য ক্ষেত্রের আকার থাকবে যা স্থানিক পরিমাণে (7x7) অভিন্ন, তবে বেশ কয়েকটি অসুবিধা রয়েছে। প্রথমত, নিউরনগুলি ইনপুটটির উপর একটি লিনিয়ার ফাংশন গণনা করবে, সিএনভিভি স্তরগুলির তিনটি স্ট্যাকগুলিতে অ-লিনিয়ারিটি রয়েছে যা তাদের বৈশিষ্ট্যগুলিকে আরও প্রকাশিত করে তোলে। দ্বিতীয়ত, আমরা যদি মনে করি যে সমস্ত খণ্ডে \ (সি \) চ্যানেল রয়েছে, তবে এটি দেখা যায় যে একক 7x7 সিওএনভি স্তরটিতে \ (সি \ বার (7 \ বার 7 \ বার সি) = 49 সি ^ 2 contain থাকবে ) প্যারামিটারগুলি, যখন তিনটি 3x3 CONV স্তরগুলিতে কেবল \ (3 \ বার (সি \ বার (3 \ গুণ 3 \ বার সি)) = 27 সি ^ 2 \) পরামিতি থাকে। স্বজ্ঞাতভাবে, বড় ফিল্টারগুলির সাথে একটি সিওএনভি স্তর থাকার বিপরীতে ক্ষুদ্র ফিল্টার সহ সিএনভি স্তরগুলি স্ট্যাক করা আমাদের ইনপুটটির আরও শক্তিশালী বৈশিষ্ট্যগুলি প্রকাশ করতে দেয় এবং কম পরামিতি সহ। ব্যবহারিক অসুবিধা হিসাবে, যদি আমরা ব্যাকপ্রসারণের পরিকল্পনা করি তবে আমাদের মধ্যবর্তী সমস্ত সিএনভি স্তর ফলাফলগুলি ধরে রাখতে আরও মেমরির প্রয়োজন হতে পারে। তারপরে এটি দেখা যায় যে একক 7x7 সিওএনভি স্তরটিতে \ (সি \ গুণ (7 \ গুণ 7 \ বার সি) = 49 সি ^ 2 \) পরামিতি থাকবে, যখন তিনটি 3x3 সিএনভি স্তর কেবলমাত্র \ (3 \ বার) ধারণ করবে (সি \ বার (3 \ বার 3 \ বার সি)) = 27 সি ^ 2 \) পরামিতি। স্বজ্ঞাতভাবে, বড় ফিল্টারগুলির সাথে একটি সিওএনভি স্তর থাকার বিপরীতে ক্ষুদ্র ফিল্টার সহ সিএনভি স্তরগুলি স্ট্যাক করা আমাদের ইনপুটটির আরও শক্তিশালী বৈশিষ্ট্যগুলি প্রকাশ করতে দেয় এবং কম পরামিতি সহ। ব্যবহারিক অসুবিধা হিসাবে, যদি আমরা ব্যাকপ্রসারণের পরিকল্পনা করি তবে আমাদের মধ্যবর্তী সমস্ত সিএনভি স্তর ফলাফলগুলি ধরে রাখতে আরও মেমরির প্রয়োজন হতে পারে। তারপরে এটি দেখা যায় যে একক 7x7 সিওএনভি স্তরটিতে \ (সি \ গুণ (7 \ গুণ 7 \ বার সি) = 49 সি ^ 2 \) পরামিতি থাকবে, যখন তিনটি 3x3 সিএনভি স্তর কেবলমাত্র \ (3 \ বার) ধারণ করবে (সি \ বার (3 \ বার 3 \ বার সি)) = 27 সি ^ 2 \) পরামিতি। স্বজ্ঞাতভাবে, বড় ফিল্টারগুলির সাথে একটি সিওএনভি স্তর থাকার বিপরীতে ক্ষুদ্র ফিল্টার সহ সিএনভি স্তরগুলি স্ট্যাক করা আমাদের ইনপুটটির আরও শক্তিশালী বৈশিষ্ট্যগুলি প্রকাশ করতে দেয় এবং কম পরামিতি সহ। ব্যবহারিক অসুবিধা হিসাবে, যদি আমরা ব্যাকপ্রসারণের পরিকল্পনা করি তবে আমাদের মধ্যবর্তী সমস্ত সিএনভি স্তর ফলাফলগুলি ধরে রাখতে আরও মেমরির প্রয়োজন হতে পারে। বড় ফিল্টারগুলির সাথে একটি সিওএনভি স্তর থাকার বিপরীতে ছোট ফিল্টারগুলির সাথে সিওএনভি স্তরগুলি স্ট্যাক করা আমাদের ইনপুটটির আরও শক্তিশালী বৈশিষ্ট্যগুলি প্রকাশ করতে দেয় এবং কম পরামিতি সহ। ব্যবহারিক অসুবিধা হিসাবে, যদি আমরা ব্যাকপ্রসারণের পরিকল্পনা করি তবে আমাদের মধ্যবর্তী সমস্ত সিএনভি স্তর ফলাফলগুলি ধরে রাখতে আরও মেমরির প্রয়োজন হতে পারে। বড় ফিল্টারগুলির সাথে একটি সিওএনভি স্তর থাকার বিপরীতে ছোট ফিল্টারগুলির সাথে সিওএনভি স্তরগুলি স্ট্যাক করা আমাদের ইনপুটটির আরও শক্তিশালী বৈশিষ্ট্যগুলি প্রকাশ করতে দেয় এবং কম পরামিতি সহ। ব্যবহারিক অসুবিধা হিসাবে, যদি আমরা ব্যাকপ্রসারণের পরিকল্পনা করি তবে আমাদের মধ্যবর্তী সমস্ত সিএনভি স্তর ফলাফলগুলি ধরে রাখতে আরও মেমরির প্রয়োজন হতে পারে।
    সাম্প্রতিক প্রস্থান এটি লক্ষ করা উচিত যে সাম্প্রতিক স্তরগুলির একটি লিনিয়ার তালিকার প্রচলিত দৃষ্টান্ত চ্যালেঞ্জ করা হয়েছিল, গুগলের উদ্বোধন স্থাপত্যগুলিতে এবং মাইক্রোসফ্ট রিসার্চ এশিয়া থেকে বর্তমান (শিল্পের রাজ্য) অবশেষ নেটওয়ার্কগুলিতেও। এই দুটিই (কেস স্টাডি বিভাগে নীচে বিশদটি দেখুন) আরও জটিল এবং বিভিন্ন সংযোগ কাঠামো বৈশিষ্ট্যযুক্ত।
    অনুশীলনে: ইমেজনেটে ​​সেরা যা কাজ করে তা ব্যবহার করুন । আপনি যদি স্থাপত্য সংক্রান্ত সিদ্ধান্তগুলি সম্পর্কে চিন্তাভাবনা করতে কিছুটা ক্লান্তি অনুভব করেন, তবে আপনি 90% বা তার বেশি অ্যাপ্লিকেশনগুলিতে এগুলি সম্পর্কে উদ্বিগ্ন হওয়ার দরকার নেই তা জানতে পেরে আপনি খুশি হবেন। আমি এই বিষয়টিকে " বীর হবেন না " হিসাবে সংক্ষেপে বলতে চাই : কোনও সমস্যার জন্য নিজের আর্কিটেকচারটি রোল করার পরিবর্তে, বর্তমানে ইমেজনেটে ​​যেকোন আর্কিটেকচারটি সবচেয়ে ভাল কাজ করে তা আপনার উচিত, প্রাক-প্রশিক্ষিত মডেলটি ডাউনলোড করুন এবং এটি আপনার ডেটাতে ফিনিটিউন করুন। আপনাকে খুব কমই স্ক্র্যাচ থেকে কনভনেট প্রশিক্ষণ করতে হবে বা স্ক্র্যাচ থেকে কোনও ডিজাইন করতে হবে। আমি ডিপ লার্নিং স্কুলেও এই বিষয়টি তৈরি করেছি

    স্তর আকারের প্যাটার্নস

    এখন অবধি আমরা কনভনেটে প্রতিটি স্তরে ব্যবহৃত সাধারণ হাইপারপ্রেমেটারগুলির উল্লেখ বাদ দিয়েছি। আমরা প্রথমে আর্কিটেকচার মাপার জন্য থাম্বের সাধারণ নিয়মগুলি জানিয়ে দেব এবং তারপরে স্বরলিপিটির আলোচনার সাথে নিয়মগুলি অনুসরণ করব:
    ইনপুট স্তর (যে ইমেজ রয়েছে) 2 অনেকবার দ্বারা বিভাজ্য হতে হবে। সাধারণ সংখ্যার মধ্যে 32 (যেমন সিআইএফএআর -10), 64, 96 (যেমন এসটিএল -10), বা 224 (যেমন সাধারণ চিত্রনাট কনভনেটস), 384 এবং 512 অন্তর্ভুক্ত রয়েছে।
    পরিবর্তনের স্তর , ছোট ফিল্টার (যেমন 3x3 অথবা সবচেয়ে 5x5 কোণে) ব্যবহার করা উচিত (এস = 1 \), এবং গভীরভাবে এর \ একটি দীর্ঘ ব্যবহার করে, যেমন ভাবে শূন্য যে পরিবর্তন স্তর স্থানিক পরিবর্তন নেই ইনপুট ভলিউম প্যাডিং প্রয়োগ ইনপুট এর মাত্রা। এটি হ'ল, যখন \ (F = 3 \) হবে, তারপরে \ (পি = 1 \) ব্যবহার করলে ইনপুটটির মূল আকার ধরে রাখা যাবে। যখন \ (এফ = 5 \), \ (পি = 2 \) হয়। একটি সাধারণ \ (এফ \) এর জন্য দেখা যায় যে \ (পি = (এফ - 1) / 2।) ইনপুট আকার সংরক্ষণ করে। যদি আপনার অবশ্যই বড় ফিল্টার আকারগুলি (যেমন 7x7 বা তাই) ব্যবহার করা হয় তবে ইনপুট চিত্রটির দিকে তাকানো একেবারে প্রথম কনভ লেয়ারে এটি দেখা সাধারণ।
    পুকুর স্তর ইনপুটের স্থানিক মাত্রা downsampling ভারপ্রাপ্ত হয়। সর্বাধিক সাধারণ সেটিংস হ'ল 2x2 গ্রাহক ক্ষেত্রগুলি (যেমন \ (এফ = 2 \)) এবং 2 (যেমন \ (এস = 2 \)) এর সাইড সহ সর্বাধিক-পুলিং ব্যবহার করা। নোট করুন যে এটি একটি ইনপুট ভলিউমে (width প্রস্থ এবং উচ্চতা উভয়ই 2 দ্বারা ডাউন স্যাম্পলিংয়ের কারণে) অ্যাক্টিভেশনগুলির হুবহু বাদ দেয়। আরেকটি সামান্য কম সাধারণ সেটিংস হল 2 এর ধাপের সাথে 3x3 রিসেপ্টিভ ক্ষেত্রগুলি ব্যবহার করা, তবে এটি তৈরি করে। 3 টিরও বেশি বড় পলিংয়ের জন্য গ্রহণযোগ্য ক্ষেত্রের মাপগুলি দেখা খুব অস্বাভাবিক বিষয় কারণ পুলিংটি তখন খুব ক্ষয়ক্ষতিযুক্ত এবং আক্রমণাত্মক। এটি সাধারণত খারাপ কর্মক্ষমতা বাড়ে।
    সাইজিং মাথাব্যথা হ্রাস। উপরে উপস্থাপিত স্কিমটি আনন্দদায়ক কারণ সমস্ত সিওএনভি স্তরগুলি তাদের ইনপুটটির স্থানিক আকার সংরক্ষণ করে, অন্যদিকে একা পল স্তরগুলি স্থানিকভাবে ভলিউমগুলি ডাউন-স্যাম্পলিংয়ের দায়িত্বে থাকে। একটি বিকল্প স্কিম যেখানে আমরা 1 এর বেশি স্ট্রাইড ব্যবহার করি বা সিওএনভি স্তরগুলিতে ইনপুটটি শূন্য প্যাড না করি, আমাদের সিএনএন আর্কিটেকচার জুড়ে ইনপুট ভলিউমের খুব যত্ন সহকারে নজর রাখতে হবে এবং নিশ্চিত করতে হবে যে সমস্ত স্ট্রাইড এবং ফিল্টারগুলি "কাজ করে আউট ", এবং এটি যে কনভনেট আর্কিটেকচারটি দুর্দান্ত এবং প্রতিসামগ্রীযুক্ত তারযুক্ত।
    কেন সিওএনভিতে 1 এর স্ট্রাইড ব্যবহার করবেন? অনুশীলনে ছোট পদক্ষেপগুলি আরও ভাল কাজ করে। অতিরিক্ত হিসাবে, ইতিমধ্যে উল্লিখিত স্ট্রাইড 1 আমাদের সিওএনভি স্তরগুলি কেবল ইনপুট ভলিউমের গভীরতা অনুসারে রূপান্তরিত করে POOL স্তরগুলিতে সমস্ত স্থানিক ডাউন-স্যাম্পলিং ছাড়ার অনুমতি দেয়।
    প্যাডিং কেন ব্যবহার করবেন? সিওএনভির পরে স্থানিক আকারকে ধ্রুবক করে তোলার পূর্বোক্ত সুবিধা ছাড়াও এটি করার ফলে কার্যক্ষমতা উন্নত হয়। যদি সিওএনভি স্তরগুলি ইনপুটগুলি শূন্যপ্যাড না করে এবং কেবল বৈধ কনভোলিউশনগুলি সম্পাদন করে, তবে প্রতিটি সিএনভি-র পরে ভলিউমের আকার অল্প পরিমাণে হ্রাস পাবে এবং সীমান্তগুলিতে তথ্যগুলি খুব দ্রুত "ধুয়ে" যাবে।
    মেমরির সীমাবদ্ধতার উপর ভিত্তি করে সমঝোতা করা।কিছু ক্ষেত্রে (বিশেষত কনভনেট আর্কিটেকচারের প্রথমদিকে) উপরে উপস্থাপিত থাম্বের বিধিগুলি সহ মেমরির পরিমাণ খুব দ্রুত বাড়তে পারে। উদাহরণস্বরূপ, তিনটি 3x3 সিএনভি স্তর সহ একটি 224x224x3 চিত্র ফিল্টার করে প্রতিটি 64 টি ফিল্টার এবং 1 প্যাডিং আকারের [224x224x64] তিনটি অ্যাক্টিভেশন ভলিউম তৈরি করতে পারে। এটি মোট প্রায় 10 মিলিয়ন অ্যাক্টিভেশন, বা 72MB মেমরির পরিমাণ (প্রতি চিত্র, সক্রিয়করণ এবং গ্রেডিয়েন্ট উভয়ের জন্য)। যেহেতু জিপিইউগুলি প্রায়শই মেমোরির সাথে বাধা থাকে তাই আপস করার প্রয়োজন হতে পারে। অনুশীলনে, লোকেরা নেটওয়ার্কের প্রথম প্রথম সিএনভি স্তরেই আপস করা পছন্দ করে। উদাহরণস্বরূপ, একটি সমঝোতা হতে পারে 7x7 ফিল্টার আকার এবং 2 এর স্ট্রাইড (একটি জেডএফ নেট হিসাবে দেখা যায়) সহ প্রথম সিএনভি স্তর ব্যবহার করা। অন্য উদাহরণ হিসাবে, একটি অ্যালেক্সনেট 11x11 এর ফিল্টার আকার এবং 4 এর স্ট্রাইড ব্যবহার করে।

    কেস স্টাডিজ

    কনভলিউশনাল নেটওয়ার্কের ক্ষেত্রে বেশ কয়েকটি স্থাপত্য রয়েছে যার নাম রয়েছে। সর্বাধিক সাধারণ:
    • LeNet । কনভলিউশনাল নেটওয়ার্কগুলির প্রথম সফল অ্যাপ্লিকেশনগুলি 1990 এর দশকে ইয়ান লেকুন দ্বারা বিকাশ করা হয়েছিল। এর মধ্যে সর্বাধিক পরিচিত হ'ল লেনেট আর্কিটেকচার যা জিপ কোড, ডিজিট ইত্যাদি পড়তে ব্যবহৃত হত architect
    • AlexNet । কম্পিউটার ভিউজে কনভলিউশনাল নেটওয়ার্কগুলিকে জনপ্রিয় করার প্রথম কাজটি ছিল অ্যালেক্সট নেট , অ্যালেক্স ক্রিজেভস্কি , ইলিয়া সুটস্কিভার এবং জিওফ হিন্টন দ্বারা বিকাশিত। অ্যালেক্সনেট ২০১২ সালে ইমেজনেট আইএলএসভিআরসি চ্যালেঞ্জের কাছে জমা দেওয়া হয়েছিল এবং দ্বিতীয় রানার- আপকে উল্লেখযোগ্যভাবে ছাড়িয়ে যায় (২%% ত্রুটির সাথে রানার-আপের তুলনায় ১%% শীর্ষে ত্রুটি)। নেটওয়ার্কের লেনেটের সাথে খুব অনুরূপ একটি স্থাপত্য ছিল, তবে এটি গভীর, বৃহত্তর এবং বৈশিষ্ট্যযুক্ত কনভলিউশনাল স্তরগুলি একে অপরের শীর্ষে সজ্জিত ছিল (পূর্বে এটি কেবল একটি সিওএনভি স্তর সর্বদা তত্ক্ষণাত একটি পিওএল স্তর দ্বারা অনুসরণ করা সাধারণ ছিল)।
    • জেডএফ নেট । আইএলএসভিআরসি 2013 এর বিজয়ী ম্যাথিউ জেইলার এবং রব ফার্গাসের কাছ থেকে একটি কনভ্যুশনাল নেটওয়ার্ক ছিল। এটি জেডএফনেট (জেলার এবং ফার্গাস নেটের সংক্ষিপ্ত) হিসাবে পরিচিতি লাভ করে । আর্কিটেকচার হাইপারপ্যারামিটারগুলি, বিশেষত মাঝের কনজুলেশনাল স্তরগুলির আকারকে প্রসারিত করে এবং প্রথম স্তরের স্ট্রাইড এবং ফিল্টার আকারকে আরও ছোট করে এটি অ্যালেক্সনেটের উন্নতি হয়েছিল।
    • গুগলনেট । ILSVRC 2014 বিজয়ী Szegedy এট আল থেকে একটি কনভ্যুশনাল নেটওয়ার্ক ছিল । গুগল থেকে এর প্রধান অবদান ছিল একটি ইনসেপশন মডিউলটির বিকাশ যা নাটকীয়ভাবে নেটওয়ার্কের পরামিতিগুলির সংখ্যা হ্রাস করেছে (M এম, অ্যালেক্সনেটের সাথে M০ এম এর তুলনায়)। অতিরিক্তভাবে, এই কাগজটি কনভনেটের শীর্ষে সম্পূর্ণ সংযুক্ত স্তরগুলির পরিবর্তে অ্যাভারেজ পুলিং ব্যবহার করে, প্রচুর পরিমাণে প্যারামিটারগুলি মুছে ফেলে যা এতে তেমন গুরুত্বপূর্ণ মনে হয় না। গুগলনেটের বেশ কয়েকটি ফলোআপ সংস্করণ রয়েছে, অতি সম্প্রতি ইনসেপশন-ভি 4 ।
    • ভিজিজি নেট । আইএলএসভিআরসি ২০১৪-তে রানার-আপ হলেন ক্যারেন সিমোনিয়ান এবং অ্যান্ড্রু জিসারম্যানের নেটওয়ার্ক যা ভিজিজি নেট হিসাবে পরিচিতি লাভ করেছিল । এর মূল অবদানটি দেখানোতে ছিল যে ভাল কার্য সম্পাদনের জন্য নেটওয়ার্কের গভীরতা একটি গুরুত্বপূর্ণ উপাদান। তাদের চূড়ান্ত সেরা নেটওয়ার্কে 16 টি সিওএনভি / এফসি স্তর রয়েছে এবং আকর্ষণীয়ভাবে, একটি অত্যন্ত সমজাতীয় স্থাপত্য বৈশিষ্ট্য রয়েছে যা কেবল 3x3 কনভোলিউশনগুলি এবং প্রথম থেকে শেষ পর্যন্ত 2x2 পুলিং করে। তাদের পূর্বনির্ধারিত মডেলক্যাফেতে প্লাগ এবং খেলার ব্যবহারের জন্য উপলব্ধ। VGGNet এর একটি খারাপ দিক এটি মূল্যায়ন করা আরও ব্যয়বহুল এবং আরও অনেক বেশি মেমরি এবং প্যারামিটার (140M) ব্যবহার করে M এই প্যারামিটারগুলির বেশিরভাগই প্রথম সম্পূর্ণ সংযুক্ত স্তরে থাকে এবং এটি দেখা গেছে যে এই এফসি স্তরগুলি কোনও পারফরম্যান্স ডাউনগ্রেড ছাড়াই সরানো যেতে পারে, প্রয়োজনীয় পরামিতির সংখ্যা উল্লেখযোগ্যভাবে হ্রাস করে।
    • ResNet । কেইমিং হি এট আল দ্বারা তৈরি রেসিডুয়াল নেটওয়ার্ক । আইএলএসভিআরসি 2015 এর বিজয়ী ছিলেন special এতে বিশেষ স্কিপ সংযোগ এবং ব্যাচের সাধারণকরণের একটি ভারী ব্যবহার রয়েছে । নেটওয়ার্কের শেষে আর্কিটেকচারটি সম্পূর্ণ সংযুক্ত স্তরগুলি হারিয়েছে। পাঠককেও কাইমিংয়ের উপস্থাপনা ( ভিডিও) বলা হয়স্লাইড ) এবং কিছু সাম্প্রতিক পরীক্ষা-নিরীক্ষা যা টর্চের এই নেটওয়ার্কগুলি পুনরুত্পাদন করে। রেসনেটগুলি বর্তমানে আর্ট কনভলিউশনাল নিউরাল নেটওয়ার্কের মডেলগুলির বেশিরভাগ স্থানে রয়েছে এবং অনুশীলনে কনভনেটগুলি ব্যবহারের জন্য এটি ডিফল্ট পছন্দ (10 মে, 2016 হিসাবে)। বিশেষত, আরও সাম্প্রতিক ক্রিয়াকলাপগুলিও দেখুন যা কাইমিং হিজ এট আল থেকে মূল আর্কিটেকচারটিকে ঝাঁকিয়ে দেয়। ডিপ রেসিডুয়াল নেটওয়ার্কগুলিতে আইডেন্টিটি ম্যাপিংস (মার্চ 2016 প্রকাশিত)।
    বিস্তারিত ভিজিজি নেট । কেস স্টাডি হিসাবে আরও বিশদে ভিজিজি নেটটি ভাঙ্গতে দেয় । পুরো ভিজিজি নেটটি স্টোন 1 এবং প্যাড 1 সহ 3x3 কনভোলিউশনগুলি সম্পাদনকারী সিওএনভি স্তরগুলি এবং স্ট্রাইড 2 (এবং কোনও প্যাডিং নয়) সহ 2x2 সর্বাধিক পুলিং সঞ্চালনকারী পল স্তরগুলির সমন্বয়ে গঠিত। আমরা প্রসেসিংয়ের প্রতিটি ধাপে উপস্থাপনার আকারটি লিখতে পারি এবং উপস্থাপনের আকার এবং ওজনের মোট সংখ্যা উভয়ই জানতে পারি:
    INPUT: [224x224x3]        memory:  224*224*3=150K   weights: 0
    CONV3-64: [224x224x64]  memory:  224*224*64=3.2M   weights: (3*3*3)*64 = 1,728
    CONV3-64: [224x224x64]  memory:  224*224*64=3.2M   weights: (3*3*64)*64 = 36,864
    POOL2: [112x112x64]  memory:  112*112*64=800K   weights: 0
    CONV3-128: [112x112x128]  memory:  112*112*128=1.6M   weights: (3*3*64)*128 = 73,728
    CONV3-128: [112x112x128]  memory:  112*112*128=1.6M   weights: (3*3*128)*128 = 147,456
    POOL2: [56x56x128]  memory:  56*56*128=400K   weights: 0
    CONV3-256: [56x56x256]  memory:  56*56*256=800K   weights: (3*3*128)*256 = 294,912
    CONV3-256: [56x56x256]  memory:  56*56*256=800K   weights: (3*3*256)*256 = 589,824
    CONV3-256: [56x56x256]  memory:  56*56*256=800K   weights: (3*3*256)*256 = 589,824
    POOL2: [28x28x256]  memory:  28*28*256=200K   weights: 0
    CONV3-512: [28x28x512]  memory:  28*28*512=400K   weights: (3*3*256)*512 = 1,179,648
    CONV3-512: [28x28x512]  memory:  28*28*512=400K   weights: (3*3*512)*512 = 2,359,296
    CONV3-512: [28x28x512]  memory:  28*28*512=400K   weights: (3*3*512)*512 = 2,359,296
    POOL2: [14x14x512]  memory:  14*14*512=100K   weights: 0
    CONV3-512: [14x14x512]  memory:  14*14*512=100K   weights: (3*3*512)*512 = 2,359,296
    CONV3-512: [14x14x512]  memory:  14*14*512=100K   weights: (3*3*512)*512 = 2,359,296
    CONV3-512: [14x14x512]  memory:  14*14*512=100K   weights: (3*3*512)*512 = 2,359,296
    POOL2: [7x7x512]  memory:  7*7*512=25K  weights: 0
    FC: [1x1x4096]  memory:  4096  weights: 7*7*512*4096 = 102,760,448
    FC: [1x1x4096]  memory:  4096  weights: 4096*4096 = 16,777,216
    FC: [1x1x1000]  memory:  1000 weights: 4096*1000 = 4,096,000
    
    TOTAL memory: 24M * 4 bytes ~= 93MB / image (only forward! ~*2 for bwd)
    TOTAL params: 138M parameters
    
    কনভলিউশনাল নেটওয়ার্কগুলির মতো সাধারণ হিসাবে, লক্ষ্য করুন যে বেশিরভাগ মেমরি (এবং গণনার সময়) প্রাথমিক সিএনভি স্তরগুলিতে ব্যবহৃত হয় এবং বেশিরভাগ প্যারামিটারগুলি শেষ এফসি স্তরগুলিতে থাকে। এই বিশেষ ক্ষেত্রে, প্রথম এফসি স্তরটিতে মোট 140 এম এর মধ্যে 100 এম ওজন রয়েছে।

    গণনামূলক বিবেচনা

    কনভনেট আর্কিটেকচার নির্মাণ করার সময় সচেতন হওয়া সবচেয়ে বড় বাধা হ'ল মেমোরির বাধা। অনেকগুলি আধুনিক জিপিইউতে 3/4 / 6GB মেমরির সীমা থাকে, সেরা জিপিইউগুলির সাথে প্রায় 12 গিগাবাইট মেমরি থাকে। ট্র্যাক রাখতে মেমরির তিনটি প্রধান উত্স রয়েছে:
    • অন্তর্বর্তী ভলিউম মাপের থেকে: এই কাঁচা সংখ্যা হয় সক্রিয়করণব্যবস্থা ConvNet প্রতিটি স্তর এ তাদের গ্রেডিয়েন্ট (সমান আকারের), এবং। সাধারণত, বেশিরভাগ অ্যাক্টিভেশনগুলি একটি কনভনেটের পূর্ববর্তী স্তরগুলিতে থাকে (যেমন প্রথম কনভ স্তর)। এগুলি চারপাশে রাখা হয় কারণ এগুলি ব্যাকপ্রোগেশনের জন্য প্রয়োজন, তবে একটি চৌকস বাস্তবায়ন যা কেবল পরীক্ষার সময় কনভনেট চালায় নীতিগতভাবে এটিকে কোনও পরিমাণে হ্রাস করতে পারে কেবলমাত্র কোনও স্তরে বর্তমান সক্রিয়তাগুলি সংরক্ষণ করে এবং নীচের স্তরগুলিতে পূর্ববর্তী ক্রিয়াকলাপগুলি বাদ দিয়ে principle ।
    • প্যারামিটারের আকারগুলি থেকে: এটি এমন নম্বর যা নেটওয়ার্ক প্যারামিটারগুলি ধারণ করে , ব্যাকপ্রোপেশন চলাকালীন তাদের গ্রেডিয়েন্টস এবং অপ্টিমাইজেশন গতিবেগ, অ্যাডগ্রাড বা আরএমএসপ্রপ ব্যবহার করে থাকলে সাধারণত একটি ধাপ ক্যাশে থাকে। অতএব, প্যারামিটার ভেক্টরকে একা রাখার জন্য মেমরিটি সাধারণত কমপক্ষে 3 বা ততোধিক গুণকের দ্বারা গুণিত করতে হবে।
    • প্রতিটি কনভনেট বাস্তবায়নের জন্য বিবিধ মেমরি বজায় রাখতে হয় , যেমন চিত্রের ডেটা ব্যাচগুলি, সম্ভবত তাদের সংযোজনিত সংস্করণ ইত্যাদি maintain
    একবারে মোট মানগুলির (অ্যাক্টিভেশন, গ্রেডিয়েন্টস এবং বিবিধ জন্য) মোটামুটি অনুমান করার পরে, নম্বরটি জিবি আকারে রূপান্তর করা উচিত। মানগুলির সংখ্যাটি ধরুন, বাইটের কাঁচা সংখ্যা পেতে 4 দিয়ে গুণ করুন (যেহেতু প্রতিটি ভাসমান বিন্দু 4 বাইট, বা ডাবল যথার্থতার জন্য 8 দ্বারা 8), এবং তারপরে কেবিতে মেমরির পরিমাণ পেতে 1024 একাধিকবার বিভক্ত করুন, এমবি, এবং অবশেষে জিবি। যদি আপনার নেটওয়ার্কটি ফিট না করে তবে ব্যাচের আকার হ্রাস করা "এটিকে ফিট করে তুলতে" একটি প্রচলিত হিউরিস্টিক, যেহেতু বেশিরভাগ স্মৃতি সাধারণত ক্রিয়াকলাপ দ্বারা গ্রাস করা হয়।
  • 0 comments:

    Post a Comment

    New Research

    Attention Mechanism Based Multi Feature Fusion Forest for Hyperspectral Image Classification.

    CBS-GAN: A Band Selection Based Generative Adversarial Net for Hyperspectral Sample Generation.

    Multi-feature Fusion based Deep Forest for Hyperspectral Image Classification.

    ADDRESS

    388 Lumo Rd, Hongshan, Wuhan, Hubei, China

    EMAIL

    contact-m.zamanb@yahoo.com
    mostofa.zaman@cug.edu.cn

    TELEPHONE

    #
    #

    MOBILE

    +8615527370302,
    +8807171546477