কনভোলিউশনাল নিউরাল নেটওয়ার্কের সাথে পরিচয়
ইমেজ শ্রেণীবিভাগের জন্য মডেল তৈরিতে একটি যুগান্তকারী আবিষ্কারের সাথে এসেছে যে একটি কনভোল্যুশনাল নিউরাল নেটওয়ার্ক (সিএনএন) ক্রমান্বয়ে চিত্র বিষয়বস্তুর উচ্চ- এবং উচ্চ-স্তরের উপস্থাপনা বের করতে ব্যবহার করা যেতে পারে। টেক্সচার এবং আকারের মতো বৈশিষ্ট্যগুলি প্রাপ্ত করার জন্য ডেটা প্রিপ্রসেস করার পরিবর্তে, একটি CNN ইনপুট হিসাবে চিত্রের কাঁচা পিক্সেল ডেটা নেয় এবং এই বৈশিষ্ট্যগুলি কীভাবে বের করতে হয় "শিখে" এবং শেষ পর্যন্ত তারা কোন বস্তু গঠন করে তা অনুমান করে।
শুরু করার জন্য, CNN একটি ইনপুট বৈশিষ্ট্য মানচিত্র পায়: একটি ত্রি-মাত্রিক ম্যাট্রিক্স যেখানে প্রথম দুটি মাত্রার আকার পিক্সেলে চিত্রগুলির দৈর্ঘ্য এবং প্রস্থের সাথে মিলে যায়৷ তৃতীয় মাত্রার আকার 3 (একটি রঙের চিত্রের 3টি চ্যানেলের সাথে সম্পর্কিত: লাল, সবুজ এবং নীল)। সিএনএন মডিউলগুলির একটি স্ট্যাক নিয়ে গঠিত, যার প্রতিটি তিনটি অপারেশন করে।
1. আবর্তন
একটি কনভল্যুশন ইনপুট বৈশিষ্ট্য মানচিত্রের টাইলস বের করে এবং নতুন বৈশিষ্ট্যগুলি গণনা করতে, একটি আউটপুট বৈশিষ্ট্য মানচিত্র তৈরি করতে বা সংশ্লেষিত বৈশিষ্ট্য (যা ইনপুট বৈশিষ্ট্য মানচিত্রের চেয়ে আলাদা আকার এবং গভীরতা থাকতে পারে) তৈরি করতে ফিল্টার প্রয়োগ করে। কনভল্যুশন দুটি পরামিতি দ্বারা সংজ্ঞায়িত করা হয়:
- নিষ্কাশিত টাইলগুলির আকার (সাধারণত 3x3 বা 5x5 পিক্সেল)।
- আউটপুট বৈশিষ্ট্য মানচিত্রের গভীরতা , যা প্রয়োগ করা ফিল্টারের সংখ্যার সাথে মিলে যায়।
একটি কনভল্যুশনের সময়, ফিল্টারগুলি (টাইলের আকারের সমান আকারের ম্যাট্রিক্স) কার্যকরভাবে ইনপুট বৈশিষ্ট্য মানচিত্রের গ্রিডের উপর অনুভূমিকভাবে এবং উল্লম্বভাবে স্লাইড করে, এক সময়ে একটি পিক্সেল, প্রতিটি সংশ্লিষ্ট টাইল বের করে (চিত্র 3 দেখুন)।
চিত্র 3. একটি 5x5 ইনপুট বৈশিষ্ট্য মানচিত্রের উপর সঞ্চালিত গভীরতা 1-এর একটি 3x3 আবর্তন, এছাড়াও 1 গভীরতা। 5x5 বৈশিষ্ট্য মানচিত্র থেকে টাইলস বের করার জন্য নয়টি সম্ভাব্য 3x3 অবস্থান রয়েছে, তাই এই আবর্তনটি একটি 3x3 আউটপুট বৈশিষ্ট্য মানচিত্র তৈরি করে।
প্রতিটি ফিল্টার-টাইল জোড়ার জন্য, CNN ফিল্টার ম্যাট্রিক্স এবং টাইল ম্যাট্রিক্সের উপাদান-ভিত্তিক গুণন সম্পাদন করে এবং তারপর একটি একক মান পেতে ফলাফল ম্যাট্রিক্সের সমস্ত উপাদান যোগ করে। প্রতিটি ফিল্টার-টাইল জোড়ার জন্য এই ফলের মানগুলির প্রতিটি তারপর কনভলড ফিচার ম্যাট্রিক্সে আউটপুট হয় (চিত্র 4a এবং 4b দেখুন)।
চিত্র 4a. বাম : একটি 5x5 ইনপুট বৈশিষ্ট্য মানচিত্র (গভীরতা 1)। ডানদিকে : একটি 3x3 আবর্তন (গভীরতা 1)।
চিত্র 4 খ. বাম : 3x3 কনভোলিউশন 5x5 ইনপুট বৈশিষ্ট্য মানচিত্রে সঞ্চালিত হয়। ডান : ফলে আবদ্ধ বৈশিষ্ট্য. আউটপুট বৈশিষ্ট্য মানচিত্রে একটি মান ক্লিক করুন কিভাবে এটি গণনা করা হয়েছে।
প্রশিক্ষণের সময়, সিএনএন ফিল্টার ম্যাট্রিক্সের জন্য সর্বোত্তম মানগুলি "শিখে" যা এটিকে ইনপুট বৈশিষ্ট্য মানচিত্র থেকে অর্থপূর্ণ বৈশিষ্ট্য (টেক্সচার, প্রান্ত, আকার) বের করতে সক্ষম করে। ইনপুটে প্রয়োগ করা ফিল্টারের সংখ্যা (আউটপুট বৈশিষ্ট্য মানচিত্রের গভীরতা) বৃদ্ধির সাথে সাথে CNN যে বৈশিষ্ট্যগুলি বের করতে পারে তার সংখ্যাও বৃদ্ধি পায়। যাইহোক, ট্রেডঅফ হল যে ফিল্টারগুলি সিএনএন দ্বারা ব্যয় করা বেশিরভাগ সংস্থান রচনা করে, তাই আরও ফিল্টার যুক্ত হওয়ার সাথে সাথে প্রশিক্ষণের সময়ও বৃদ্ধি পায়। উপরন্তু, নেটওয়ার্কে যোগ করা প্রতিটি ফিল্টার আগেরটির তুলনায় কম বর্ধিত মান প্রদান করে, তাই প্রকৌশলীরা এমন নেটওয়ার্ক তৈরি করার লক্ষ্য রাখে যা সঠিক চিত্র শ্রেণীবিভাগের জন্য প্রয়োজনীয় বৈশিষ্ট্যগুলি বের করার জন্য প্রয়োজনীয় ন্যূনতম সংখ্যক ফিল্টার ব্যবহার করে।
2. ReLU
প্রতিটি কনভোলিউশন অপারেশনের পরে, সিএনএন মডেলে অরৈখিকতা প্রবর্তন করার জন্য কনভলড বৈশিষ্ট্যে একটি সংশোধনকৃত লিনিয়ার ইউনিট (ReLU) রূপান্তর প্রয়োগ করে। ReLU ফাংশন, \(F(x)=max(0,x)\), x > 0 এর সকল মানের জন্য x প্রদান করে এবং x ≤ 0 এর সকল মানের জন্য 0 প্রদান করে।
3. পুলিং
ReLU-এর পরে একটি পুলিং স্টেপ আসে, যেখানে CNN কনভলড ফিচারের নমুনা দেয় (প্রসেসিং টাইম বাঁচাতে), ফিচার ম্যাপের ডাইমেনশনের সংখ্যা কমিয়ে, এখনও সবচেয়ে গুরুত্বপূর্ণ ফিচার তথ্য সংরক্ষণ করে। এই প্রক্রিয়ার জন্য ব্যবহৃত একটি সাধারণ অ্যালগরিদমকে ম্যাক্স পুলিং বলা হয়।
ম্যাক্স পুলিং কনভোলিউশনের অনুরূপভাবে কাজ করে। আমরা বৈশিষ্ট্য মানচিত্রের উপর স্লাইড করি এবং একটি নির্দিষ্ট আকারের টাইলস বের করি। প্রতিটি টাইলের জন্য, সর্বাধিক মান একটি নতুন বৈশিষ্ট্য মানচিত্রে আউটপুট, এবং অন্যান্য সমস্ত মান বাতিল করা হয়। সর্বাধিক পুলিং অপারেশন দুটি পরামিতি নেয়:
- সর্বোচ্চ-পুলিং ফিল্টারের আকার (সাধারণত 2x2 পিক্সেল)
- স্ট্রাইড : দূরত্ব, পিক্সেলে, প্রতিটি নিষ্কাশিত টাইল আলাদা করে। কনভোল্যুশনের বিপরীতে, যেখানে ফিল্টারগুলি ফিচার ম্যাপ পিক্সেলের উপরে পিক্সেল দ্বারা স্লাইড করে, সর্বাধিক পুলিংয়ে, স্ট্রাইড সেই অবস্থানগুলি নির্ধারণ করে যেখানে প্রতিটি টাইল বের করা হয়। একটি 2x2 ফিল্টারের জন্য, 2 এর একটি স্ট্রাইড নির্দিষ্ট করে যে সর্বোচ্চ পুলিং অপারেশন বৈশিষ্ট্য মানচিত্র থেকে সমস্ত ননওভারল্যাপিং 2x2 টাইলগুলি বের করবে (চিত্র 5 দেখুন)।
চিত্র 5. বাম : সর্বাধিক পুলিং একটি 4x4 বৈশিষ্ট্য মানচিত্রে 2x2 ফিল্টার এবং 2 এর স্ট্রাইড সহ সঞ্চালিত হয়েছে। ডান : সর্বাধিক পুলিং অপারেশনের আউটপুট। লক্ষ্য করুন ফলাফলের বৈশিষ্ট্য মানচিত্রটি এখন 2x2, প্রতিটি টাইল থেকে শুধুমাত্র সর্বাধিক মান সংরক্ষণ করে।
সম্পূর্ণভাবে সংযুক্ত স্তর
একটি কনভোল্যুশনাল নিউরাল নেটওয়ার্কের শেষে এক বা একাধিক সম্পূর্ণভাবে সংযুক্ত স্তর থাকে (যখন দুটি স্তর "সম্পূর্ণভাবে সংযুক্ত" হয়, প্রথম স্তরের প্রতিটি নোড দ্বিতীয় স্তরের প্রতিটি নোডের সাথে সংযুক্ত থাকে)। তাদের কাজ হল কনভল্যুশন দ্বারা নিষ্কাশিত বৈশিষ্ট্যগুলির উপর ভিত্তি করে শ্রেণীবিভাগ করা। সাধারণত, চূড়ান্তভাবে সম্পূর্ণ সংযুক্ত স্তরটিতে একটি সফটম্যাক্স অ্যাক্টিভেশন ফাংশন থাকে, যা মডেলটি ভবিষ্যদ্বাণী করার চেষ্টা করে এমন প্রতিটি শ্রেণিবিন্যাসের লেবেলের জন্য 0 থেকে 1 পর্যন্ত সম্ভাব্যতার মান আউটপুট করে।
চিত্র 6 একটি কনভোল্যুশনাল নিউরাল নেটওয়ার্কের এন্ড-টু-এন্ড কাঠামোকে চিত্রিত করে।
চিত্র 6. এখানে দেখানো CNN বৈশিষ্ট্য নিষ্কাশনের জন্য দুটি কনভোলিউশন মডিউল (কনভোলিউশন + ReLU + পুলিং) এবং শ্রেণীবিভাগের জন্য দুটি সম্পূর্ণভাবে সংযুক্ত স্তর রয়েছে। অন্যান্য CNN-এ বড় বা ছোট সংখ্যক কনভোলিউশনাল মডিউল এবং বৃহত্তর বা কম সম্পূর্ণভাবে সংযুক্ত স্তর থাকতে পারে। ইঞ্জিনিয়াররা প্রায়ই কনফিগারেশনটি বের করার জন্য পরীক্ষা করে যা তাদের মডেলের জন্য সেরা ফলাফল দেয়।