Initialization: Pehle VGG-11 train kiya gaya, phir use VGG-16/19 ke initialization ke liye use kiya gaya. Kyun? 2014 mein (pre-BatchNorm) deep networks scratch se train karna mushkil tha. Shallow→deep bootstrapping ne training stabilize ki.
Data augmentation:
Random crops (224×224 from 256×256)
Horizontal flips
RGB color jittering
Aggressive augmentation kyun? 1.2M ImageNet images par 138M parameters → severe overfitting risk. Augmentation se ~100× effective dataset size ban jaata hai.
Learning rate schedule: 0.01 se start karo, jab validation plateau kare tab 10 se divide karo. Adaptive optimizers kyun nahi? SGD with momentum (0.9) 2014 mein state-of-art tha. Modern Adam faster converge karta lekin shayad thoda worse generalize karta.
Recall VGG ko ek 12-saal ke bacche ko samjhao
Socho tum ek tasveer bana rahe ho, lekin ek moti brush ki jagah tum kai patli brushes use karte ho—har ek ek patli layer add karta hai. Yehi VGG hai!
Purane neural networks bade "brushes" (bade filters jaise 11×11) use karte the. VGG ne kaha: "Kya hoga agar hum chhoti 3×3 brushes kai baar use karein?"
Jaadu: Do chhoti brushes utna hi area dekhti hain jitna ek medium brush, lekin tumhare paas zyada control hai! Ye waise hi hai jaise ek bhaari stroke ki jagah kai halke strokes se color karo—tumhe smoother blending milti hai aur mistakes fix karna aasaan hota hai.
VGG 16-19 layers deep stack karta hai. Har layer ek chhota neighborhood dekhta hai, lekin saath mein stack hoke, ye poori image dekhte hain. Early layers edges aur colors dhundhte hain. Middle layers unhe textures mein combine karte hain. Deep layers objects recognize karte hain jaise "dog's face" ya "car wheel."
Trick: har kuch layers ke baad, image shrink karo (jaise zoom out karna) lekin zyada "paint colors" (channels) add karo. Toh tum detail ke badle understanding lete ho—"is picture mein kya hai?" recognize karne ke liye perfect.
Receptive field analysis → stacked 3×3 kyun kaam karta hai
#flashcards/ai-ml
Do 3×3 convolutions ek 5×5 ki jagah use karne ke do key advantages kya hain? :: (1) 28% kam parameters (18C² vs 25C² weights), (2) ek ki jagah do ReLU non-linearities, jo model expressiveness badhata hai
VGG har pooling layer ke baad channels ki sankhya double kyun karta hai? :: Computational balance maintain karne ke liye—spatial dimensions half ho jaate hain (÷4 area), toh channels double karne se similar information capacity maintain hoti hai
Teen stacked 3×3 convolutions ka receptive field stride 1 ke saath kya hota hai?
7×7 (3 + 2 + 2 se calculate hota hai), ek single 7×7 convolution ke equivalent lekin 45% kam parameters aur teen ReLU activations ke saath
~138 million total, jisme zyada (>100M) fully connected layers mein hain, convolutional layers mein nahi
VGG apne 3×3 convolutions ke liye kaunsi padding strategy use karta hai aur kyun?
Same-padding (3×3 kernel ke liye padding=1) taaki pooling layers tak spatial dimensions preserve hon, jisse architecture zyada uniform ho
Kya canonical VGG-16/19 1×1 convolutions use karta hai?
Nahi—canonical VGG-16/19 SIRF 3×3 convolutions use karte hain. (Sirf paper mein experimental configuration C ne 1×1 convs use kiye the.)
VGG researchers ne VGG-16/19 train karne se pehle VGG-11 kyun train kiya?
Pre-BatchNorm era mein deep networks scratch se train karna mushkil tha; unhone trained shallow network ko deeper ones ke initialization ke liye use kiya (bootstrap training)
VGG-16 mein training ke dauraan computational bottleneck kya hai?
Backpropagation ke dauraan activations store karne ke liye memory—ek 224×224×3 image har batch element ke liye >100MB activation maps generate karta hai