5.6.11 · D4 · HinglishMachine Learning (Aerospace Applications)

ExercisesConvolutional neural networks — convolution operation, pooling

2,701 words12 min read↑ Read in English

5.6.11 · D4 · Coding › Machine Learning (Aerospace Applications) › Convolutional neural networks — convolution operation, pooli

Do workhorse formulas jinhe hum is poore page mein use karenge:


Level 1 — Recognition

Problem 1.1

Inme se kaun si operation mein zero learnable parameters hain? (a) ek convolution, (b) max-pooling, (c) ek fully-connected layer, (d) bias term.

Recall Solution 1.1

Answer: (b) max-pooling. Humne kya kiya: yaad kiya ki pooling ek fixed function hai — yeh ek window ke upar max (ya average) compute karta hai aur iske andar train karne ke liye kuch bhi nahi hota. Ek convolution mein har filter ke liye trainable numbers hote hain; ek fully-connected layer mein har input–output pair ke liye ek weight hota hai; bias term khud ek parameter hai. Sirf pooling kuch nahi seekhta.

Problem 1.2

Memory se output-size formula batao aur uske chaar inputs ke naam lo.

Recall Solution 1.2

= input width, = kernel size, = padding, = stride. Mnemonic (parent note): "I-Kicked-2-Pads-per-Stride-plus-one."

Problem 1.3

Input width , kernel , padding , stride . compute karo.

Recall Solution 1.3

Yeh kaisa dikhta hai: ek -wide kernel columns pe start ho sakta hai — yeh 5 positions hain, toh 5 outputs. woh jagah kaat deta hai jo kernel body ko chahiye; sabse pehli position (column 0) wapas add kar deta hai, jise subtraction ne kabhi count nahi kiya tha.


Level 2 — Application

Problem 2.1

Input , kernel , padding , stride . nikalo aur words mein batao ki yeh padding choice kya achieve karti hai.

Recall Solution 2.1

Yeh padding kyun: ke saath humne do zero-rings add kiye, jo bilkul utne hain ki ek kernel ke liye stride 1 par shrink cancel ho jaye (). Yeh "same" padding hai — output size input size ke barabar hoti hai. Useful tab hota hai jab tum bahut saari conv layers stack karna chahte ho bina map ke vanish hue.

Problem 2.2

Is convolution ka poora output compute karo: stride 1 ke saath, no padding.

Recall Solution 2.2

Output size: , toh ek map. ko har window par overlay karo aur element-wise products ka sum karo (cross-correlation, parent §1).

  • Yeh kaisa dikhta hai: yeh kernel positively fire karta hai jab do diagonal pixels bade hain aur do anti-diagonal pixels chote hain — ek checkerboard / corner detector.

Problem 2.3

Map ko neeche window aur stride 2 se max-pool karo. Phir use average-pool karo.

Recall Solution 2.3

Stride 2 ke saath window ⇒ non-overlapping blocks. Output , ek map. Max-pool (har block mein sabse bada rakho):

  • TL , TR
  • BL , BR Average-pool (har block ka mean):
  • TL , TR
  • BL , BR

Level 3 — Analysis

Problem 3.1

Ek conv layer ek image leti hai jisme channels hain, filters of size use karti hai. Kitne learnable parameters hain? Ab image ho jaati hai — ab kitne parameters hain? Result explain karo.

Recall Solution 3.1

image ke liye: abhi bhi 1792. Formula mein koi nahi hota. Kyun: wahi kernel poori image par slide kiya jaata hai (weight sharing), toh image bada karne ka matlab hai zyada slides, nahi zyada weights. Yeh size-independence convolution ka fully-connected layer ke upar defining advantage hai.

Problem 3.2

Map lo (values activations hain). "8" ko ek cell left shift karo taaki mile. Dono par ek single max-pool apply karo. Tum kya observe karte ho, aur yeh kaunsi property demonstrate karta hai?

Recall Solution 3.2

aur . Dono pool hokar same value 8 dete hain. Yeh kya dikhata hai: local translation invariance — feature (strong activation "8") ek pixel move hua, phir bhi pooled output nahi badla. Max-pooling report karta hai "yeh feature is window mein present tha" bina is baat ki parwah kiye ki window mein exactly kahan tha. Figure dekho.

Problem 3.3

Tum do stride-1 conv layers stack karte ho (no padding). Second layer ke output mein ek single neuron — woh ultimately kitne input pixels par depend karta hai (uski receptive field width)?

Recall Solution 3.3

Ek conv ek neuron ko width 3 ki receptive field deta hai. Use second conv mein feed karo: second neuron 3 first-layer neurons combine karta hai, aur woh 3 neighbours input columns cover karte hain — milke columns se tak, yani width 5. Stacked stride-1 conv ka general rule: receptive field har layer mein se badhta hai, toh do layers ke baad yeh hoti hai. Do chhote kernels utna door dekhte hain jitna ek kernel, lekin kam parameters mein — isliye deep stacks of small kernels prefer ki jaati hain.


Level 4 — Synthesis

Problem 4.1 — ek chhota pipeline trace karo

Ek aerospace crack-inspection net ek grayscale patch () leta hai. Yeh apply karta hai:

  1. Conv: , , ,
  2. Max-pool: ,
  3. Conv: , , ,
  4. Max-pool: ,

Har stage ke baad spatial size aur channel count do, aur total conv parameters bhi batao.

Recall Solution 4.1

track karo. Start: .

  • Stage 1 conv ( = "same"): . → .
  • Stage 2 pool (): . → .
  • Stage 3 conv (same padding): .
  • Stage 4 pool: . → .

Parameters (pooling ke koi nahi hote):

  • Conv 1:
  • Conv 3:
  • Total .

Yahan "same"-padding kyun matter karta hai: yeh conv layers ko spatial size fixed rakhne deta hai, toh saari shrinking pooling ke zariye ek controlled, predictable pattern mein hoti hai — reason karna aasan ho jaata hai.

Problem 4.2 — contrast ke liye equivalent FC count banao

Upar Stage 1 ke liye, ek fully-connected layer ko har input pixel ko har output unit se map karne ke liye kitne weights chahiye honge (bias ignore karo)? Conv ke 160 se compare karo.

Recall Solution 4.2

Input mein units hain. Output mein units hain. Fully-connected weights . Conv ne 160 use kiye. Ratio — conv ek million times se bhi zyada lean hai. Kyun: locality (har output sirf ek neighbourhood touch karta hai) + weight sharing (ek kernel har jagah reuse hota hai) milke us quarter-billion matrix ko 160 numbers mein compress kar dete hain. Yeh parent ka "convolution is a constrained fully-connected layer" concrete form mein hai.


Level 5 — Mastery

Problem 5.1 — ek target output size hit karo

Tumhe ek conv layer design karni hai jo ek input leti ho aur kernel use karke output produce kare. Padding aur stride choose karo, aur prove karo ki yeh kaam karta hai.

Recall Solution 5.1

Stride try karo (roughly half karne ke liye). ke liye solve karo jo exactly 112 deta hai: Humein chahiye . se check karo: Answer: . Stride 2 kyun, padding tricks nahi: halving fundamentally ek stride ka kaam hai (stride rate of down-sampling set karta hai); padding phir edge fine-tune karta hai taaki floor exactly 112 par land kare.

Problem 5.2 — crack detector ke liye max vs average defend karo

Classify karne ke liye ki kya ek composite panel image mein crack hai (yes/no), argue karo ki kaun sa pooling — max ya average — decisive signal ko behtar preserve karta hai, aur galat wale ka failure mode batao.

Recall Solution 5.2

Max-pooling choose karo. Ek crack ek sparse, high-contrast feature hai: panel ka ek patla bright line covering ek chhota sa fraction. Us line ke liye tuned ek conv filter ek ya kuch bade activations produce karta hai jo near-zero background se ghiri hoti hain.

  • Max-pool us bade activation ko intact rakhta hai — yeh jawaab deta hai "kya crack feature is window mein kabhi aaya?", jo bilkul wahi yes/no sawaal hai.
  • Average-pool strong activation ko poore window ki cell count se divide kar deta hai, ek akele hot pixel ko zeros ke samandar mein duba deta hai. Ek real crack averaged hokar decision threshold se neeche aa sakti hai — ek missed defect, inspection mein sabse bura error. Jab average jeet jaata hai: overall magnitude / texture ke baare mein tasks (jaise mean surface roughness estimate karna), jahan smoothing ek bug nahi, balki ek feature hai.

Problem 5.3 — flip question, defended

Ek colleague Sobel edge kernel ko ek signal-processing textbook se hand-code karta hai aur use ek Conv2d layer mein drop karta hai, mathematically exact convolution ki umeed rakhta hai. Results kahan differ ho sakte hain, aur kya yeh ek learned network ke liye matter karta hai?

Recall Solution 5.3

Conv2d cross-correlation compute karta hai (kernel flip nahi hota), jabki textbook ki true convolution pehle kernel ko 180° flip karti hai (parent §1). Ek hand-designed asymmetric kernel jaise Sobel ke liye, cross-correlation mirrored filter apply karta hai — detected edge orientation invert ho sakti hai. Hand-coded kernels ke liye fix: kernel ko (180° rotate karke) load karne se pehle pre-flip karo. Ek learned network ke liye: yeh bilkul matter nahi karta — gradient descent simply woh weights ka orientation seekhta hai jo loss minimize kare, yani yeh automatically flipped values seekh leta hai. Flip sirf tab concern hai jab tum ek fixed, meaningful kernel inject karte ho.


Recall Jaane se pehle ek-line self-check

Answers cover karo: ::: Ek conv layer ke params ::: , image-size independent Pooling params ::: zero Sparse crack signal ke liye best pool ::: max

Connections

  • Parent topic
  • Padding and stride aur jo har L2–L5 problem ne tune kiya.
  • Feature maps and receptive fields — Problem 3.3 mein receptive-field growth.
  • Translation equivariance vs invariance — Problem 3.2 mein pooling-invariance demo.
  • Image classification for aerospace inspection — L4/L5 mein crack-detector design.
  • Fully-connected neural networks — Problem 4.2 mein -weight contrast.
  • Backpropagation — Problem 4.1 ke 4800 learnable params actually kaise train hote hain.