The Math Behind Generative Adversarial Networks Clearly Explained!

แชร์
ฝัง
  • เผยแพร่เมื่อ 8 มิ.ย. 2024
  • GAN is considered as one of the greatest breakthroughs in the field of Artificial Intelligence. In this video, I've tried my best to explain the core concepts of GANs.
    #GANs #deeplearning #machinelearning
    For more videos please subscribe -
    bit.ly/normalizedNERD
    Support me if you can ❤️
    www.paypal.com/paypalme2/suji04
    www.buymeacoffee.com/normaliz...
    Original paper -
    arxiv.org/pdf/1406.2661.pdf
    Some good resources
    - towardsdatascience.com/the-ma...
    - medium.com/analytics-vidhya/g...
    - en.wikipedia.org/wiki/Generat...
    Facebook -
    / nerdywits
    Instagram -
    / normalizednerd
    Twitter -
    / normalized_nerd

ความคิดเห็น • 165

  • @KaniskaM-yg9wq
    @KaniskaM-yg9wq 3 วันที่ผ่านมา

    This is the Best resource fo gan i've come across so far. Very detailed explanation with complicating the terms. You are a life saver! . thank you

  • @ruju-tt5sy
    @ruju-tt5sy หลายเดือนก่อน +1

    Truly an exceptional and informative video! Literally made me understand the concept very well!!

  • @vijayshankar102
    @vijayshankar102 3 ปีที่แล้ว +18

    This is a well made and well explained video, one can be extremely grateful to you for this

  • @sharvani_0779
    @sharvani_0779 3 หลายเดือนก่อน +1

    This video is a perfect and most explanatory video on this topic, absolutely love it.

  • @bhattbhavesh91
    @bhattbhavesh91 2 ปีที่แล้ว +5

    Hey Sujan, I just started learning GANs and I happen to stumble upon your video & your channel ! Great work :) You have a bright future ahead :)

  • @adarshsharma8039
    @adarshsharma8039 หลายเดือนก่อน

    This is exactly what I wanted. Your explanation was amazing and very clear.

  • @marinafuster7005
    @marinafuster7005 7 หลายเดือนก่อน +1

    I almost never leave comments... this is an amazing summary of the mathematical aspect and quirks of the paper. Thank you!

  • @rivetinggull2596
    @rivetinggull2596 3 ปีที่แล้ว +1

    Thank you! Very well explained. Mentioned all the underlying mathematical concepts on which GAN is based on.

  • @FRANKONATOR123
    @FRANKONATOR123 2 ปีที่แล้ว +1

    Such a good explanation, man! Thank you so much!!

  • @diby4283
    @diby4283 3 หลายเดือนก่อน

    I'm really thankful. Great explanation!

  • @nch77884
    @nch77884 10 หลายเดือนก่อน

    Great explanation for something as complex as GAN.

  • @yashmore3525
    @yashmore3525 3 ปีที่แล้ว +7

    This is a great explanation! I'd love to see more in depth videos! If you could cover autoencoders that'd be really cool too!

    • @NormalizedNerd
      @NormalizedNerd  3 ปีที่แล้ว +1

      Thanks! I have one for autoencoders:
      th-cam.com/video/m2AyljDHYes/w-d-xo.html

  • @gamerbattle2554
    @gamerbattle2554 3 ปีที่แล้ว

    The first well explained GAN I've ever seen, thanks

  • @cs2466
    @cs2466 2 ปีที่แล้ว

    Thanks for the great effort in making the videos. God bless you

  • @mitalihalder1
    @mitalihalder1 3 ปีที่แล้ว +2

    Amazing.. Just no words. Standing ovation to you.

  • @shashanksharma21
    @shashanksharma21 2 ปีที่แล้ว

    Incredibly well made !

  • @petsart3792
    @petsart3792 4 ปีที่แล้ว +1

    Thanks for explaining this advanced topic!

    • @NormalizedNerd
      @NormalizedNerd  4 ปีที่แล้ว

      Glad you liked it. Keep supporting the channel :D

  • @parisdettorre3008
    @parisdettorre3008 8 หลายเดือนก่อน

    Congratulation....one of best marh explanations of GAN ever🎉🎉

  • @OmerBoehm
    @OmerBoehm 3 ปีที่แล้ว +1

    Brilliant presentation - simplifies the math using intuitive explanations and examples (same for the video about the binary cross entropy ) - thank you for this

  • @vivekkandeyang6175
    @vivekkandeyang6175 2 ปีที่แล้ว

    Thanks for such a great explanation

  • @sefika9825
    @sefika9825 3 ปีที่แล้ว

    Very informative. Thanks for this clear explanation!

  • @archiexzzz
    @archiexzzz 20 วันที่ผ่านมา

    was very easy to understand. thank you

  • @arshamafsardeir2692
    @arshamafsardeir2692 ปีที่แล้ว

    Good explanation. Thank you!

  • @jourytasnim7107
    @jourytasnim7107 2 ปีที่แล้ว

    you deserve Best explanation award

  • @nitinkumarmittal4369
    @nitinkumarmittal4369 3 ปีที่แล้ว +1

    Thank you for posting this!

  • @wolfywolfgang2498
    @wolfywolfgang2498 2 ปีที่แล้ว +1

    Woah !!!! I consider myself bad at math, but this video was like a hot knife in my dense but butterish brain! thank you !

  • @Lena-of7wd
    @Lena-of7wd 3 ปีที่แล้ว +15

    This is the best explanation I’ve found on GANs, thank you!! I’m currently training a DCGAN, however in terms of theory, are there any differences between DCGAN vs GAN as from my understanding, the difference is DCGAN utilizes deep convolution networks and GAN utilizes fully connected layers, however is the theory described in this video also applied to DCGAN? Thanks for your help, appreciate it!

    • @NormalizedNerd
      @NormalizedNerd  3 ปีที่แล้ว

      Yeah, same theory. As you correctly mentioned, just replace fully connected layers with conv and pooling layers.

  • @MovieTheater69
    @MovieTheater69 11 หลายเดือนก่อน

    Great work thank you very very much❤

  • @olympics3948
    @olympics3948 11 หลายเดือนก่อน

    Great job!!

  • @demoredemore933
    @demoredemore933 2 ปีที่แล้ว

    Wow wow Thank you! Well explained.

  • @amirhosseinboreiri3360
    @amirhosseinboreiri3360 2 ปีที่แล้ว

    Wow.this was very educational.
    Please make more videos on gans.

  • @johntzimiskes1480
    @johntzimiskes1480 ปีที่แล้ว

    Very nice explanation

  • @Rajkumar-sm6bi
    @Rajkumar-sm6bi 3 ปีที่แล้ว

    Great, dont stop! Keep making such nice videos.

  • @amisha4891
    @amisha4891 21 วันที่ผ่านมา

    Outstanding content

  • @theupsider
    @theupsider 2 ปีที่แล้ว

    Amazing video man!

  • @utsavbandyopadhyaymaulik9006
    @utsavbandyopadhyaymaulik9006 ปีที่แล้ว

    Clear mathematical explanation

  • @porku5059
    @porku5059 ปีที่แล้ว

    This was a fantastic video, Im might actually pass my class now!

  • @alexandermoralespanitz8772
    @alexandermoralespanitz8772 3 ปีที่แล้ว

    Excelent video!

  • @casualcomputer6544
    @casualcomputer6544 2 ปีที่แล้ว

    Best explanation ever!

  • @TheAcujlGamer
    @TheAcujlGamer 3 ปีที่แล้ว

    Loved that intro 👌

  • @stanislavzamecnik3049
    @stanislavzamecnik3049 3 ปีที่แล้ว

    Extremely good explanation!!!!

  • @mk-wh6mv
    @mk-wh6mv 3 ปีที่แล้ว

    Great Explanation!!

  • @goldfishjy95
    @goldfishjy95 3 ปีที่แล้ว

    This is so.. GOOD! Thank you so much!!!!

  • @ahmadatta66
    @ahmadatta66 2 ปีที่แล้ว

    thank you. Great explanation

  • @RambutanLaw
    @RambutanLaw 3 ปีที่แล้ว +16

    I like how he pronounce "z" as "zed" but "G of Z" as "G of zee".

    • @yashbhambhu6633
      @yashbhambhu6633 2 ปีที่แล้ว +4

      I present you the indian english : )

    • @jourytasnim7107
      @jourytasnim7107 2 ปีที่แล้ว +1

      focus on the message he is explaining not the pronunciation

  • @greenufo_0108
    @greenufo_0108 4 ปีที่แล้ว +2

    Dude. Awesome!! Literally you explain better than medium "how to"'s :) expecting awesome content

    • @greenufo_0108
      @greenufo_0108 4 ปีที่แล้ว

      Nice explanation next lets create a neuro network from scratch

    • @NormalizedNerd
      @NormalizedNerd  4 ปีที่แล้ว

      @Green UFO_010 thank you man! Yeah more interesting videos are on the way. Keep supporting :D

    • @NormalizedNerd
      @NormalizedNerd  4 ปีที่แล้ว

      Neural Network from scratch is definitely in my bucket list!

  • @stevea8201
    @stevea8201 3 ปีที่แล้ว

    Really nice, I really like the part at 11:52, made that part so much easier to understand with that visual example

  • @DungPham-ai
    @DungPham-ai 4 ปีที่แล้ว

    great job ! thank so much

    • @NormalizedNerd
      @NormalizedNerd  4 ปีที่แล้ว

      @Dung Pham You're welcome! Support this channel for more videos :D

  • @staffankonstholm3506
    @staffankonstholm3506 3 ปีที่แล้ว

    You are my favorite person on the internet right now

  • @mdnahiduzzaman2719
    @mdnahiduzzaman2719 2 หลายเดือนก่อน

    Spectacular

  • @aszelsceznyk8220
    @aszelsceznyk8220 2 ปีที่แล้ว

    Awesome explaination

  • @alaa.abuqtaish
    @alaa.abuqtaish ปีที่แล้ว

    Thank you

  • @rakshitverma5016
    @rakshitverma5016 3 ปีที่แล้ว

    great video!

  • @ChandraPrakash-yj4vx
    @ChandraPrakash-yj4vx หลายเดือนก่อน

    Thanks Man

  • @KUMAR-ne2mb
    @KUMAR-ne2mb 2 ปีที่แล้ว

    It was great explanation

  • @sulemanshehzad6205
    @sulemanshehzad6205 3 ปีที่แล้ว

    Amazing, keep up the good work (y)

  • @user-cc8kb
    @user-cc8kb 3 ปีที่แล้ว

    Cool video, thank you very much :)

  • @muhammadwaseem_
    @muhammadwaseem_ ปีที่แล้ว

    Why is your channel so underrated ?!!!

  • @theankitkurmi
    @theankitkurmi 4 ปีที่แล้ว +2

    Nicely explained.
    Do make a playlist of regression classification nlp deep learning so that we can easily follow up.
    Great job 👌👌👌

    • @NormalizedNerd
      @NormalizedNerd  4 ปีที่แล้ว

      Thanks!
      Actually, I have playlists for NLP, ML from scratch. Will try to make one for Deep Learning.

  • @onlyumangsri
    @onlyumangsri 9 หลายเดือนก่อน

    Very well explained.
    Can you once try gan inversion as well?

  • @jamesang7861
    @jamesang7861 3 ปีที่แล้ว

    Thank you!

  • @teetanrobotics5363
    @teetanrobotics5363 3 ปีที่แล้ว +2

    Amaizng video bro..Could you please make a playlist for Deep learning(include this video) and/or reinforcement learning.

    • @NormalizedNerd
      @NormalizedNerd  3 ปีที่แล้ว

      Ok I'll try to create a playlist.

  • @tanmoym6241
    @tanmoym6241 ปีที่แล้ว

    Nice tutorial. Which software you are using for writing on the board here ?

  • @mithilgaonkar7676
    @mithilgaonkar7676 ปีที่แล้ว

    Well, thanks for the transfer learning🤭... You have explained it in a very crisp manner.. Keep up the good work 👍

  • @alexandrakogan2840
    @alexandrakogan2840 3 ปีที่แล้ว +1

    Thank you so much for this video! *I think the JS divergence equation needs a second ln sign after ...+1/2 Ex pg ? The equation appears at 12:53. Thank you again!

    • @NormalizedNerd
      @NormalizedNerd  3 ปีที่แล้ว +1

      Oh...You are right. I forgot the ln sign. Thanks for pointing this out :D

    • @alexandrakogan2840
      @alexandrakogan2840 3 ปีที่แล้ว +1

      @@NormalizedNerd Great, just wanted to make sure I understood this correctly :)) Thank you!!

  • @bSharpHacker
    @bSharpHacker 3 ปีที่แล้ว

    Great video, thanks! The label of 0 for the reconstructed image. Is that correct? According to another reference I have, it should set the labels to 1 to fool the discriminator into thinking the image is real? Edit, my bad. Yes, you are correct, feeding y = 0 into the discriminator is correct. The label 1 is then used to train the generator :)

  • @lcslima45
    @lcslima45 2 ปีที่แล้ว

    How do you get the equation of binary cross entropy from the cross entropy definition?

  • @quocanhnguyen7275
    @quocanhnguyen7275 2 ปีที่แล้ว

    SOOO GOOOD

  • @alexvajith6337
    @alexvajith6337 ปีที่แล้ว

    Hey buddy / guru ! Great Lecture in as simple form as possible.
    I really appreaciate your effort in making this video.
    Am actually learning this lecture a day before my uni exam about a subject whuch is remotely connected to it. I would be humbled to know how you prepared this video by going throuh that Research Paper

    • @NormalizedNerd
      @NormalizedNerd  ปีที่แล้ว

      Thanks a lot!
      This one took a lot of reading. Not only the paper itself but blogs on this topic. And of course a lot of googling as I didn't know a few mathematical tools.

    • @alexvajith6337
      @alexvajith6337 ปีที่แล้ว

      @@NormalizedNerd i dmed you in twitter

  • @10xGarden
    @10xGarden 4 ปีที่แล้ว

    wow, gan er gan beregelo amar thanks for that.

  • @RamanKumar-dh8iu
    @RamanKumar-dh8iu 2 หลายเดือนก่อน

    🎯 Key Takeaways for quick navigation:
    00:00 *🧠 Overview of Generative Adversarial Networks (GANs)*
    - GANs consist of two models: a generative model (G) and a discriminative model (D).
    - Generative models learn the joint probability distribution of input and output variables, while discriminative models learn the conditional probability of the target variable given the input variable.
    - GANs use an adversarial setup where the generator produces fake data points, and the discriminator distinguishes between real and fake data, leading to both models improving over time.
    02:13 *📊 Structure and Components of GANs*
    - GANs consist of multi-layered neural networks representing the generator (G) and discriminator (D).
    - Theta G and theta D represent the weights of the respective networks.
    - GANs utilize a noise distribution as input to the generator to produce data points similar to the original distribution.
    05:26 *🔢 Understanding the Value Function of GANs*
    - The value function represents the objective of G (minimize) and D (maximize) in the GAN setup.
    - The value function resembles the binary cross-entropy function, crucial for training GANs.
    - Expectation (E) is used to calculate the average value over the entire dataset, essential for continuous distributions.
    08:37 *🔄 Training Process and Optimization of GANs*
    - GAN training involves an iterative process where the generator and discriminator alternate updates.
    - Stochastic gradient descent is used to optimize the loss function.
    - The discriminator is updated to maximize the value function, while the generator is updated to minimize it.
    10:42 *🎯 Convergence and Guarantee of GANs*
    - The goal is to prove that the generator's distribution converges to the original data distribution.
    - Jensen-Shannon divergence is a method used to measure the difference between two distributions.
    - At the global minimum of the value function, the generator's distribution becomes indistinguishable from the original data distribution.
    14:48 *⚙️ Phases of GAN Training*
    - GAN training progresses through phases where initially, both generator and discriminator perform poorly.
    - As training continues, the discriminator becomes adept at distinguishing real and fake data, while the generator's distribution approaches that of the original data.
    - At convergence, the discriminator cannot differentiate between real and generated data, achieving the desired outcome.
    Made with HARPA AI

  • @victitova3811
    @victitova3811 2 ปีที่แล้ว

    Thank you very much for the video! Can someone help me and explain why 1 - was dropped at 12:30

  • @felixz7273
    @felixz7273 3 ปีที่แล้ว

    Thanks! Wonderful explanation. But it seems that 9:58 needs to adding a sum sign in front of the square brackets.

    • @NormalizedNerd
      @NormalizedNerd  3 ปีที่แล้ว

      The summation is taken care by the inner loop

  • @anonymousvector729
    @anonymousvector729 3 ปีที่แล้ว +1

    Amazing video. I'm still confuse that what is difference between normal GAN vs GAN CLS? Can you explain a little bit

    • @NormalizedNerd
      @NormalizedNerd  2 ปีที่แล้ว +1

      In GAN CLS, the input is a sentence vector + some noise. In normal GAN it's just noise.

    • @anonymousvector729
      @anonymousvector729 2 ปีที่แล้ว

      @@NormalizedNerd would love to see your video on GAN vs GAN CLS if you make one.

  • @danielnenov3882
    @danielnenov3882 2 ปีที่แล้ว +1

    Do you provide personal lessons? @normalized nerd

  • @MmmD-jv4ec
    @MmmD-jv4ec 2 หลายเดือนก่อน

    Awesome explanation thank you very much. Subscripted

  • @user-qg8kx6xe6z
    @user-qg8kx6xe6z 9 หลายเดือนก่อน

    What about the sign he told us to forget? should it not be considered at the end? why?

  • @pouryapouryeganeh4280
    @pouryapouryeganeh4280 3 ปีที่แล้ว

    thanks bro

  • @harshraj22_
    @harshraj22_ 3 ปีที่แล้ว

    Hey ! What does it mean, when people say, data points/ images/ texts (on which we train our model) belong to a distribution ? What is its inuitive meaning about belonging to a distribution and how are they sure about the real life data belonging to a distribution ?

    • @NormalizedNerd
      @NormalizedNerd  3 ปีที่แล้ว +1

      I really liked your question. So here's the thing...
      I hope you are comfortable with the distributions in 1 or 2 dimensions e.g. distribution of height and weight of a population. Now imagine we are talking about images. Can we represent an image with 1 or 2 dimensions? No. For a 256px*256px RGB image we need 256*256*3 dimensions. Suppose you have 1000 such images of flowers. Now you can plot the pixel values in each dimension right? If you do this for 1000 images you will get the pixel distribution or simply the distribution of your dataset. Then the goal of your ML model will be to capture this distribution.
      I talked about pixels but the idea can be used in words (text data) also.
      And something belonging to a distribution means it follows (looks similar) the training dataset. Obviously in Statistics we can mathematically say if something belongs to a distribution or not. But intuitively it means "looks similar".

  • @TejasPatil-fz6bo
    @TejasPatil-fz6bo 3 ปีที่แล้ว

    Would like to see Use of Regularization functions/terms in loss function through equations....Plz make VDO on this

    • @NormalizedNerd
      @NormalizedNerd  3 ปีที่แล้ว

      Btw I talked about l1, l2 regularization a bit here: th-cam.com/video/FiSy6zWDfiA/w-d-xo.html

  • @sourabhbhattacharya9133
    @sourabhbhattacharya9133 2 ปีที่แล้ว

    sera porali bhai

  • @SJ23982398
    @SJ23982398 2 ปีที่แล้ว

    What would really help is if you add links to your videos if some concepts in a video have been discussed more in depth. So if I don't understand some concept that is glossed over here I can scroll down and click the video that explains it in more depth.

  • @HappinessYata
    @HappinessYata 11 หลายเดือนก่อน +1

    I didn't manage to understand starting from Binary Crossentropy Function :(

  • @subratswain6775
    @subratswain6775 2 ปีที่แล้ว

    What platform you're using for the videos?

    • @NormalizedNerd
      @NormalizedNerd  2 ปีที่แล้ว +1

      For this video I used Microsoft OneNote

    • @subratswain6775
      @subratswain6775 2 ปีที่แล้ว

      @@NormalizedNerd no for the animation

    • @NormalizedNerd
      @NormalizedNerd  2 ปีที่แล้ว +1

      @@subratswain6775 For the animations I use manim (open source python library)

    • @subratswain6775
      @subratswain6775 2 ปีที่แล้ว

      @@NormalizedNerd can you send the installation steps. I tried to create but couldn't

    • @NormalizedNerd
      @NormalizedNerd  2 ปีที่แล้ว

      @@subratswain6775 I'll suggest you to follow youtube tutorials for installing manim. It's not very easy to set up.

  • @gisellerodrigues571
    @gisellerodrigues571 4 ปีที่แล้ว

    So I heard someone saying it's easier for the discriminator to predict a fake data than It is for the generator to create a fake data who could pass as original.
    That would make the system unbalaced.
    Is It true and If so, Is there a way to fix It?

    • @NormalizedNerd
      @NormalizedNerd  4 ปีที่แล้ว +1

      @Giselle Rodrigues Yes, it is true especially at the initial stages of the training. As a matter of fact, GANs are very unstable. It generally requires a lot of trial and error to find the best architecture (and other hyper-parameters) for a given dataset. But luckily, researchers have found some ways to improve the training. Here, you can find some of them.
      machinelearningmastery.com/how-to-train-stable-generative-adversarial-networks/

    • @gisellerodrigues571
      @gisellerodrigues571 4 ปีที่แล้ว

      @@NormalizedNerd thank you for the reply!!! I wasn't expecting It to be so fast! Haha
      I am gonna read It and maybe come back with more questions. Hahaha

    • @NormalizedNerd
      @NormalizedNerd  4 ปีที่แล้ว

      Haha. Sure. Keep supporting.

  • @Menor55672
    @Menor55672 3 ปีที่แล้ว +1

    what whiteboard software is that ?

  • @abhijeetsingh724
    @abhijeetsingh724 ปีที่แล้ว

    Killer!!

  • @sandipandhar4143
    @sandipandhar4143 4 ปีที่แล้ว +2

    Good initiative but very similar to Ahlad Kumar's explanation.

    • @NormalizedNerd
      @NormalizedNerd  4 ปีที่แล้ว

      Thanks for your feedback. I actually didn't know about that.

  • @jonsnow9246
    @jonsnow9246 3 ปีที่แล้ว

    Do you use tablet to make these notes?

  • @adityarajora7219
    @adityarajora7219 2 ปีที่แล้ว

    9:29 in gradient update part, why would generator try to make good images.....as D(g(z)) will be close to zero imples nothing to learn for generator...I dint get ascent and descent at all from any video

  • @jrt6722
    @jrt6722 11 หลายเดือนก่อน

    Sorry please teach me, I don’t understand how the function V(G,D) corresponds to the loss of generator and discriminator…

    • @adityakushal8905
      @adityakushal8905 3 หลายเดือนก่อน

      V(G, D) is total loss of the model(fake image loss + real image loss), u then do partial derivation with respect to generator and discriminator

  • @vinuvs4996
    @vinuvs4996 ปีที่แล้ว

    mathematically convincing

  • @chadgregory9037
    @chadgregory9037 2 ปีที่แล้ว

    AWW, I'm disappointed..... 22,322 views...... so close to 22,222 =]

  • @jan.kowalski
    @jan.kowalski 2 ปีที่แล้ว

    "geee izz da virgin ass" lol

  • @henrrymendoza
    @henrrymendoza ปีที่แล้ว

    It's not clear why you replace p_z(z) by p_g(x) when showing global optimality. x and z are on a different space.

    • @buihung3704
      @buihung3704 7 หลายเดือนก่อน

      correct, i still don't get this part, how can he do that? it's true that they can have the same range of values (both are images with same width x height dimension) but that doesn't mean they can swapped each other's places?

  • @madhuvarun2790
    @madhuvarun2790 3 ปีที่แล้ว

    at 0.22, you pronounced content wrong. sound of "con" in content should be like "con" in con man

  • @garyzhai9540
    @garyzhai9540 ปีที่แล้ว +1

    I believe the presenter is knowledgeable. However, some details are not well explained and not consistent, such as 11:46, he mentioned that this formula and there is no intuitive explanation, as this type of TH-cam presentation is for the general public who has no in-depth of understanding of either maths or deep-learning.

  • @banerz
    @banerz 2 ปีที่แล้ว

    Apni ki Bengali?

    • @NormalizedNerd
      @NormalizedNerd  2 ปีที่แล้ว +1

      হ্যাঁ 😌

    • @banerz
      @banerz 2 ปีที่แล้ว

      Ek bangali e arakbangalir kotha sune bujde pare. Anyway cheers mate

  • @prantikpaul8796
    @prantikpaul8796 ปีที่แล้ว

    One doesn't become cool by repeating the phrase - "What the hell is that?"

    • @banquo4223
      @banquo4223 ปีที่แล้ว

      one doesnt become cool by being a hater either but look where we are prantik

  • @taigagaming3462
    @taigagaming3462 ปีที่แล้ว

    speak slowly my dude. Noone is chasing you.