Yeh formula kyun hai? Padded input size H+2p se shuru karo. Filter ki "reach" k subtract karo taaki last valid position mile. Stride s se divide karo ki kitne steps fit hote hain. 1 add karo kyunki positions fencepost-counted hain (agar tum filter ko positions 0, 1, 2 par rakh sakte ho, toh 3 outputs hain, 2 nahi).
Agar ek convolutional layer mein Cout filters hain, toh tum Cout feature maps produce karte ho jo (Cout,Hout,Wout) shape ke 3D tensor ke roop mein stack hote hain. Har channel ek filter ki "raay" hai.
Key insight: Layer L ka ek neuron input ko directly "nahi dekhta." Woh layer L−1 dekhta hai, jisne layer L−2 dekha tha, aur aise aage. Receptive field is chain ko accumulate karta hai.
Scratch se derivation:
Base case: Layer 0 (input) par, R0=1 (ek pixel khud ko dekhta hai).
Layer 1: Stride s1 wala k1×k1 filter input mein k1 consecutive pixels dekhta hai. Center pixel ka receptive field k1 wide hai. Agar stride s1>1 ho, toh adjacent outputs s1 input pixels skip karte hain, lekin pehli layer ke liye receptive field size phir bhi k1 hai: R1=k1.
Layer 2: Layer 1 mein har pixel ka R1=k1 hai. Layer 2 ka k2×k2 filter layer 1 mein k2 pixels span karta hai. Un layer-1 pixels mein se har ek k1 input pixels cover karta hai, aur layer-1 ne stride s1 use kiya. Toh layer-2 receptive field hai:
R2=R1+(k2−1)⋅s1=k1+(k2−1)s1(k2−1) center se pare "extra" layer-1 pixels hain, s1 se input space mein scale kiye gaye.
General: Layer l par, extra coverage layer-(l−1) space mein (kl−1) hai, jo input space mein (kl−1)∏i=1l−1si map hoti hai.
Uniform layers ke liye simplification: Agar sabhi layers mein kernel k aur stride s hai:
Rl=k+(k−1)i=0∑l−2si=k+(k−1)s−1sl−1−1
s=1 ke liye (no downsampling): Rl=1+l(k−1) (linear growth).
s=2 ke liye: Rl=k+(k−1)(2l−1−1) (exponential growth).
Recall Feature Maps aur Receptive Fields ko 12 saal ke bachche ko samjhao
Socho tumhare paas beach scene ka ek bada poster hai. Tum ek art detective ho jo patterns dhundh rahe ho—jaise "umbrellas kahaan hain?" Tum ek saath poora poster nahi dekh sakte, toh tum ek magnifying glass use karte ho jo sirf ek chhota sa square dikhata hai.
Feature map: Tum apna magnifying glass poster par row by row slide karte ho. Jab bhi tumhe umbrella jaisa kuch dikhta hai, tum ek alag kaagaz par same position par ek checkmark lagate ho. Jab ho jaata hai, tumhara kaagaz checkmarks se bhara hota hai jo "umbrella locations" dikhate hain. Woh kaagaz ek feature map hai—yeh ek "umbrella detector" filter ka output hai.
Ab socho tumhare paas 100 alag detectors (alag colored lenses wale magnifying glasses) hain—ek umbrellas ke liye, ek waves ke liye, ek logon ke liye, aur aise aage. Tumhe 100 alag kagaaz milte hain (feature maps), har ek dikhata hai ki woh pattern kahaan appear hota hai.
Receptive field: Pehle, tumhara magnifying glass poster ka sirf 3×3 square dikhata hai (bahut chhota!). Tum sirf tiny edges detect kar sakte ho. Phir ek aur detective tumhare upar aata hai: woh tumhare checkmark paper ko apne magnifying glass se dekhta hai. Ab woh tumhari tiny detections ko bade patterns mein combine kar raha hai—shayad "checkmarks ka yeh cluster ek circle bana raha hai." Kyunki woh tumhara paper dekh raha hai (jisne 3×3 patches summarize kiye the), woh indirectly original poster ka 5×5 dekh raha hai. Woh 5×5 unka receptive field hai—original poster ka kitna hissa unke ek decision ko influence karta hai.
Ek teesra detective doosre ka paper dekhe, aur ab woh original poster ka 7×7 dekhte hain. Jitna upar jaate ho, utna hi bada "field of view" original scene mein hota hai. Isliye CNNs context samjhte hain—low layers pixels dekhte hain, high layers objects dekhte hain.
3.4.01-Convolutional-layers: Feature maps convolutional layers ke outputs hain; receptive field conv parameters par depend karta hai.
3.4.02-Pooling-layers: Pooling apni window size aur stride dono se receptive field badhata hai, lekin koi learnable parameters add nahi karta.
3.4.03-Padding-and-stride: Padding spatial size preserve karta hai; stride downsampling aur receptive field growth rate control karta hai.
3.4.05-CNN-architectures: Deep architectures (ResNet, VGG) parameters control karte hue receptive fields efficiently badhane ke liye design ki gayi hain.
3.3.02-Activation-functions: Feature maps nonlinearity introduce karne ke liye ReLU/etc. se pass kiye jaate hain.
4.2.01-Object-detection: Large objects ko context mein detect karne ke liye large receptive fields critical hain.
Woh 2D output jo tab produce hota hai jab ek single convolutional filter input par slide karta hai. Yeh dikhata hai ki filter kin spatial locations par strongly respond karta hai. Agar tumhare paas Cout filters hain, toh tumhe Cout feature maps milte hain.
Feature map ki spatial size kaise calculate karte hain?
Hout=⌊(H+2p−k)/s⌋+1, jahaan H input height hai, p padding hai, k kernel size hai, s stride hai. Width ke liye bhi same formula.
CNN mein ek neuron ka receptive field kya hota hai?
Original input image mein woh region jo uss neuron ki activation value ko influence kar sakta hai. Yeh depth ke saath badhta hai kyunki convolutions stack hoti hain.
Stride receptive field growth ko kaise affect karta hai?
Stride s receptive field expansion ko multiply karta hai. Formula: Rl=Rl−1+(kl−1)∏i=1l−1si. Stride-2 pooling exponential growth karti hai; stride-1 linear growth karti hai.
Kya pooling layer receptive field ko affect karti hai, aur kaise?
Haan. Stride sp wala kp×kp pool receptive field ko (kp−1)× (cumulative previous strides) se expand karta hai, AUR uska stride sp sabhi future layers ki expansions ko multiply karta hai.
Ek single 3×3 conv layer (stride 1) ka receptive field kya hai?
Agar tum do 3×3 convs (stride 1) stack karo, toh layer 2 par receptive field kya hai?
R2=3+(3−1)⋅1=5. Har layer-2 pixel input ka 5×5 patch dekhta hai.
Deeper CNNs ka context understanding kyun behtar hota hai?
Deeper layers ke receptive fields exponentially bade hote hain (khaaskar pooling ke saath), toh neurons original image ka zyada hissa "dekhte" hain—large-scale patterns aur spatial relationships ko recognize karna enable hota hai.
Padding p=(k−1)/2 aur stride 1 ke saath feature map size ka kya hota hai?
Output size input size ke barabar hoti hai (spatial dimensions preserved). Example: k=3,p=1 se Hout=H rehta hai.
Dilated convolution effective kernel size aur receptive field ko kaise affect karta hai?
Effective kernel size dilation d ke liye keff=k+(k−1)(d−1) hai. d=1 par yeh k ke barabar hai; bada d bina parameters add kiye receptive field inflate karta hai. Example: Dilation 2 ke saath 3×3 ki effective size 5×5 hai.