4.5.6 · HinglishGenerative Models

Generative Adversarial Networks (GAN) framework

3,514 words16 min readRead in English

4.5.6 · AI-ML › Generative Models

Overview

Generative Adversarial Networks (GANs) ek aisa framework hai jisme do neural networks ke beech ek adversarial process ke through generative models train kiye jaate hain: ek Generator jo fake samples banata hai aur ek Discriminator jo real aur fake mein fark karta hai. Yeh competitive training regime bahut hi realistic synthetic data produce karta hai.

Figure — Generative Adversarial Networks (GAN) framework

Key insight yeh hai: humein explicitly specify karne ki zaroorat nahi ki "realistic" ka matlab kya hai. Discriminator yeh data se implicitly seekhta hai, aur competition Generator ko isse match karne par majboor karta hai.

The Two-Player Game Framework

  1. Generator : Random noise ko data space mein map karta hai, fake samples produce karta hai
  2. Discriminator : Input ko probability mein map karta hai ki real hai (generated nahi)

Yeh game: koshish karta hai ki error rate ko maximize karne ki, jabki use minimize karne ki koshish karta hai.

The Objective Function: First Principles Se Derive Karna

Starting Point: Hum kya chahte hain?

  • real data ke liye 1 output kare, fake data ke liye 0
  • ko fool kare taaki woh fake data ke liye 1 output kare

Step 1: ka goal probabilities use karke express karo

Real data ke liye, hum chahte hain . Log probability use karke (maximize hota hai jab ):

Log kyun? Logarithm probabilities ko log-likelihoods mein convert karta hai, jo maximum likelihood estimation mein standard hai. Yeh numerical stability bhi deta hai aur 0.99→1.0 ko 0.01→0.1 se kam important treat karta hai.

Step 2: Fake data ke liye ka goal express karo

Fake data ke liye jahan , hum chahte hain , equivalently :

Step 3: Dono objectives combine karo

dono maximize karna chahta hai, isliye:

Step 4: kya chahta hai?

chahta hai ki success ko minimize kare, yaani us objective ko minimize kare jise maximize karta hai:

Training objective hai:

Yeh ek minimax two-player game hai. Equilibrium par, aise samples generate karta hai jo real data se alag nahi pahchane ja sakte, aur har jagah output karta hai (maximum uncertainty).

Training Algorithm: Alternating Optimization

Kyunki hum minimax problem directly solve nahi kar sakte, hum alternating gradient descent use karte hain:

Alternating kyun? Agar hum dono ko simultaneously joint gradient descent se train karte, toh objectives conflict karte—ek ko improve karna doosre ke gradient signal ko kharab karta. Alternating allow karta hai ki har network doosre ki current state ke saath adapt ho sake.

Discriminator ke liye ( steps):

ko ke w.r.t. maximize karo:

Practical computation:

  1. Real data se minibatch sample karo
  2. Noise se minibatch sample karo
  3. Fakes generate karo: jahan
  4. Gradient ascent update:

Multiple discriminator steps kyun? Training ke shuruaat mein, weak hota hai, isliye aasani se classify kar sakta hai. Hum chahte hain ki ko update karne se pehle near optimal ho, warna ko weak gradient signal milta hai.

Generator ke liye (1 step):

ko ke w.r.t. minimize karo — equivalently, maximize karo:

Key Issue: Jab poor hota hai, , isliye → flat gradients (vanishing gradient problem).

Solution: minimize karne ki jagah, maximize karo:

Yeh kyun kaam karta hai? Dono objectives ka same optimal point hai (jahan ), lekin mein jab chhota hota hai toh stronger gradients hote hain. Jab confidently reject karta hai (), bada gradient deta hai, strong learning signal provide karta hai.

Practical computation:

  1. se minibatch sample karo
  2. par gradient ascent:

Iteration t=1000:

  1. Discriminator update ( steps):

    • 64 real MNIST digits ka batch:
    • sample karo, fakes generate karo
    • Reals ke liye compute karo, fakes ke liye
    • Loss:
    • Backprop, minimize karne ke liye update karo ( maximize karo)
    • 5 baar repeat karo Yeh step kyun? In updates ke baad, current outputs ko better discriminate kar sakta hai, meaningful feedback deta hai.
  2. Generator update (1 step):

    • Fresh noise sample karo
    • generate karo
    • compute karo
    • Loss: (negative kyunki hum maximize karte hain)
    • aur dono ke through backprop karo (lekin sirf update karo)
    • minimize karne ke liye update karo D ke through backprop kyun? Gradient ke liye ke forward pass ke through chain rule chahiye. Hum compute karte hain.

Kai iterations ke baad: realistic digits produce karta hai, real aur fake dono ke liye .

Epoch 10:

  • : 0.91 (confidently real)
  • : 0.12 (confidently fake)
  • Generated images: vague blob shapes

Yeh values kyun? ne aasani se discriminate karna seekh liya kyunki abhi bhi weak hai.

Epoch 50:

  • : 0.78
  • : 0.31
  • Generated images: digit-jaisi structures, lekin blurry

Values kyun giri? improve hua, ka kaam mushkil ho gaya. Arms race in action.

Epoch 200 (near convergence):

  • : 0.58
  • : 0.54
  • Generated images: sharp, realistic digits

0.5 ke kareeb kyun? Equilibrium par, , isliye distinguish nahi kar sakta, maximum entropy (0.5) output karta hai.

Theoretical Properties

Fixed ke liye, optimal kya hai?

Woh functional jise hum ke upar maximize karte hain:

Change of variables: lo, induced distribution ke saath:

Integrals combine karo:

Pointwise optimization: Har ke liye, maximize karo:

ke w.r.t. derivative lo aur zero set karo:

ke liye solve karo:

Interpretation: Optimal Bayes-optimal probability output karta hai ki real hai. Jab , hame har jagah milta hai.

Global optimum par jahan :

Yeh Jensen-Shannon Divergence se connect hota hai:

GAN objective ko rewrite kiya ja sakta hai:

JSD kyun? GAN objective minimize karna Jensen-Shannon divergence ko real aur generated distributions ke beech minimize karne ke equivalent hai. JSD symmetric aur bounded hai, aur 0 sirf tab reach karta hai jab distributions identical hoon.

Common Training Challenges

Yeh sahi kyun lagta hai: ke perspective se, agar ko fool kar le, toh yeh success lagta hai. Doosre modes explore kyun karo?

Problem: saare noise vectors ko ek single output (ya chhote subset) par map kar deta hai. Example: faces generate karte waqt, saare outputs ek hi face hote hain thodi variations ke saath. Generator ke kuch modes par "collapse" ho jaata hai bajaaye saare modes cover karne ke.

Root cause: Minimax objective sirf require karta hai ki average par ko fool kare, poori data distribution cover karne ki zaroorat nahi. Agar repetition detect karne mein weak hai, iska faayda uthata hai.

Detection: Generated samples ki diversity monitor karo. Inception Score jaisi metrics compute karo ya measure karo ki multiple alag values nearly identical produce karte hain ya nahi.

Fix strategies:

  • Minibatch discrimination: ko ek saath multiple samples dikhao, diversity ki kami detect karo
  • Unrolled GANs: ko future updates consider karke update karo, exploitation discourage karo
  • Multiple GANs: Ensemble train karo, har ek alag modes capture kare

Yeh sahi kyun lagta hai: Supervised learning mein, loss typically monotonically decrease hota hai. Hum similar behavior expect karte hain.

Problem: aur losses wildly oscillate karte hain, kabhi stabilize nahi hote. Ek network ka improvement doosre ka degradation hai. System kabhi equilibrium nahi paata.

Root cause: GANs ek single loss function optimize nahi karte—woh ek minimax game solve kar rahe hain. Game dynamics converge karne ki jagah cycle kar sakti hain. Gradient field mein rotational components hote hain, purely conservative nahi.

Analogy: ko coordinates ke roop mein socho. Standard optimization ek valley mein minimum ki taraf descend karta hai. GAN optimization do magnets ki tarah hai jo repel kar rahe hain—trajectories indefinitely orbit kar sakti hain.

Detection: loss aur loss ko time ke saath plot karo. Monotonic trends ki jagah periodic oscillations dekho.

Fix strategies:

  • Careful learning rates: Lower rates oscillation amplitude reduce karte hain
  • Gradient penalty (WGAN-GP): ko bounded gradients rakhne ke liye regularize karo, training stabilize karo
  • Spectral normalization: ka Lipschitz constant constrain karo, smooth gradient flow
  • Two-timescale update rule (TUR): aur ke liye alag learning rates

Yeh sahi kyun lagta hai: Supervised learning mein zyada training usually help karti hai.

Problem: Jab bahut jaldi bahut strong ho jaata hai, woh real aur fake ko perfectly separate kar leta hai (, ). Phir , ko near-zero gradients deta hai. seekhna band kar deta hai—arms race stall ho jaata hai.

Mathematically kyun: mein involve hota hai. Jab , mein chhote changes ke output ko change nahi karte (woh 0 par saturate hai), isliye gradient vanish ho jaata hai.

Fix: Non-saturating objective use karo ki jagah. Yeh strong gradients deta hai even jab confident ho.

Verification: Jab :

  • Original: (tiny)
  • Non-saturating: bada gradient

Architectural Considerations

  1. Pooling ki jagah strided convolutions use karo ( mein) aur fractional-strided convolutions ( mein)

    • Kyun? Pooling spatial information deterministically lose kar deta hai. Strided convs downsampling seekhte hain, poore network mein gradients dete hain.
  2. Dono aur mein batch normalization use karo

    • Kyun? Layer inputs normalize karta hai, mode collapse prevent karta hai by ensuring activations saturate nahi karti
    • Exception: ke output layer ya ke input layer mein use mat karo (raw data/generation scale preserve karo)
  3. Deeper architectures ke liye fully connected hidden layers hata do

    • Kyun? Fully connected layers mein bahut bade parameter counts hote hain, train karna mushkil hota hai. All-convolutional spatial structure use karta hai.
  4. mein ReLU use karo (output ke alawa: tanh), mein LeakyReLU

    • Kyun? ReLU mein gradients flow karne mein help karta hai. mein LeakyReLU dead neurons prevent karta hai (negative inputs ke liye zero gradient avoid karta hai).
  5. Generator output: tanh activation use karo

    • Kyun? Normalized input range se match karta hai agar data is range mein scale kiya gaya ho. Bounded output training stabilize karta hai.

Connections to Other Concepts

Related Topics:

Upstream Dependencies:

Downstream Applications:

Recall Ek 12-Saal-Ke Bachhe Ko Samjhao

Imagine karo tum realistic butterflies draw karna seekhna chahte ho, lekin tumne kabhi ek dekhi nahi—tumhare paas sirf ek teacher hai jisne bahut saari butterflies dekhi hain.

Yeh karo: Tum ek butterfly draw karo (shuruaat mein woh terrible scribbles hoti hai). Tum apne teacher ko dikhao, aur woh kehte hain "Yeh fake hai, dobara try karo." Tum ek aur draw karte ho, woh kehte hain "Abhi bhi fake hai." Lekin tum notice karte ho ki woh kya dekh rahe hain—wings galat hain, antenna bahut thick hain. Toh tum improve karte ho.

Meanwhile, tumhara teacher bhi fakes pakadne mein better ho raha hai. Shuruaat mein, tumhari drawings ITNI buri hain ki unke liye aasaan hai. Lekin jaise-jaise tum better hote ho, unhe zyada closely dekhna padta hai—"Hmm, wing pattern bilkul sahi nahi hai..."

Yeh aage-peeche hota rehta hai: tum (Generator) draw karne mein better hote ho, woh (Discriminator) galtiyan pakadne mein better hote hain. Eventually, tumhari butterflies itni achhi hoti hain ki tumhara expert teacher bhi nahi bata sakta ki yeh tumhari drawing hai ya photo. Tab tumne succeed kiya hai!

"Trick" yeh hai ki tumne kabhi real butterfly nahi dekhi. Tumne sirf apne teacher ko fool karne ki koshish karke seekha. Teacher ki job ne tumhe force kiya ki real butterflies kaisi dikhti hain yeh seekho, bina kisi ke directly dikhaye.

Order matters: Pehle D train karo (use current G seekhne do), phir updated D ko beat karne ke liye G improve karo.

Objective mnemonic: "Real-log-Real, Fake-log-NOT-fake"

  • Real samples: — chahte hain 1 ke kareeb ho
  • Fake samples: — chahte hain 0 ke kareeb ho (toh 1 ke kareeb ho)

Flashcards

#flashcards/ai-ml

GAN mein do neural networks kaunse hain aur har ek kya karta hai? :: Generator random noise se fake samples banata hai. Discriminator inputs ko real (data se) ya fake ( se) classify karta hai. Woh compete karte hain: koshish karta hai ko fool karne ki, koshish karta hai fakes detect karne ki.

Poora GAN minimax objective function likho :: . Discriminator maximize karta hai (real par high probability chahiye, fake par low), Generator minimize karta hai (discriminator ko fool karna chahta hai).

Hum ek generator step se pehle discriminator ko steps kyun train karte hain?
Agar shuruaat mein weak ho, toh aasani se discriminate kar sakta hai. update karne se pehle ko near-optimality par train karna ensure karta hai ki ko strong, meaningful gradient signals milein. Warna ko poorly-trained se weak feedback milta hai.
Fixed generator ke liye optimal discriminator kya hai?
. Yeh Bayes-optimal probability hai ki real data se aaya hai. Jab , har jagah (distinguish nahi kar sakta).
Generator training ke liye kyun use karte hain ki jagah?
Dono ka same optimal point hai, lekin jab confidently fakes reject karta hai (), vanishing gradients deta hai. large gradients deta hai jab confident hota hai, strong learning signal provide karta hai jab weak ho.
GANs mein mode collapse kya hai?
Generator saare (ya zyaatar) noise inputs ko outputs ke chhote subset mein map kar deta hai, real data ki poori diversity cover karne mein fail ho jaata hai. Example: sirf kuch types ke faces generate karna poori variety ki jagah. Hota hai kyunki ki weaknesses exploit karta hai bajaaye poori distribution seekhne ke.
GAN objective optimality par kaunsa divergence minimize karta hai?
Jensen-Shannon divergence (JSD) aur ke beech. Objective hai . JSD symmetric hai, bounded hai, aur 0 sirf tab reach karta hai jab distributions exactly match karein.

GANs mein non-convergence problem kya hai? :: aur losses bina stabilize hue oscillate karte hain. Single loss wali supervised learning ki tarah nahi, GANs ek minimax game solve karte hain—ek ka improvement doosre ka degradation hai. Gradient field mein rotational components hote hain, fixed point par convergence ki jagah orbiting hoti hai.

DCGAN architecture mein pooling ki jagah strided convolutions kyun use karte hain?
Pooling (max-pool, avg-pool) information deterministically lose karta hai bina kisi learnable parameters ke. Strided convolutions seekhte hain ki kaise downsample karna hai, poore training mein gradients provide karte hain aur spatial information better preserve karte hain.
Discriminator ReLU ki jagah LeakyReLU kyun use karta hai?
Standard ReLU negative inputs ko zero kar deta hai, dead neurons banata hai jo zero gradient dete hain. LeakyReLU ( jahan ) negative values ke liye chhota gradient allow karta hai, saare neurons ko active rakhta hai aur discriminator mein gradient flow ensure karta hai.
GAN equilibrium (global optimum) par kya hota hai?
(generator distribution real data se match karti hai), saare ke liye (discriminator real aur fake distinguish nahi kar sakta), aur (Nash equilibrium par value function).
Generator gradient discriminator ke through backpropagate karna kyun zaroori hai?
compute karne ke liye chain rule chahiye: . Humein chahiye jo ke forward pass se aata hai, isliye hum ke through backprop karte hain (lekin sirf update karte hain).

Concept Map

input to

produces

input to

input to

outputs probability real

tries to fool

maximizes

minimizes

defines

converges to

means

Random noise z

Generator G

Fake samples

Real data pdata

Discriminator D

D x in 0-1

Value function V G,D

Minimax game

Equilibrium D=0.5

Samples indistinguishable