BACKPROPAGATION algorithm. How does a neural network learn ? A step by step demonstration.

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 ต.ค. 2024
  • It is my first video in English I hope it is ok. I will start to do on my TH-cam channel more expert video in English.
    In this first video we details the backpropagation algorithm, really used in Deep Learning to train supervised neural network.
    Instagram : / defend.intelligence
    Twitter : / dfintelligence
    The Blog Post of Matt Mazur : mattmazur.com/...

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

  • @sawmill035
    @sawmill035 2 ปีที่แล้ว +22

    I actually kind of laughed at around 1:38 when he was like "All you need to know is addition, subtraction, multiplication
    ...
    and partial derivatives."
    Lol, you really had all those 3rd graders in the first half, not gonna lie.

  • @Tomcatdude1
    @Tomcatdude1 2 ปีที่แล้ว +16

    For anyone in the future trying to look for how todo backprop easily:
    For the first set of weights, we use -(expected - given) * (given * (1 - given)) * output of previous node. expected and given in respect to this video would be values using o2 or o1 (depending on which weight you're working on), and output of previous node in this would be output of j2 or j1 (again depending on which weight it's attached to). This is our final gradient, so we can multiply this by the learning rate and subtract that from the weight to get our updated weight.
    For the rest of the weights in any hidden layer: We take the two (-(expected - given) * (given * (1 - given))) we just computed in step 1 and multiply them by the two weights they were used to update(so if we're updating w4 we use the two weights connected to j2). We then multiply this by (given * (1 - given)) for the given value after the activation function (so for w4 we'd use the output of j2 for given). Finally, we multiply this by the input the current weight is affecting (so for w4, we'd use i2). This is our final gradient, so we can multiply this by the learning rate and subtract that from the weight to get our updated weight.

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

    Thanks man! This is the final thing I needed to really put the pieces together and see how backpropagation works!

  • @amanpreetchander7386
    @amanpreetchander7386 4 วันที่ผ่านมา

    It was really helpful. I was really searching for a video having mathematics explained nicely.

  • @Dhanush-zj7mf
    @Dhanush-zj7mf 4 ปีที่แล้ว +14

    I spotted two mistakes but please tell me if I am wrong . At 10:51 "dEo1/d(out o1)" should be "0.80-0" (which is the output_produced-desired_output) which evaulates to 0.80 and you wrote "-0.18" in that place so please once check it and tell me if I am wrong😊😊

    • @Coder-0
      @Coder-0 ปีที่แล้ว

      I believe you are both wrong you were on the right track though at 6:42 it says desired output-produced output (t-a).

    • @Dhanush-zj7mf
      @Dhanush-zj7mf ปีที่แล้ว

      ​@@Coder-0you forgot to apply chain rule. You r Diffententing wrt a. You have t-a inside so you should multiply by -1.

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

    in the Compute 02 line in the formula there should be w7 instead of w5 and w8 instead of w6. Regards Slawek

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

    Thank you very much for this great video! I have watched a lot of videos before finally landing on this video. Unfortunately all others have seemed to just shy away from explaining the real math behind back-propagation. They just cover the basic idea or update the weight for the output layer only. This is the first video I have seen that explains the actual math in updating the hidden layers too.

  • @gabupouet4221
    @gabupouet4221 4 ปีที่แล้ว +19

    C'est vraiment dommage, je suivais cette chaine pour le simple fait que c'était en français. Des trucs en anglais sur le sujet, il y en a par tonne.

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

      Hello ! Pas de crainte, je vais continuer en français je voulais juste tenter l'expérience sur ce sujet précis :).

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

      @@DefendIntelligence , je vous en remercie beaucoup

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

      @@DefendIntelligence Et du coups, tu peux la refaire en français ?

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

      Ça fait travailler l anglais la prononciation est bien mais bon quand on part de loin c est vrai que le français 😅😅 c est plus pratique

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

    9:06 There should be 0.61 instead of 0.52

  • @nasgaroth1
    @nasgaroth1 3 ปีที่แล้ว +6

    There is at least one mistake, but as overall how its work is quite good presented. In sake of correctness you should check number once again. In w dIno2 / dW8 you wrote 0.61 but in dEtotal /dW8 you wrote 0.52. Best regards

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

      Nobody cares about the results, if the formula is correct

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

      I care about the results. I want to do it all on paper so I can confirm the results went I rewrite it to code.

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

      yes exactly. also bugs me when the result i get are different than the video. @@FPChris

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

    Great video! I wrote a Python project to carry out and visualize the manipulations, for learning, from this very video.
    I think I noticed a mistake at 7:30 in the video -- I think you mean "O2" in the chain rule on the right, rather than "O1." But easy enough to account for. Again, thank you very much for this video! This is the most straight-forward description of how to apply back-propagation that I've found yet.

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

      8:55 -- Also, isn't the derivative of in(O2) just w8 itself?

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

    The forward propagation is well explained but the backpropagation isn^t. The example has errors.

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

    At 8:10 I dont follow where the -1 came from. Anyone care to shed some light?

    • @mikhailvaldaytsev5578
      @mikhailvaldaytsev5578 28 วันที่ผ่านมา

      it comes from the inner derivative of the bracket. If u derive 0,5(a-x)^2 for x, you first have to bring the 2 down, but then multiply the result with the inner derivative of (a-x), which is -1, since a is just an constant in that regard. Its called the chain rule if you want to look it up.

  • @jobrufsite2818
    @jobrufsite2818 3 ปีที่แล้ว +6

    could you please explain why you did not update the biases and how the biases are updated in back propagation?

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

    your (d out j2)/(d inp j2) value at 11:09 is wrong. See at 3:45 the value of sigmoid of j2 is 0.61. If you calculate 0.61(1 - 0.61) you will get 0.2379 instead of what you got 0.16. Please fix that. Its bugs me after calculating for so long my answer is not matching the answer in the video.

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

    Why you didn't update biases?

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

    After watching your video I was finally able to derive the equation myself .
    Thank you!

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

    a lot of mistakes 👎

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

    No labeling is confusing me with numbers only

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

    Merci Beaucoup! You really helped me out I was struggling with this for a while 😅

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

    Thanks for a helpful video.

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

    Nice video. More videos on english would be cool :)

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

    Bonjour et un grand merci pour la Vidéo, je cherchais un example vulgarisé et c'est parfait.
    Concernant les "Bias" est ce que l'on applique aussi une correction ou on ne s'occupe que des "weights" ?

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

      C'est une vielle question, mais on doit appliquer aussi une correction sur les "biases" de ce que je sais car ils influent aussi le résultat de manière importante ^^- (edit: oui c'est très important d'apporter le changement sur les biases aussi)

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

    There are mistakes in your calculations. Check again.

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

    This is great

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

    La partie simple du problème est longuement & bien expliqué , mais la backward propagation c'est vite fait mal fait. Comme si tu n'avais pas toi même compris la problématique. Tu m'as m'as plus induit en erreur qu'autre chose ...

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

    Please can you make a video on support vector machines and ROC AUC

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

    good explanation helped to understand some inner details from a basic neural network.

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

    J1 = 0.5 but diagram show 0.4976

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

    J'ai manqué un épisode ou quoi ?!
    De l'anglais !!!
    🤔Dois-je peut-être m'abonner aux chaînes de geek qui ont encore le Français comme langue de diffusion ?

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

      C’est la seule vidéo de la chaîne en anglais 😊😊

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

      ha ok j'ai eu peur 😅

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

    petite question pour le learning rate qui est de 0,8 dans la formule, tu l'a choisi par défaut ou tu l'a calculé plus tôt?

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

      Hello Théo, Non je l'ai juste choisi de manière aléatoire pour démontrer l'intérêt de l'exercice. On verra dans les prochaines vidéos comment ajuster toutes ces variables précieuses en Deep Learning (nombre de layer, nombre de neurones, epochs, learning rate etc..)

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

    Very nice!

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

    bjr , ta casser l'emniance avec l'anglais

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

    Je ne comprend rien c'est quoi e ?

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

    NICE VIDEO BRO

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

    I spent one month reading books to understand how it works as I'm bigginer and thanks to that video I got the concept in 15mn. very good job, keep on
    looking forward to learn more and apply it real world problem

  • @123Shunde321
    @123Shunde321 ปีที่แล้ว

    Super helpful, thanks 👍

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

    Salut, je crois qu'il y a juste une petite erreur sur ta diapo lorsque tu récupères la dérivée partielle de Etotal par rapport à W8. OutJ2 est de 0,61 or dans le calcul il a la valeur de W8 soit 0,52. Peut-être une incompréhension de ma part, sinon super vidéo même en anglais ! :)

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

    Thanks!

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

    mec j'ai rien compris je te jure

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

    Thanks for this amazing video!

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

    en français, je suivais mais en anglais c'est plus possible

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

    Pourquoi la faire en anglais ??? T.T

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

    Thanks for this video, but unfortunately unclear how to update bias values while training.

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

      Bias values should not be upgraded. They are here just to push the ending results towards the okayish values for outputs.
      It is the weights for biases that should be updated, and they are updated the same way the other links (I think).

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

    Excellent video

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

    thank you

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

    non mais non ! ! le but de ce sujet est complètement rater.... y'a presque pas de vidéo en français sur le sujet et y'as en des milliard en anglais !!!! fait le en français mon ami

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

      Cest la seule en anglais tu m’excusera 😅

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

      @@DefendIntelligence bien alors ....en tout cas tu fais un travail super !!!! il manque juste le français !!!

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

    At 11:13, could you explain how did you get 0.16? just the values

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

      I think he just used o1 instead of o2 there. 0.8*0.2=0.16

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

    cette video ma bien aide a comprendre BP algorithm. merci a vous!

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

    In back propagation you didn't update the bias weights. Do they stay constant throughout the whole training?

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

      No. Biases are also parameters so they should be updated.

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

    The numbers don't add up. From the graph :
    (j1 = i1. w1 + i2.w2+b1)
    'w2' corresponds to 0.13 and not 0.25.
    0.25 appended to w3, as shown in the graph.
    w5 is 0.67 and not 0.84! I have a lot of trouble understanding.

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

      Yes there is a mistake here. Consider the value in the formula :). Sorry about that.

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

    Pourquoi lors du calcul du "nouveau poids" on multiplie la dérivée par 0.80? Merci

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

      c'est le learning rate, ie la "force" avec laquelle on déplace les poids. Le gradient en lui-même n'est qu'une direction, on choisit arbitrairement cette valeur.

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

    Je ne parle pas anglais, mais étonnamment, j'ai compris ce que vous disiez !!

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

    ptdr j’ai le seum j’ai cru c’était en français

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

    mais ce n'était pas censé être une chaine en français?

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

      C'est l'unique vidéo en anglais :). Je voulais tenter une vidéo en anglais.

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

      @@DefendIntelligence svp, je travaille depuis quelques temps grace à vous sur deep learning mais j'ai quelques soucis...comment je peux vous contacter directement?

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

    Great tutorial! I wonder how do you backpropagate for bias values b1 and b2. Great job!

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

    math is wrong i the first minute....this is useless

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

    Génial c'est pile que je cherchais, les vidéos sont super propres et claires, en + du contenu en français qui + est ! bravo et merci

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

      et un subscriber de gagné ofc ^^

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

      Merci beaucoup !! Et bienvenu sur la chaine :)

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

    never make again a video in English plz

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

      Why not? Because his english is not perfect? No, its isn't. But he makes a valuable video! I loved the video.