Laskekaa pienen verkon backpropagation käsin
Laskekaa gradientit paperilla ja varmistakaa ne koodissa
Laskekaa pienen verkon backpropagation käsin on ilmainen Deep Learning Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Deep Learning Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Deep Learning Academy-kurssilla on yhteensä 4 oppituntia.
Pieni verkkomme
Jäljitetään käsin pienin mahdollinen verkko: yksi syöte x, yksi paino w eikä vakiotermiä. Tulos on yksinkertaisesti y = w kertaa x. Se on tarpeeksi pieni paperilla laskettavaksi.
y = w * xLisätään yksinkertainen tappio
Vertaamme tulosta tavoitearvoon t neliövirheen avulla. Tämä tappio rankaisee kaukana tavoitearvosta olevista tuloksista, ja sen derivaatta on helppo laskea käsin.
loss = (y - t) ** 2Eteenpäin luvuilla
Sijoitetaan x = 2, w = 3 ja t = 10. Eteenpäinlaskenta antaa y = 6 ja tappion = (6 - 10) toiseen potenssiin = 16. Nyt etenemme taaksepäin löytääksemme dloss/dw:n.
Vaihe yksi: tappiosta tulokseen
Ensimmäinen lenkki: miten tappio muuttuu y:n muuttuessa? Funktion (y - t) toiseen potenssiin derivaatta on 2(y - t), joka tässä on 2 kertaa (6 - 10) = -8.
dloss_dy = 2 * (y - t)Vaihe kaksi: tuloksesta painoon
Toinen lenkki: miten y muuttuu w:n muuttuessa? Koska y = w kertaa x, dy/dw on yksinkertaisesti x, joka esimerkissämme on 2.
dy_dw = xYhdistetään kaksi lenkkiä
Ketjusääntö kertoo lenkit keskenään: dloss/dw = dloss/dy kertaa dy/dw = -8 kertaa 2 = -16. Tämä yksi luku on gradienttimme.
dloss_dw = dloss_dy * dy_dwTulkitaan gradientin merkki
Negatiivinen gradientti tarkoittaa, että w:n kasvattaminen pienentäisi tappiota. Siksi w:tä kannattaa kasvattaa hieman, jotta tulos olisi seuraavalla kerralla parempi.
Tehdään yksi päivitysaskel
Kun oppimisnopeus on 0.1, päivitys on w = w - 0.1 kertaa (-16) = 3 + 1.6 = 4.6. Paino siirtyi parempaa arvoa kohti.
w = w - lr * dloss_dwVarmistetaan parannus
Tehdään eteenpäinlaskenta uudelleen arvolla w = 4.6: y = 9.2 ja tappio = (9.2 - 10) toiseen potenssiin = 0.64. Se on selvästi pienempi kuin 16, joten askel todella auttoi.
Tarkistetaan PyTorchilla
PyTorch saa saman gradientin automaattisesti. Asettakaa w:lle requires_grad, suorittakaa eteenpäinlaskenta, kutsukaa backward ja lukekaa w.grad, jolloin näette arvon -16.
w = torch.tensor(3.0, requires_grad=True)
loss = (w * 2 - 10) ** 2
loss.backward()
print(w.grad)Samat vaiheet, suuremmat verkot
Miljoonan painon verkko toimii täsmälleen samoin, siinä on vain enemmän yhteen ketjutettuja lenkkejä. Käsin tekemänne matematiikka skaalautuu suoraan suurempiin verkkoihin.
Pikatarkistus
Tarkistetaan käsin tekemänne jäljitys.
Kertaus
Jäljitteitte pientä verkkoa: ensin eteenpäin arvot, sitten taaksepäin paikallisia derivaattoja kertomalla gradientin löytämiseksi ja lopuksi yksi tappioita pienentävä päivitysaskel. ✏️
Opi Python tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 30
- Oppitunnit
- 120
Usein kysytyt kysymykset
Onko oppitunti ”Laskekaa pienen verkon backpropagation käsin” ilmainen?
Kyllä – oppitunnin ”Laskekaa pienen verkon backpropagation käsin” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Deep Learning Academy-kurssin, päivitä CoddyKit PROhon. Deep Learning Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Laskekaa pienen verkon backpropagation käsin”?
Laskekaa gradientit paperilla ja varmistakaa ne koodissa Harjoittelet Deep Learning Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Deep Learning Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Deep Learning Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Laskekaa pienen verkon backpropagation käsin”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Deep Learning Academy-oppitunnilla?
Kyllä. Jokainen Deep Learning Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Ketjusääntö kerros kerrokselta
- Forward-vaiheen välimuistit, backward käyttää niitä uudelleen
- Laskekaa pienen verkon backpropagation käsin
- Häviävät ja räjähtävät gradientit