Hum kya chahte hain: Samajhna ki kaunse input features (pixels) ke liye model sensitive hai.
Neural networks kaise kaam karte hain: Output Sc input I ka ek differentiable function hai: Sc=f(I;θ).
Taylor expansion intuition: Agar hum pixel Ix,y ko ϵ se perturb karein, toh output approximately ∂Ix,y∂Sc⋅ϵ se change hoga. Bada gradient → bada impact.
Saliency score: Hum ∂Ix,y∂Sc lete hain (absolute value isliye kyunki kisi pixel ko increase ya decrease karna dono score ko change kar sakte hain).
Computation: Network mein input layer ke respect mein ek backward pass (weights ke respect mein nahi).
Absolute value kyun?
Ek negative gradient matlab hai "is pixel ko decrease karna score ko increase karta hai," jo phir bhi important hai.
Hum influence ki magnitude ki care karte hain, direction ki nahi.
Observation: Deep conv layers high-level spatial information capture karte hain (jaise, "cat face yahan, paws wahan").
Goal: Har feature map ko weight karo "kitna yeh class c mein contribute karta hai."
Gradient as importance: ∂Ak∂Sc class score ki sensitivity measure karta hai feature map k ke respect mein.
Global average pooling: Pixel-wise weights ki jagah, spatial locations mein gradients average karo: αkc=u⋅v1∑i,j∂Ai,jk∂Sc. Yeh har feature map ke liye ek weight deta hai.
Average kyun? Feature maps spatially coarse hote hain; hum us feature ki overall importance chahte hain.
Linear combination: ∑kαkcAk har feature map ko weight karta hai, ek single heatmap mein sum karke.
ReLU: Negative values "kya score decrease karta hai" highlight karti hain (localization ke liye kam interpretable).
Upsample: Feature map input se chhota hota hai (jaise, 7×7 vs. 224×224). Image size tak bilinear interpolation.
Kaunse spatial regions class c ke liye activate hote hain
Noise
Bahut noisy (pixel gradients chaotic hote hain)
Smoother (feature maps info aggregate karte hain)
Use case
Fine-grained debugging
Localization, sanity checks
Saliency ke upar Grad-CAM kyun?
Deep layers mein feature maps objects/parts encode karte hain (edges → textures → parts → objects). Saliency maps pixel-level aur noisy hote hain.
Grad-CAM class-discriminative hai: tum visualize kar sakte ho "model ne cat kahan dekhi vs. dog kahan dekha?"
Recall Feynman: Ek 12-Saal Ke Bacche Ko Explain Karo
Socho tumne ek robot train kiya photos mein cats recognize karne ke liye. Tum use ek picture dikhate ho, aur woh kehta hai "90% sure yeh cat hai!" Lekin usne decide kaise kiya?
Saliency maps: Hum robot se poochte hain, "Agar main yeh ek pixel thoda sa change karun, toh tumhari 'cat confidence' kitni change hogi?" Agar cat ke kaan mein ek pixel change karna jawab bahut change karta hai, toh woh pixel important hai. Hum important pixels ko bright red aur unimportant waalon ko dark blue color karte hain. Ab hum dekhte hain ki robot kaan aur whiskers dekh raha tha!
Grad-CAM: Har ek pixel ke baare mein poochhne ki jagah (jo messy ho jaata hai), hum robot ke andar ki "brain layers" se deeper poochte hain. Final answer se pehle ki last layer mein mini-images hoti hain jo dikhati hain "yahan fur hai, wahan pointy ears hain." Hum poochte hain, "Inme se kaunsi mini-images ne tumhe 'cat' sochne par majboor kiya?" aur un regions ko color karte hain. Phir hum us colored map ko blow up karte hain aur original photo ke upar rakh dete hain. Ab hum dekhte hain ki robot cat ke face pe focused tha, peeche ke couch pe nahi.
Yeh kyun important hai: Agar robot sirf background dekhta hai (jaise hamesha cats ko blue carpets pe dekhna), toh woh red carpet pe cat pe fail kar jaayega. Yeh maps humein robot ko "cheat karte" pakadne mein help karte hain.
Backpropagation: Saliency/Grad-CAM standard backprop ke gradients use karte hain, bas weights ki jagah input/features ko target karke.
Convolutional Neural Networks: Grad-CAM conv layers ki spatial structure leverage karta hai; dense layers ke liye kaam nahi karta.
Model debugging: Saliency/Grad-CAM spurious correlations reveal karte hain (Clever Hans effects).
Attention mechanisms: Attention weights dikhate hain "model har step par kya attend karta hai"; Grad-CAM CNNs mein spatial attention dikhata hai.
Adversarial examples: High-saliency regions adversarial perturbations ke liye vulnerable hote hain.
LIME and SHAP: Gradient-based saliency ke model-agnostic alternatives; Grad-CAM gradient-specific hai lekin faster hai.
#flashcards/ai-ml
Saliency map kya hota hai? :: Ek visualization jo output ke gradient ki magnitude dikhata hai har input pixel ke respect mein: ∣∂Ix,y∂Sc∣. High values un pixels ko indicate karte hain jo prediction ko strongly influence karte hain.
Saliency ke liye hum softmax probabilities ki jagah raw logits kyun use karte hain?
Softmax saari classes ko couple karta hai—ek class score change karna saari probabilities affect karta hai. Raw logits target class ki sensitivity ko input changes ke respect mein isolate karte hain, cleaner gradients dete hue.
Grad-CAM ka full form kya hai?
Gradient-weighted Class Activation Mapping. Yeh last convolutional layer mein flow hone wale gradients ko feature maps weight karne ke liye use karta hai, ek class-specific localization heatmap produce karke.
Grad-CAM formula likhо :: LGrad-CAMc=ReLU(∑kαkcAk), jahan αkc=Z1∑i,j∂Ai,jk∂Sc (global average pooled gradients) aur Akk-th feature map hai.
Grad-CAM final heatmap pe ReLU kyun apply karta hai?
ReLU negative values zero kar deta hai, sirf un regions ko rakhte hue jo target class score mein positively contribute karte hain. Negative regions class ko suppress karte hain (localization ke liye kam interpretable).
Saliency maps aur Grad-CAM mein key difference kya hai? :: Saliency maps pixel-level gradients hote hain (noisy, high-res). Grad-CAM last conv layer feature maps use karta hai (coarse, semantic, class-discriminative).
Grad-CAM mein, hum last convolutional layer kyun use karte hain?
Deep conv layers high-level spatial features (object parts, semantic regions) capture karte hain spatial structure retain karte hue. Earlier layers bahut low-level hoti hain; baad ki dense layers spatial info kho deti hain.
Grad-CAM mein αkc kaise compute karte hain?
Gradients ka global average pooling: αkc=u⋅v1∑i,j∂Ai,jk∂Sc. Yeh har feature map ke liye ek importance weight deta hai.
Grad-CAM heatmap ek misclassification ke baare mein kya batata hai?
Yeh dikhata hai ki model ne (galat) class ke liye kaunse spatial regions use kiye. Agar yeh irrelevant features (background, watermarks) highlight karta hai, toh model ne spurious correlations seekhi hain.
Grad-CAM class-discriminative kyun hai?
Weights αkc class c ke score ke respect mein gradient pe depend karte hain, isliye alag-alag classes alag heatmaps produce karti hain jo dikhate hain ki model ne har class ke liye evidence kahan paaya.