Deep Learning Academy · Oppitunti

Laskekaa pienen verkon backpropagation käsin

Laskekaa gradientit paperilla ja varmistakaa ne koodissa

Oppitunti 3/413 vaihetta

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 * x

Lisä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) ** 2

Eteenpä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 = x

Yhdistetää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_dw

Tulkitaan 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_dw

Varmistetaan 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. ✏️

Aloita maksutta

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

  1. Ketjusääntö kerros kerrokselta
  2. Forward-vaiheen välimuistit, backward käyttää niitä uudelleen
  3. Laskekaa pienen verkon backpropagation käsin
  4. Häviävät ja räjähtävät gradientit
← Takaisin: Deep Learning Academy