Chapter 25 of 28
Short, long, conceptual, and numerical practice problems
নিচে দেওয়া অনুশীলনমূলক প্রশ্নগুলো হুবহু একটি বাস্তব পরীক্ষার প্রশ্নপত্রের কাঠামোতে সাজানো হয়েছে: ২-৩ মার্কসের সংক্ষিপ্ত বিবরণমূলক প্রশ্ন, বড় বর্ণনামূলক প্রশ্ন (যার জন্য একটি কাঠামোগত উত্তরের প্রয়োজন), গভীর বোঝার সক্ষমতা যাচাইকারী ধারণাভিত্তিক প্রশ্ন, গাণিতিক ডেরিভেশন এবং নিজে হাতে করার উপযোগী গাণিতিক সমস্যা। প্রতিটি প্রশ্নের নিচে একটি মানসম্মত উত্তর লেখার চমৎকার গাইড দেওয়া হয়েছে — এবং গাণিতিক প্রশ্নগুলোর জন্য ধাপে ধাপে পুরো সমাধান ও পাটিগণিত স্পষ্ট করে দেখানো হয়েছে।
আপনার রিভিশনের সময়কে এভাবে ভাগ করতে পারেন: প্রায় ৪০% সময় সূত্র ও গাণিতিক অনুশীলনে ব্যয় করুন, ৩০% সময় বিভিন্ন আর্কিটেকচার ও মডেলের উপাদানের ধারণা তৈরিতে এবং বাকি ৩০% সময় অন্যান্য সাধারণ প্রশ্ন ও তুলনামূলক আলোচনায়। অধিকাংশ CNN পরীক্ষার প্রশ্নপত্রের ওয়েটেজ সাধারণত এই অনুপাতই অনুসরণ করে।
S1. Convolutional Neural Network-এর সংজ্ঞা দিন।
উত্তর: CNN হলো একটি ডিপ লার্নিং আর্কিটেকচার, যা গ্রিড-গঠনের ডেটার (সবচেয়ে বেশি ব্যবহৃত হয় ছবির ক্ষেত্রে) জন্য তৈরি — এটি Convolution ব্যবহার করে, অর্থাৎ ছোট ছোট শেখার-যোগ্য ফিল্টার ইনপুটের উপর দিয়ে স্লাইড করিয়ে স্থানীয় প্যাটার্ন শনাক্ত করে, এবং একই সাথে সব স্থানিক অবস্থানে ওয়েট শেয়ার করে — ফলে একটি ফুললি কানেক্টেড নেটওয়ার্কের তুলনায় প্যারামিটারের সংখ্যা অনেক কমে যায়।
S2. Kernel এবং feature map-এর মধ্যে পার্থক্য কী?
উত্তর: Kernel (বা ফিল্টার) হলো শেখার-যোগ্য ওয়েটের একটি ছোট ম্যাট্রিক্স, যা প্যাটার্ন শনাক্তের কাজ করে। Feature map হলো সেই আউটপুট, যা ইনপুটের উপর দিয়ে ওই kernel-কে convolve করার পর পাওয়া যায় — এটি দেখায় যে kernel-টি যে প্যাটার্ন শনাক্ত করে, সেটি ইনপুটের কোথায় পাওয়া গেছে।
S3. Stride এবং padding-এর সংজ্ঞা দিন।
উত্তর: Stride হলো ইনপুটের উপর দিয়ে স্লাইড করার সময় প্রতিটি ধাপে kernel কতটি অবস্থান সরে যায়, তার সংখ্যা। Padding হলো ইনপুটের চারপাশে convolution করার আগে যোগ করা অতিরিক্ত সীমানা মান — সাধারণত শূন্য — যা আউটপুটের আকার নিয়ন্ত্রণ করতে এবং প্রান্তের কাছাকাছি তথ্য সংরক্ষণ করতে ব্যবহৃত হয়।
S4. একটি activation function-এর উদ্দেশ্য কী?
উত্তর: Activation function একটি লেয়ারের ওয়েটেড সামের পর ননলিনিয়ারিটি যোগ করে। এটি না থাকলে, যত সংখ্যক লেয়ারই স্ট্যাক করা হোক না কেন, গাণিতিকভাবে তা একটিমাত্র লিনিয়ার ট্রান্সফরমেশনে পরিণত হয়ে যাবে, নেটওয়ার্ক যতই গভীর হোক — ননলিনিয়ারিটিই নেটওয়ার্ককে জটিল, নন-লিনিয়ার ডিসিশন বাউন্ডারি প্রতিনিধিত্ব করার ক্ষমতা দেয়।
S5. যেকোনো তিনটি জনপ্রিয় CNN আর্কিটেকচারের নাম বলুন।
উত্তর: নিচের যেকোনো তিনটি: LeNet, AlexNet, VGGNet, GoogLeNet (Inception), ResNet, DenseNet, MobileNet, EfficientNet।
L1. একটি লেবেলযুক্ত ডায়াগ্রামের সাহায্যে CNN-এর সম্পূর্ণ আর্কিটেকচার ব্যাখ্যা করুন, প্রতিটি লেয়ারের ভূমিকা বর্ণনা করে।
একটি ভালো উত্তরে সাধারণ পাইপলাইনটি ধাপে ধাপে বর্ণনা করা হয়: একটি ইনপুট ছবি প্রথমে একাধিক convolution লেয়ারের স্তুপে প্রবেশ করে (প্রতিটির পরে একটি activation, সাধারণত ReLU থাকে), যা ক্রমশ আরও বিমূর্ত ফিচার বের করে — প্রথম দিকের লেয়ারে edge ও রং, মাঝের লেয়ারে texture ও অংশবিশেষ, শেষের লেয়ারে সম্পূর্ণ object। Feature map-গুলোকে down-sample করতে এবং স্থানীয় translation invariance যোগ করতে মাঝে মাঝে pooling লেয়ার বসানো হয়। পর্যাপ্ত convolution+pooling ব্লকের পর একটি Flatten লেয়ার শেষ feature map-গুলোকে একটি 1D ভেক্টরে রূপান্তর করে, যা এক বা একাধিক fully connected লেয়ারে প্রবেশ করে, যেখানে বের করা ফিচারগুলো একত্র করা হয়, এবং শেষে একটি output লেয়ার (মাল্টি-ক্লাস classification-এর জন্য Softmax) ক্লাস probability তৈরি করে। লেবেলযুক্ত ডায়াগ্রামে বাম থেকে ডান দিকে এই প্রবাহ দেখানো উচিত, যেখানে স্থানিক মাত্রা ক্রমশ ছোট হয় এবং চ্যানেলের গভীরতা বাড়তে থাকে।
L2. একটি convolution লেয়ারের মধ্য দিয়ে backpropagation প্রতিপাদন ও ব্যাখ্যা করুন।
মূল ধারণাটি হলো convolution নিজেই একটি লিনিয়ার অপারেশন (ওয়েটেড প্রোডাক্টের যোগফল), তাই একটি fully connected লেয়ারে ব্যবহৃত একই chain rule এখানেও প্রযোজ্য — শুধু প্রতিটি ফিল্টার ও অবস্থানের জন্য আলাদাভাবে প্রয়োগ করা হয়। লেয়ারের output feature map-এর সাপেক্ষে loss-এর গ্রেডিয়েন্ট জানা থাকলে, প্রতিটি kernel weight-এর সাপেক্ষে গ্রেডিয়েন্ট পাওয়া যায় ইনপুটকে সেই output গ্রেডিয়েন্টের সাথে convolve করে, এবং লেয়ারের ইনপুটের সাপেক্ষে গ্রেডিয়েন্ট পাওয়া যায় output গ্রেডিয়েন্টকে kernel-এর ১৮০ ডিগ্রি ঘোরানো সংস্করণের সাথে convolve করে (একটি "full" convolution)। একটি ভালো উত্তরে উভয় সূত্র উল্লেখ করতে হয়, কেন এই flip আসে তা ব্যাখ্যা করতে হয় (এটি প্রতিটি output গ্রেডিয়েন্টকে যথাযথভাবে প্রতিটি অবদান রাখা ইনপুট অবস্থানে ফিরিয়ে দেয়), এবং উল্লেখ করতে হয় যে যেহেতু ওয়েট স্থানিকভাবে শেয়ার করা হয়, তাই weight গ্রেডিয়েন্ট ফিল্টার প্রয়োগ করা প্রতিটি অবস্থানের অবদান যোগ করে।
L3. অন্তত পাঁচটি জনপ্রিয় CNN আর্কিটেকচার (LeNet থেকে EfficientNet) তুলনা ও পার্থক্য নির্দেশ করুন।
একটি ভালো উত্তরে প্রতিটির মূল ধারণা তুলে ধরা হয়: LeNet (1998) ছোট গ্রেস্কেল ডিজিট ছবিতে মূল conv+pool+FC প্যাটার্ন প্রতিষ্ঠা করে। AlexNet (2012) সেই প্যাটার্নকে ReLU ও Dropout দিয়ে বড় আকারে নিয়ে যায় এবং প্রমাণ করে যে গভীর CNN ImageNet স্কেলে জিততে পারে। VGGNet শুধুমাত্র ছোট, একই আকারের 3×3 ফিল্টার বারবার স্ট্যাক করে গভীরতা আরও বাড়ায়। GoogLeNet Inception মডিউল প্রবর্তন করে, যা প্রতিটি লেয়ারে একাধিক ফিল্টার আকার সমান্তরালে চালায় এবং সস্তা bottleneck হিসেবে 1×1 convolution ব্যবহার করে। ResNet skip connection প্রবর্তন করে, যা vanishing gradient সমস্যা সমাধান করে ১০০ লেয়ারেরও বেশি গভীর নেটওয়ার্ক প্রশিক্ষণ সম্ভব করে। EfficientNet এর পরিবর্তে দক্ষতার সাথে স্কেলিং-এ মনোযোগ দেয়, neural architecture search ব্যবহার করে একটি শক্তিশালী বেস নেটওয়ার্ক খুঁজে বের করে এবং তারপর গভীরতা, প্রস্থ ও রেজোলিউশনকে একটি নির্দিষ্ট অনুপাতে একসাথে স্কেল করে। তুলনায় এই মূল ধারাটি তুলে ধরা উচিত: প্রতিটি আর্কিটেকচার তার পূর্ববর্তী আর্কিটেকচারের একটি নির্দিষ্ট সীমাবদ্ধতা সমাধান করেছে।
L4. প্রিপ্রসেসিং ও অগমেন্টেশনসহ, raw ছবি থেকে চূড়ান্ত পূর্বাভাস পর্যন্ত একটি CNN-এর প্রশিক্ষণ পাইপলাইন ব্যাখ্যা করুন।
যা অন্তর্ভুক্ত করা উচিত: (১) raw ছবি লোড করা এবং একটি সামঞ্জস্যপূর্ণ ইনপুট আকারে resize করা, (২) প্রিপ্রসেসিং — পিক্সেল মান normalize করা, সাধারণত শুধুমাত্র training সেট থেকে গণনা করা পরিসংখ্যান ব্যবহার করে যাতে data leakage না হয়, (৩) শুধুমাত্র প্রশিক্ষণের সময় প্রয়োগ করা data augmentation (random flip, rotation, crop, color jitter) — কার্যকর প্রশিক্ষণ বৈচিত্র্য কৃত্রিমভাবে বাড়ানোর জন্য, (৪) নেটওয়ার্কের মধ্য দিয়ে forward pass চালিয়ে logits তৈরি করা, (৫) প্রকৃত লেবেলের বিপরীতে loss গণনা করা (classification-এর জন্য সাধারণত Cross-Entropy), (৬) প্রতিটি লেয়ারের মধ্য দিয়ে loss গ্রেডিয়েন্ট backpropagate করা, (৭) একটি optimizer (SGD, Adam ইত্যাদি) সেই গ্রেডিয়েন্টের ভিত্তিতে ওয়েট আপডেট করা, এবং (৮) একটি আলাদা রাখা validation সেট পর্যবেক্ষণ করতে করতে বহু epoch ধরে পুনরাবৃত্তি করা, যেখানে untouched test সেট শেষে একটি নিরপেক্ষ পারফরম্যান্স মূল্যায়নের জন্য সংরক্ষিত থাকে।
L5. CNN-এর সুবিধা ও সীমাবদ্ধতা আলোচনা করুন, বাস্তব-জীবনের ব্যর্থতার উদাহরণসহ।
সুবিধা: weight sharing-এর মাধ্যমে প্যারামিটার দক্ষতা, হাতে তৈরি ফিচার ছাড়াই স্থানিক ডেটাতে শক্তিশালী পারফরম্যান্স, এবং একটি পরিপক্ব, ভালোভাবে অপ্টিমাইজড সফটওয়্যার/হার্ডওয়্যার ইকোসিস্টেম। সীমাবদ্ধতা: CNN শুধুমাত্র আনুমানিকভাবে translation invariant, স্বাভাবিকভাবে rotation বা scale invariant নয়, তাই ঘোরানো বা অস্বাভাবিক আকারের ইনপুটে এটি ব্যর্থ হতে পারে, যদি না সেই ধরনের ক্ষেত্র কভার করে augmentation দিয়ে প্রশিক্ষণ দেওয়া হয়। এগুলো adversarial perturbation দ্বারাও প্রতারিত হতে পারে — এত ছোট, মানুষের চোখে অদৃশ্য পিক্সেল পরিবর্তন, যা একটি আত্মবিশ্বাসী সঠিক পূর্বাভাসকে আত্মবিশ্বাসী ভুল পূর্বাভাসে পরিণত করে দেয় — এবং এগুলো তাদের প্রশিক্ষণ ডেটায় থাকা পক্ষপাত উত্তরাধিকারসূত্রে পেতে ও বাড়িয়ে তুলতে পারে (যেমন, একটি face-recognition ডেটাসেটে কম প্রতিনিধিত্বকারী জনগোষ্ঠীর ক্ষেত্রে কম পারফরম্যান্স দেখানো)। একটি ভালো উত্তরে প্রতিটি বিভাগে অন্তত একটি সুনির্দিষ্ট উদাহরণ উল্লেখ করা উচিত।
C1. একটি ছবিকে নিউরাল নেটওয়ার্কে দেওয়ার আগে flatten করলে কেন তথ্যের ক্ষয় হয়?
উত্তর: Flattening একটি 2D (বা 3D) গ্রিডকে একটি 1D তালিকায় রূপান্তর করে, যা "কোন পিক্সেলগুলো প্রতিবেশী" সেই ধারণাটিকে ধ্বংস করে দেয়। ছবিতে পাশাপাশি থাকা দুটি পিক্সেল flatten করা ভেক্টরে অনেক দূরে চলে যেতে পারে, এবং সেই ভেক্টরের উপর প্রয়োগ করা একটি সাধারণ MLP-এর কোনো উপায় নেই জানার যে তারা কখনো স্থানিকভাবে সম্পর্কিত ছিল — এটিকে শুরু থেকে স্থানিক গঠন পুনরায় শিখতে হয়, অদক্ষভাবে, বিপুল সংখ্যক ওয়েট ব্যবহার করে, যেখানে convolution-এর local receptive field সেই গঠনটি স্বাভাবিকভাবেই প্রদান করে।
C2. Residual connection কীভাবে vanishing gradient সমস্যা সমাধান করে ব্যাখ্যা করুন।
উত্তর: একটি সাধারণ গভীর স্তুপে, প্রথম দিকের লেয়ারে পৌঁছানো গ্রেডিয়েন্ট হলো chain rule থেকে আসা অনেকগুলো প্রতি-লেয়ার ফ্যাক্টরের গুণফল, এবং সেই ফ্যাক্টরগুলো যদি ধারাবাহিকভাবে ১-এর কম হয়, তাহলে গুণফল শূন্যের দিকে ছোট হতে থাকে। একটি residual ব্লকের আউটপুট হলো , তাই differentiate করলে, -এর সাপেক্ষে গ্রেডিয়েন্টে সেই যোগ করা identity path থেকে ঠিক ১-এর একটি টার্ম থাকে, ব্লকের নিজস্ব ট্রান্সফরমেশনের অবদানের উপরে। এটি নেটওয়ার্কের মধ্য দিয়ে সরাসরি একটি গ্রেডিয়েন্ট "হাইওয়ে" নিশ্চিত করে, যা গুণনীয়ভাবে ছোট হয়ে যায় না — ফলে অত্যন্ত গভীর ResNet প্রশিক্ষিত হতে পারে, যেখানে সমান গভীরতার একটি সাধারণ নেটওয়ার্ক আটকে যেত।
C3. একটি Vision Transformer সাধারণত একটি CNN-এর তুলনায় বেশি প্রশিক্ষণ ডেটার প্রয়োজন হয় কেন?
উত্তর: একটি CNN-এর convolutional গঠন প্রশিক্ষণ শুরুর আগেই ছবি সম্পর্কে কিছু উপযোগী অনুমান হার্ড-কোড করে রাখে — যে কাছাকাছি পিক্সেলগুলো সম্পর্কিত, এবং একটি শেখা প্যাটার্ন যেখানেই দেখা যাক না কেন তা শনাক্ত করা উচিত। Vision Transformer-এর self-attention-এ এসবের প্রায় কিছুই আগে থেকে নেই; এটিকে কোন patch কোনটির সাথে সম্পর্কিত তা সম্পূর্ণভাবে ডেটা থেকে আবিষ্কার করতে হয়। শুরু থেকে স্থানিক সম্পর্ক শেখাতে অনেক বেশি উদাহরণ লাগে, ইতিমধ্যে অনুমান করা সম্পর্ককে পরিমার্জনার তুলনায় — এই কারণেই ViT-গুলোর সাধারণত অনেক বড় লেবেলযুক্ত ডেটাসেট বা বড় মাপের pretraining প্রয়োজন হয়, CNN-এর নির্ভুলতার সমতুল্য হওয়ার জন্য।
C4. Batch Normalization কেন উচ্চতর learning rate ব্যবহারের সুযোগ দেয়, তা ব্যাখ্যা করুন।
উত্তর: Normalization ছাড়া, প্রশিক্ষণের সময় প্রতিটি পূর্ববর্তী লেয়ারের ওয়েট আপডেট হওয়ার সাথে সাথে একটি লেয়ারের ইনপুট বিতরণ ক্রমাগত পরিবর্তিত হতে থাকে — একটি চলমান লক্ষ্য, যা বড় আপডেটকে অস্থির করে তুলতে পারে, কারণ একটি নির্দিষ্ট ইনপুট বিতরণের জন্য টিউন করা ওয়েট আপডেট বিতরণ পরিবর্তিত হলে অনেক বেশি overshoot করতে পারে। Batch Normalization প্রশিক্ষণ জুড়ে প্রতিটি লেয়ারের ইনপুটকে একটি সামঞ্জস্যপূর্ণ, স্থিতিশীল পরিসরে রাখে, যা লোকালি loss surface-কে আরও ভালো আচরণে রাখে এবং বড় ধাপগুলোর অনেক খারাপ অঞ্চলে overshoot করার সম্ভাবনা কমায় — ফলে প্রশিক্ষণ নিরাপদে উচ্চতর learning rate ব্যবহার করতে পারে এবং দ্রুত converge করতে পারে।
M1. একটি convolution অপারেশনের আউটপুট আকারের সূত্র প্রতিপাদন করুন।
উত্তর: স্থানিক আকার -এর একটি ইনপুটের জন্য, প্রতি পাশে যোগ করা padding , kernel আকার , এবং stride -এর ক্ষেত্রে: padding যোগ করা ইনপুটের আকার হয় । যেকোনো স্থানে kernel-এর জন্য টি পরপর অবস্থান প্রয়োজন, যার ফলে kernel-এর শুরুর বিন্দু স্লাইড করতে পারে এমন টি অবস্থান বাকি থাকে; stride দিয়ে ভাগ করলে অতিরিক্ত ধাপের সংখ্যা পাওয়া যায়, এবং প্রাথমিক অবস্থানের জন্য ১ যোগ করা হয়:
M2. Softmax logits-এর সাপেক্ষে Cross-Entropy লসের গ্রেডিয়েন্ট প্রতিপাদন করুন।
উত্তর: logits , Softmax আউটপুট , এবং one-hot প্রকৃত লেবেল -এর জন্য, Cross-Entropy লস হলো । Softmax-এর মধ্য দিয়ে differentiate করলে (এটিকে এবং ক্ষেত্রে ভাগ করে একত্র করলে) একটি লক্ষণীয়ভাবে পরিষ্কার ফলাফল পাওয়া যায়: ঠিক এই কারণেই Softmax ও Cross-Entropy একসাথে ব্যবহার করা হয়: একত্রিত গ্রেডিয়েন্ট শুধু "পূর্বাভাসকৃত probability বিয়োগ প্রকৃত লেবেল," যেখানে বহন করার মতো অতিরিক্ত কোনো derivative টার্ম নেই।
M3. দেখান যে Max Pooling-এর backward pass কেবল সর্বোচ্চ মানের উপাদানেই গ্রেডিয়েন্ট পাঠায়।
উত্তর: Forward pass একটি উইন্ডোর উপর গণনা করে। একটি max ফাংশনের partial derivative, যেকোনো ইনপুটের সাপেক্ষে যা সর্বোচ্চ নয়, তা 0 হয়, কারণ একটি সর্বোচ্চ-নয় উপাদানের অতি ক্ষুদ্র পরিবর্তন max-কে একটুও পরিবর্তন করে না। সর্বোচ্চ মানের উপাদানের সাপেক্ষে partial derivative হয় 1, কারণ আউটপুট সেটির সাথে হুবহু একই সাথে পরিবর্তিত হয়। তাই chain rule অনুযায়ী, ইনকামিং গ্রেডিয়েন্ট -কে 1 দিয়ে গুণ করে সর্বোচ্চ মানের উপাদানের অবস্থানে পাঠানো হয়, এবং উইন্ডোর বাকি প্রতিটি অবস্থানে 0 দিয়ে গুণ করা হয় (অর্থাৎ পাঠানো হয় না)।
M4. Adam optimizer-এর update rule প্রতিপাদন করুন, প্রতিটি টার্ম ব্যাখ্যা করে।
উত্তর: Adam প্রতিটি ধাপ -এ গ্রেডিয়েন্ট -এর দুটি running average বজায় রাখে: একটি first-moment (গড়) হিসাব , এবং একটি second-moment (uncentered variance) হিসাব । যেহেতু উভয়েই শূন্য থেকে শুরু হয়, প্রশিক্ষণের শুরুতে এগুলো শূন্যের দিকে বায়াসড থাকে, তাই Adam bias correction প্রয়োগ করে: এবং । চূড়ান্ত প্যারামিটার আপডেট হলো: এখানে হলো learning rate এবং একটি ছোট ধ্রুবক, যা শূন্য দিয়ে ভাগ হওয়া প্রতিরোধ করে। আপডেটের দিক ও momentum-এর মতো মসৃণতা প্রদান করে; দিয়ে ভাগ করলে বড় গ্রেডিয়েন্টের ইতিহাসযুক্ত প্যারামিটারের জন্য ধাপ ছোট হয়ে যায়, এবং ছোট, অনিয়মিত গ্রেডিয়েন্টযুক্ত প্যারামিটারের জন্য বড় হয়।
N1. একটি 32×32×3 আকারের ইনপুট, 5×5 আকারের 16টি ফিল্টারযুক্ত একটি convolution লেয়ার, stride 1, padding 2 — আউটপুট আকার ও প্যারামিটারের সংখ্যা বের করুন।
উত্তর: আউটপুটের স্থানিক আকার, ব্যবহার করে, -এর জন্য: তাই আউটপুট আকার হলো 32×32×16 (একই স্থানিক আকার, কারণ padding 2, stride 1-এ 5×5 kernel-এর জন্য ঠিক ক্ষতিপূরণ দেয়)। প্যারামিটার: প্রতিটি ফিল্টার ইনপুটের সম্পূর্ণ গভীরতা 3 জুড়ে বিস্তৃত, তাই একটি ফিল্টারে থাকে টি প্যারামিটার। 16টি ফিল্টার সহ: টি প্যারামিটার।
N2. একটি 6×6 ইনপুটে 2×2 উইন্ডো ও stride 2 সহ Max Pooling প্রয়োগ করুন। ফলস্বরূপ 3×3 আউটপুট দেখান।
উত্তর: নমুনা ইনপুট ম্যাট্রিক্সটি নিন:
একটি নন-ওভারল্যাপিং 2×2 উইন্ডো (stride 2) এর উপর দিয়ে স্লাইড করিয়ে প্রতিটির সর্বোচ্চ মান নিলে: উপরের-বাম উইন্ডো দেয় 6, পরের উইন্ডো দেয় 8, এবং একইভাবে বাকি নয়টি উইন্ডোর জন্যও। ফলস্বরূপ 3×3 আউটপুট হলো:
N3. logits z = [2.0, 1.0, 0.1] দেওয়া থাকলে, Softmax probability এবং প্রকৃত ক্লাস index 0 হলে Cross-Entropy লস গণনা করুন।
উত্তর: Softmax প্রথমে প্রতিটি logit-কে exponentiate করে: , , , যোগফল । সেই যোগফল দিয়ে প্রতিটিকে ভাগ করলে: যেহেতু প্রকৃত ক্লাস হলো index 0, তাই Cross-Entropy লস হলো শুধু সেই ক্লাসের পূর্বাভাসকৃত probability-এর নেগেটিভ লগ:
N4. একটি 8×8 ইনপুট, একটি 3×3 kernel, stride 2, কোনো padding নেই — আউটপুট আকার গণনা করুন।
উত্তর: ব্যবহার করে, -এর জন্য: আউটপুট আকার হলো 3×3।
N5. একটি fully connected লেয়ার, যার ইনপুট আকার 4096 এবং আউটপুট আকার 1000, তার মোট শেখার-যোগ্য প্যারামিটারের সংখ্যা (bias সহ) গণনা করুন।
উত্তর: একটি fully connected লেয়ারে প্রতিটি (ইনপুট, আউটপুট) জোড়ার জন্য একটি করে ওয়েট থাকে, এবং প্রতিটি আউটপুট নিউরনের জন্য একটি করে bias: