Data processing and analysis

Back

Lecture 11

Neural networks — the working minimum

Mit csinál egy neuron, miért kell nemlinearitás, hogyan tanul a háló, és mikor NEM éri meg használni.

Start with AikoDeck49 slides · 90 min

  1. 01

    Mit csinál egy neuron

    Egy súlyozott összeg, és ami belőle következik

    Üdv. Ez a modul a neurális hálókról szól, és rögtön az elején elmondom, mit NEM fogunk csinálni: nem fogunk keretrendszert tanulni, és nem lesz benne egyetlen olyan sor sem, hogy „a modell megtanulja”. Azt fogjuk megnézni, mi történik odabent — negyven sor numpyban, amit át tudsz írni. A fekete doboz onnantól nem fekete, hogy egyszer láttad a belsejét.

  2. 02

    Egy neuron egyetlen sorban

    Súlyozott összeg, eltolás, nemlineáris függvény. A tanulás a w és a b beállítása.

    Ez az egész. A neuron veszi a bemeneteit, mindegyiket megszorozza egy súllyal, összeadja őket, hozzáad egy eltolást, és az eredményt átengedi egy függvényen. Semmi több. Ha a súlyok azt mondják, hogy a nedvesség kétszer annyit számít, mint a hőmérséklet, akkor a nedvesség súlya kétszer akkora. Az eltolás pedig azt mondja meg, hol van a döntés határa.

  3. 03

    Egy egyenes — és ami nem fér bele

    Az `nn-neuron` demó ábrája: két feladat, két hálóméret, a döntési tartományokkal.

    És itt a mérés, négy képben. A felső sorban a feladat egyenessel szétválasztható: a neuron kilencvenkilenc egész két százalékot ér el három paraméterrel. Az alsó sorban nem szétválasztható — ez a klasszikus XOR, agrár ruhában: a betegség akkor jelenik meg, ha meleg VAN és nedves VAN, vagy ha hideg van és száraz. Nézd meg a bal alsó képet. A neuron ötvenhat egész három százalékon áll, vagyis a véletlen találgatás szintjén. Nincs olyan egyenes, ami ezt kettévágja.

  4. 04

    A neuron futtatva

    Az `nn-neuron` cellája: két feladat, két hálóméret, a döntési tartományokkal.

    Itt a cella. A csavar a lépésszám: állítsd kétezerre. A kérdés a lehető legélesebb: megtanulja-e valaha az egyetlen neuron a XOR-t? A válasz nem, és nem is a lépésszámon múlik — nincs olyan egyenes, ami azt a négy pontot helyesen kettévágja. Ezt érdemes egyszer a saját szemeddel látni, mert utána nem kell elhinni.

  5. 05

    A rejtett réteg nyeresége — és ára

    Az `nn-neuron` demó mérése: 600 megfigyelés, 600 tanítási lépés.

    Ugyanaz a négy szám oszlopokban, mert így látszik a szerkezet. A szétválasztható feladaton a két oszlop majdnem egyforma — a háló nem segít. A nem szétválaszthatón viszont negyven egész nyolc százalékpont a különbség. Ez a modul első tanulsága, és egyben a 8. hét modellcsalád-létrájának a folytatása: nem az a kérdés, melyik modell erősebb, hanem hogy a feladatnak szüksége van-e rá.

  6. 06

    Hány paramétere van egy hálónak

    Súlyok plusz eltolások, rétegenként. A kétbemenetű, egy rejtett rétegű háló: 4h + 1.

    Ezt a képletet érdemes fejből tudni, mert minden hálóméretre vonatkozó vitát eldönt. Egy réteg paraméterszáma: a bemenetek száma megszorozva a neuronok számával, plusz annyi eltolás, ahány neuron. A teljes háló ezek összege. Nézd meg, mit jelent ez a mi kétbemenetű feladatunkon: h neuron esetén négy h plusz egy paraméter. Egy neuronnál öt, nyolcnál harminchárom, százhuszonnyolcnál ötszáztizenhárom. A demó kiírja mindegyiket — és pontosan ezek jönnek ki.

  7. 07

    Számold ki: hány paraméter

    Az `nn-hidden` demó hálója: 2 bemenet, 1 kimenet. A képlet 4h + 1-et ad rá.

    Három csúszka: a bemenetek száma, a rejtett réteg szélessége, a kimenetek száma. Az alapbeállítás a demónk hálója: két bemenet, nyolc neuron, egy kimenet — harminchárom paraméter. Told a rejtett réteget százhuszonnyolcra: ötszáztizenhárom. Tizenötször annyi paraméter, és a demó szerint ROSSZABB eredmény. Most told a bemenetek számát nyolcra, ahogy egy táblázatos feladatnál lenne: ugyanaz a nyolc neuron már nyolcvanegy paramétert kíván. A bemenetek száma és a rétegszélesség SZORZÓDIK — ez az, amiért a széles rétegek egymás mellett gyorsan drágulnak.

  8. 08

    Mit csinál a rejtett réteg

    Nyolc neuron nyolc egyenest húz. A kimeneti réteg már ezek kombinációját látja, nem a nyers bemenetet.

    És hogy ez ne maradjon varázslat. A rejtett réteg nyolc neuronja nyolc KÜLÖN egyenest húz meg a síkon. Egyik sem oldja meg a feladatot önmagában. A kimeneti neuron viszont már nem a nyers bemenetet kapja, hanem azt, hogy melyik egyenes melyik oldalán vagyunk — és ebből a nyolc igen-nem válaszból már össze lehet rakni a görbült határt. A mélység tehát nem misztikum: több egyenesből összerakott határvonal.

  9. 09

    Kérdés

    A lineáris modell működik. Miért váltanánk hálóra?

    Egy kollégád talajmintákból jósol hozamot lineáris regresszióval, és elfogadható eredményt kap. Azt javasolja, hogy váltsatok neuronhálóra, mert az „általánosabb”. Mi az első kérdésed?

    Question

    1. 1. Van-e olyan mintázat az adatban, amit egyenes nem tud leírni?
    2. 2. Van-e elég adat egy háló betanításához?
    3. 3. Melyik keretrendszert használnánk?

    A mérésünk pont ezt mutatta meg: a szétválasztható feladaton a háló nem javított, sőt kicsit rontott — tizenegyszer annyi paraméterért. Az adatmennyiség fontos második kérdés, de csak akkor, ha az elsőre igen a válasz. A keretrendszer pedig sosem az első kérdés.

  10. 10

    És ha csak egymásra rakjuk a rétegeket?

    Két lineáris leképezés egymás után megint lineáris. A rétegek összeolvadnak.

    Kézenfekvő ötlet, és érdemes végiggondolni, mielőtt megmérjük. Ha egy réteg keveset tud, rakjunk egymásra ötöt. Mi történik? A válasz meglepő és éles: semmi. Nem „kevesebb, mint remélnénk” — szó szerint semmi. Két lineáris leképezés egymás után megint lineáris leképezés, tehát az öt réteg összeolvad eggyé. A következő dián ezt nem levezetem, hanem megmérjük.

  11. 11

    Nyolcszáznyolcvanegy paraméter, három paraméternyi tudás

    Az `nn-linear` demó ábrája: ötrétegű lineáris, egyrétegű, és ötrétegű ReLU-val.

    Itt a mérés, három képben. Balra az ötrétegű háló nemlinearitás nélkül: nyolcszáznyolcvanegy paraméter, és a döntési határa egyetlen egyenes. Középen egyetlen réteg, három paraméterrel — ugyanaz a kép. Jobbra pedig ugyanaz az ötrétegű szerkezet, egyetlen sor különbséggel: benne van a ReLU. Kilencvenkilenc százalék.

  12. 12

    Ezért van aktivációs függvény

    A mélységet nem a rétegek száma adja, hanem a köztük lévő nemlinearitás.

    Ez a modul egyik mondata, amit érdemes megjegyezni. Az aktivációs függvény nem finomítás, nem hangolási paraméter, és nem ízlés kérdése. Enélkül a mély háló szó szerint nem létezik — akárhány réteget raksz egymásra, egyetlen egyenest kapsz. A mélységet nem a rétegek száma adja, hanem az, hogy van-e köztük valami, ami nem lineáris.

  13. 13

    Egyetlen sor különbség

    Az `nn-linear` demó mérése: ugyanaz a szerkezet, aktivációs függvénnyel és anélkül.

    Három mérés, ugyanazon az adaton, és a köztük lévő különbség egyetlen kódsor. Az ötrétegű háló aktivációs függvény nélkül nyolcszáznyolcvanegy paraméterrel ötvenöt százalékot ad. Egyetlen réteg, három paraméterrel, ötvenhét egész négyet — tehát a mély háló még valamivel rosszabb is, csak drágább. Ugyanez az ötrétegű szerkezet ReLU-val kilencvenkilenc százalék. A mélységet tehát nem a rétegek száma adja. A rétegek közötti nemlinearitás adja, és enélkül a mély háló szó szerint nem létezik: a súlymátrixok összeszorzódnak egyetlen lineáris leképezéssé, legfeljebb három ezredmilliárdnyi eltéréssel.

  14. 14

    A három aktivációs függvény — és a deriváltjuk

    A derivált a lényeg: a szigmoidé legföljebb 0,25, a ReLU-é pozitívon pontosan 1.

    Itt a három, amivel a gyakorlatban találkozol, és mellettük a deriváltjuk, mert a tanulás szempontjából AZ a fontos. A szigmoid nulla és egy közé szorít, de nézd meg a deriváltját: a maximuma egy negyed, és a szélein gyakorlatilag nulla. Ez a gradiens eltűnése. A tangens hiperbolikusz ugyanez, de nulla középpel, és a maximuma egy. A ReLU a legegyszerűbb: pozitívon önmaga, negatívon nulla — és a deriváltja pozitívon PONTOSAN egy, tehát nem tűnik el. Ezért ez lett az alapértelmezés.

  15. 15

    A mérés a saját gépeden

    Az `nn-linear` demó kimenete. Ugyanez a cella az nn_neuralis_halok.ipynb jegyzetfüzetben.

    A demó teljes kimenete. Futtasd le, és nézd meg magad a nyolcszáznyolcvanegy paramétert a három mellett. Aztán írd át a jegyzetfüzetben a rétegek számát tízre, húszra — az eltérés a számábrázolás szintjén marad, akármennyi réteget raksz egymásra. Ez az a fajta állítás, amit nem elhinni kell, hanem lefuttatni.

  16. 16

    Hogyan tanul a háló

    Egy hiba, egy irány, egy lépéshossz

    Második blokk. Eddig arról volt szó, mit SZÁMOL a háló. Most arról, hogyan találja meg a súlyokat. A dolog egyszerűbb, mint amilyennek hangzik, és egyetlen beállítás uralja az egészet — az, amelyiket a legtöbben elsőre elrontják.

  17. 17

    A tanulás köre

    Előreterjesztés → Veszteség → Visszaterjesztés → Súlylépés ↺

    A tanulás négy lépés ismétlése, és mind a négy egyszerű. Előreterjesztés: a bemenet végigfolyik a hálón, kijön egy becslés. Veszteség: egyetlen szám arról, mennyire tévedtünk. Visszaterjesztés: a láncszabály megmondja, melyik súly mennyivel felelős ezért a hibáért. Lépés: minden súlyt megmozdítunk egy kicsit a jó irányba. Aztán elölről, sokezerszer.

  18. 18

    Amit a veszteségfüggvénybe írsz, azt fogja optimalizálni

    A háló a veszteségfüggvényt csökkenti, nem azt, amit szerettél volna. A kettő különbsége a te felelősséged.

    Egy figyelmeztetés, mielőtt továbbmennénk, mert ez a 8. hét küszöb-anyagának a folytatása. A háló pontosan azt a számot csökkenti, amit a veszteségfüggvénybe írtál. Ha négyzetes hibát írsz, akkor a nagy tévedéseket bünteti aránytalanul — ami hozambecslésnél lehet jó, kártevőriasztásnál viszont nem. Ha a két hibafajta ára eltér, akkor azt a veszteségbe kell beletenni, nem utólag a küszöbbel korrigálni.

  19. 19

    A három veszteségfüggvény

    Négyzetes: az átlag felé húz. Abszolút: a medián felé. Kereszt-entrópia: a magabiztos tévedést bünteti a legjobban.

    Amit az előző dia mondott, itt képletben áll. A négyzetes hiba a nagy eltérést négyzetesen bünteti — ez az, ami a kiugró értékhez húzza a modellt, pontosan úgy, ahogy az átlagot is. Az abszolút hiba nem: az a medián felé húz, és ettől robusztus. A kereszt-entrópia osztályozásra való, és nézd meg, mit csinál: ha a modell nulla valószínűséget ad annak, ami bekövetkezett, a veszteség VÉGTELEN. Ez nem hiba a képletben — ez a mondanivalója.

  20. 20

    Öt tanulási ráta, egy háló

    Az `nn-gradient` demó ábrája: a veszteség alakulása öt tanulási rátánál.

    És itt a mérés. Ugyanaz a háló, ugyanaz a kezdősúly, ugyanannyi lépés — az egyetlen különbség a lépéshossz. A függőleges tengely logaritmikus, különben a széteső görbe mellett a többi egy vonallá lapulna. Nézd meg a legfelső görbét: az a kétes ráta, és nem lassabban tanul, hanem nő a vesztesége, amíg a számok el nem szállnak. A legalsó a jó tartomány.

  21. 21

    A gradiens ereszkedés és a láncszabály

    Egy sor a tanulás. A mélység ára a szorzat: a gradiens rétegenként szorzódik.

    Maga a tanulás egyetlen sor: minden súlyt elmozdítunk a gradiens ellenkező irányába, éta-szoros lépéssel. Az éta a tanulási ráta — ez az, amit az előző dia mért. A második képlet a visszaterjesztés: a mélyebb rétegek gradiense a láncszabályból jön, vagyis SZORZATKÉNT. Innen jön mindkét klasszikus baj. Ha a szorzótényezők kisebbek egynél, a gradiens eltűnik; ha nagyobbak, felrobban. A ReLU azért segít, mert a szorzótényezője pontosan egy.

  22. 22

    Négy viselkedés, nem fokozatok

    Az `nn-gradient` demó mérése: 2 → 12 → 1 háló, 400 lépés, azonos kezdősúly.

    Ugyanaz a mérés számokban, és ez a dia lényege: ez nem egy skála, amin a ráta növelésével egyre jobb, aztán egyre rosszabb lesz. Négy MINŐSÉGILEG különböző dolog történik. Az ezredes rátánál négyszáz lépés sem elég. A tizedes rátánál nulla egész nulla hatszázhetvenhét a végső veszteség — ez a jó beállítás. A hat tizedesnél huszonhét lépésből célba ér, tehát a leggyorsabb — és rosszabb helyen áll meg, mert utána oszcillál. A kettesnél pedig nincs tanulás.

  23. 23

    A leggyorsabb nem a legjobb

    ráta | célba érés | végső veszteség · 0,6 | 27 lépés | 0,1266 · 0,1 | 28 lépés | 0,0677 · a különbség | 1 lépés | majdnem kétszeres

    Ezt a kettőt érdemes szétválasztani, mert a gyakorlatban rendszeresen összekeverik. A hat tizedes ráta huszonhét lépésből éri el a célt, a tizedes huszonnyolcból — gyakorlatilag ugyanannyi. De a végső veszteség nulla egész tizenkettő, illetve nulla egész nulla hat egy: majdnem kétszeres különbség. A gyors ráta beleesik a völgybe, aztán át is lendül rajta, és ott ugrál a széle körül. Aki csak azt nézi, mikor ért célba, rosszabb modellt kap.

  24. 24

    Kérdés

    A veszteség NaN-ba fut. Kisebb háló a megoldás?

    Betanítasz egy hálót, és a veszteség az első néhány lépés után nem szám többé — NaN. A kollégád azt javasolja, hogy csökkentsük a háló méretét. Jó ötlet?

    Question

    1. 1. Igen: a kisebb háló stabilabb, kevesebb paraméterrel nehezebb elszállni.
    2. 2. Nem elsőként: ez a tanulási ráta tünete, azt kell csökkenteni.
    3. 3. Nem: ilyenkor mindig az adatban van hiba, azt kell megnézni.

    A NaN a széteső tanulás jellegzetes vége: a súlyok minden lépésben nagyobbat ugranak, amíg túl nem csordulnak. A közvetlen ok a túl nagy lépéshossz. A kisebb háló véletlenül segíthet — mert kisebb hálóhoz nagyobb ráta is elfér —, de akkor a modellt korlátozzuk egy tanulási beállítás miatt. Az adatban lévő hiba (például végtelen érték egy jellemzőben) valóban okozhat NaN-t, de az rendszerint már az első lépésnél jelentkezik, nem néhány után.

  25. 25

    Kezdőérték, köteg, korszak

    Kezdőérték: a súlyok induló skálája · rossz skálán a tanulás el sem indul · a bemenetszámhoz igazodik | Köteg: egy lépés ennyi megfigyelésből számol · kisebb köteg zajosabb, de olcsóbb · a zaj néha segít is | Korszak: az adat egyszeri végigjárása · korszak × (adat ÷ köteg) = lépésszám

    Három beállítás, amit érdemes ismerni, mert mind a három tud csendben rontani. A kezdőérték: a súlyok induló skálája. Ha rossz, a jel mély hálóban elhal vagy elszáll, és a tanulás el sem indul — a demó kódjában ezért van a He-féle kezdőérték. A köteg: hány megfigyelésből számol egy lépést. A korszak: hányszor járjuk végig az adatot. A kettő együtt adja ki a lépések számát.

  26. 26

    Próbáld el rontani

    Az `nn-gradient` demó kimenete. Ugyanez a cella az nn_neuralis_halok.ipynb jegyzetfüzetben.

    A demó teljes kimenete, és ehhez van egy kérésem. A jegyzetfüzetben írd át a hálót nagyobbra — hatvannégy neuronra —, és futtasd újra ugyanezekkel a rátákkal. Azt fogod látni, hogy a jó tartomány ELTOLÓDIK: ami a kicsi hálónál jó volt, a nagynál már szétesik. Ebből jön a gyakorlati szabály: a rátát nem egyszer állítod be, hanem minden hálóméretnél újra.

  27. 27

    Mennyi elég, és mikor nem a modell a baj

    Kapacitás, zajplafon, és a tanulási kudarc

    Harmadik blokk. Két kérdés van hátra a hálóról: hány neuron kell, és hogyan ismerjük fel, ha a rossz eredmény nem a modellről szól. A második fontosabb, és ritkábban tanítják.

  28. 28

    Egytől százhuszonnyolcig

    Az `nn-hidden` demó ábrája: tanító és teszt pontosság a neuronszám függvényében, öt futás átlaga.

    Itt a mérés. Százhúsz tanítópont, a címkék tizenkét százaléka szándékosan át van billentve — ezért van egy szaggatott vonal nyolcvannyolc százaléknál: ennél többet senki nem tudhat, mert a fennmaradó tizenkét százalék véletlen. Nézd a két görbét. Nyolc neuronig gyorsan emelkednek, aztán beállnak. És nézd meg a jobb szélét: mindkettő leesik.

  29. 29

    A hálóméret futtatva

    Az `nn-hidden` cellája: egytől százhuszonnyolcig, paraméterszámmal, tanító és teszt pontossággal.

    A cella itt fut. A csavar a tanítópontok száma: ötszörözd meg. A kérdés az, hogy eltűnik-e a tanító és a teszt közti rés. Ha igen, akkor a rés adathiány volt. Ha nem, akkor a modell kapacitása a baj. A kettő teljesen más beavatkozást kíván, és ez az egyetlen kísérlet szétválasztja őket.

  30. 30

    Nyolc neuron elég

    neuron | teszt pontosság | paraméter · 8 | 84,1 % | 33 · 16 | 85,1 % | 65 · a zaj plafonja | 88 % | — innen nincs tovább

    A gyakorlati válasz meglepően kicsi. Nyolc neuronnál a teszt pontosság nyolcvannégy egész egy százalék, tizenhatnál nyolcvanöt egész egy — a legjobb. Onnan nem javul. A nyolcvannyolc százalékos zajplafonhoz képest ez már majdnem a maximum. Harminchárom paraméterrel. Aki ilyenkor ötszázas hálót épít, nem több tudást vesz, hanem több szórást.

  31. 31

    Ami közben nő: a rés

    Az `nn-hidden` demó mérése: a két pontosság, méretenként.

    És ami közben történik, azt külön érdemes megnézni. A tanító és a teszt pontosság között tizenhat neuronnál két egész kilenc százalékpont a rés, százhuszonnyolcnál öt egész nyolc. Ez a nyolcadik hét torzítás-szórás átváltása, most neuronszámban mérve: a többlet kapacitás nem a jelet tanulja meg, hanem a zajt — pontosan azt a tizenkét százalékot, amit átbillentettünk.

  32. 32

    De a százhuszonnyolc nem túlillesztés

    Túlillesztés: kicsi tanítási hiba, nagy teszthiba. Itt MINDKETTŐ rossz — ez más jelenség.

    És most az, amiért ez a blokk létezik. A százhuszonnyolc neuronos háló teszt pontossága ötvenhat egész hét — összeomlás. Kézenfekvő volna azt mondani, hogy túltanult. De nézd meg a tanító pontosságot: hatvankettő egész öt. Az is leesett. Túlillesztésnél ez LEHETETLEN — ott a modell a tanítóadatot kívülről tudja, tehát a tanító pontosság magas. Ha mindkettő rossz, akkor a modell nem túl sokat tanult meg, hanem nem tanult meg semmit.

  33. 33

    A baj a ráta volt

    Az `nn-hidden` demó mérése: ugyanaz a 128 neuronos háló, kétféle tanulási rátával.

    És a bizonyíték. Ugyanaz a százhuszonnyolc neuronos háló, ugyanaz az adat, ugyanannyi lépés — egyetlen dolgot változtattunk: a tanulási rátát nyolcadára. Ötvenhat egész hét százalékról nyolcvanhét egész öt százalékra ment. Ez a legjobb eredmény az egész söprésben, gyakorlatilag a nyolcvannyolcas zajplafonon. A háló nem volt túl nagy. A lépés volt túl hosszú.

  34. 34

    Kérdés

    89/62 az egyiknél, 60/60 a másiknál. Melyik mit kíván?

    Egy hálónál a tanító pontosság nyolcvankilenc százalék, a teszté hatvankettő. Egy másiknál mindkettő hatvan körül van. Melyikhez melyik gyógyszer való?

    Question

    1. 1. Az elsőhöz regularizáció vagy több adat, a másodikhoz a tanulás ellenőrzése.
    2. 2. Mindkettőhöz nagyobb háló: az egyik alul-, a másik túlilleszt.
    3. 3. Mindkettőhöz kisebb háló: mindkettő a kapacitás miatt romlott el.

    Az első a klasszikus túlillesztés: a modell a tanítóadatot jól tudja, a teszten nem — ott a szórást kell csökkenteni. A második képnél a tanító pontosság is rossz, ami vagy alulillesztés, vagy tanulási kudarc; a kettőt a veszteséggörbe különbözteti meg. Ha a veszteség le sem ment, akkor a ráta a gyanús, és a nagyobb háló csak ront.

  35. 35

    Mit nézz meg, ha rossz az eredmény

    Lement-e a veszteség → Tanító és teszt hiba viszonya → A modell mérete → Az adat és a jellemzők

    A blokk zárása egy sorrenddel, ami a hetedik hét lekérdezésterv-diájának a rokona: ott is azt mondtuk, hogy előbb nézd meg, mi történik, és csak utána változtass. Először a veszteséggörbe: lement-e egyáltalán. Aztán a tanító és a teszt hiba viszonya. Csak ezután a modell mérete. És legvégül az adat — bár a valóságban sokszor ott kellett volna kezdeni.

  36. 36

    Mikor éri meg hálót használni

    Az állítás, amit a 8. héten tettem — és a mérés

    Utolsó blokk, és ez az, amiért a modul egyáltalán a kurzus része. Eddig azt néztük, mit tud a háló. Most azt, hogy mikor van rá szükség — mert a nyolcadik héten azt állítottam, hogy táblázatos adaton ritkán. Ezt nem hagyhatom állításként: le kell mérni.

  37. 37

    Háló kontra gradiens erősítés

    Az `nn-tabular` demó ábrája: a két modell hibája, és a hányadosuk a mintaméret függvényében.

    Itt a mérés. Táblázatos hozamfeladat nyolc jellemzővel — talaj, csapadék, hőösszeg, néhány kategória —, kétszáztól négyezer tanítópontig, ugyanazon a teszthalmazon. Bal oldalt a két hibagörbe. Az erősítés végig alatta van. Jobb oldalt a hányadosuk, a szaggatott vonal az egyes érték: ott fordulna meg. Nem fordul meg. Sőt: a rés tágul, egy egész ötvenhatról egy egész hetvennégyre.

  38. 38

    Miért nyernek a fák táblázatos adaton

    A fa küszöböt és kategóriát feltételez — táblázatos adaton ez igaz. A háló sima függvényt — ott ez nem segít.

    A magyarázat nem az, hogy a fák „okosabbak”. Az, hogy amit eleve feltételeznek a világról, az táblázatos adatra igaz. A fa küszöbökkel dolgozik: „ha a csapadék kevesebb mint ennyi, akkor más a helyzet”. A táblázatos agráradat tele van ilyen küszöbökkel. A kategóriákat természetes módon kezeli, a hiányzó értékkel elbánik, és nem érdekli a jellemzők léptéke. A háló viszont sima függvényt feltételez, és a küszöböt csak közelíteni tudja.

  39. 39

    Hol fordul meg a kép

    Táblázat: oszlopok, sorrend nélkül · küszöbök és kategóriák · a fa előfeltevése illik | Kép, idősor, szöveg: a szomszédság és a sorrend jelent valamit · a fa ezt nem látja · itt éri meg a háló

    És akkor mikor éri meg a háló? Ott, ahol a bemenetnek SZERKEZETE van, amit a fák nem tudnak kihasználni. Képnél a szomszédos képpontok összetartoznak, és a mintázat bárhol lehet a képen. Idősornál a sorrend jelent valamit. Szövegnél a szórend. A fa mindezt nem látja: neki minden bemenet egy külön oszlop, és az oszlopok sorrendje közömbös. Ez a különbség, és nem a méret vagy a divat.

  40. 40

    A konvolúció: két feltevés a képről

    Ugyanaz a szűrő végigcsúszik a képen. Feltevés: a mintázat bárhol lehet, és a szomszédos képpontok összetartoznak.

    És hogy legyen kézzelfogható, mit jelent a szerkezet kihasználása. A konvolúció annyit tesz, hogy ugyanazt a kis szűrőt végigcsúsztatjuk a képen. Ez két dolgot feltételez. Egy: a keresett mintázat bárhol lehet — egy gyomfolt a kép bal felső sarkában ugyanaz, mint a jobb alsóban. Kettő: a szomszédos képpontok összetartoznak. Képnél mindkettő igaz, és ettől lesz a konvolúciós háló nagyságrendekkel takarékosabb, mint egy teljesen összekötött.

  41. 41

    Mennyivel takarékosabb a konvolúció

    Egy 256×256-os, háromcsatornás kép: hány súly kell egyetlen neuronhoz, illetve egyetlen szűrőhöz.

    Egy szám, ami a konvolúciót kézzelfoghatóvá teszi. Vegyél egy kétszázötvenhat oldalú színes képet. Ha teljesen összekötött rétegbe adod, akkor EGYETLEN neuronhoz száznyolcvankilencezer súly kell — minden képponthoz egy, három csatornán. Egy három a háromszor hármas konvolúciós szűrőhöz huszonhét. És ugyanaz a huszonhét fut végig az egész képen. Hétezerszeres különbség, és nem trükk: abból jön, hogy a szűrő feltételezi, a mintázat bárhol lehet.

  42. 42

    A konvolúció képlete — és a paraméterszám

    Ugyanaz a néhány súly, minden képponton. A paraméterszám a magtól függ, nem a kép méretétől.

    A konvolúció definíciója egyszerű: az ablakot végigcsúsztatjuk a képen, és minden helyen ugyanazokat a súlyokat használjuk. Ez a súlymegosztás, és ez a takarékosság forrása. Nézd meg, mit jelent számokban. Egy kétszázötvenhatszor kétszázötvenhatos képre egy teljesen összekötött réteg ugyanannyi kimenettel hatvanöt-ezer-ötszázharminchat NÉGYZET súlyt kíván. Egy háromszor hármas konvolúciós mag kilencet. Ugyanaz a művelet, ha a feltevés igaz: hogy a mintázat ugyanaz marad, akárhol van a képen.

  43. 43

    Transzfer tanulás: a járható út agrárban

    Nagy készleten betanított háló + a felső rétegek újratanítása néhány száz saját képen. Agrárban ez a járható út.

    És a gyakorlati tanács, amivel a modult zárom. Nulláról hálót tanítani sok százezer képet kíván — ennyi agrárfelvételed nem lesz. A járható út a transzfer tanulás: veszel egy nagy, általános készleten betanított hálót, lefagyasztod az alsó rétegeit, és csak a felsőket tanítod újra a saját néhány száz képeden. Az alsó rétegek éleket és textúrákat ismernek fel — az ugyanaz a levélen, mint bárhol máshol.

  44. 44

    Kérdés

    8000 sor, 12 oszlop, táblázatos adat. Háló vagy fa?

    Egy gazdaság talajmintákból, műtrágyaadagokból és időjárási összegzőkből akar hozamot becsülni. Nyolcezer soruk van, tizenkét oszloppal. Mit javasolsz?

    Question

    1. 1. Neuronháló: nyolcezer sor bőven elég a betanításához.
    2. 2. Gradiens erősítés, alapvonalnak lineáris regresszióval.
    3. 3. Először háló, és ha nem elég jó, akkor fa.

    A mérésünkben négyezer tanítópontig a gradiens erősítés végig 1,5–1,7-szer kisebb hibát adott, és a rés nem záródott. Táblázatos adaton a fák előfeltevése illik a feladathoz: küszöbök, kategóriák, léptékfüggetlenség. A háló itt nem „még nem elég adat” miatt veszít, hanem szerkezeti okból. A lineáris alapvonal pedig azért kell, hogy legyen mihez mérni — a 8. hét létrájának alja.

  45. 45

    Cáfold meg

    Az `nn-tabular` demó kimenete. Ugyanez a cella az nn_neuralis_halok.ipynb jegyzetfüzetben.

    A demó teljes kimenete, és ezzel a kéréssel zárom a modult. A jegyzetfüzetben írd át a rejtett réteget százhuszonnyolcra, növeld a lépésszámot, próbálj meg jobb hálót építeni erre a feladatra. Ha sikerül megverned a gradiens erősítést, az jó eredmény, és szeretném látni. Ha nem sikerül, az is eredmény — akkor a diákon álló állítás megerősítést kapott a te kezedben is.

  46. 46

    A modul fogalmai

    Neuron · Súly és eltolás · Aktivációs függvény · Rejtett réteg · Előreterjesztés · Veszteségfüggvény · Visszaterjesztés · Gradiensmódszer · Tanulási ráta · Korszak és köteg · Kezdőérték · Kapacitás · Tanulási kudarc · Modellcsalád-előfeltevés · Szerkezetes bemenet · Konvolúció · Transzfer tanulás

    Ez volt a neurális hálós modul. Egy mondatban: a háló nem okosabb modell, hanem másféle előfeltevés — és akkor éri meg, ha a bemenetnek olyan szerkezete van, amit más modellcsalád nem tud kihasználni.

  47. 47

    A modul rövidítései

    Rövidítés | Feloldás | Mit jelent · ReLU | Rectified Linear Unit | max(0, z): pozitívon önmaga, negatívon nulla — a deriváltja pozitívon pontosan 1 · XOR | eXclusive OR — kizáró vagy | a klasszikus, egyenessel szét NEM választható feladat · MSE | Mean Squared Error | négyzetes hiba: az átlag felé húz, és a nagy eltérést négyzetesen bünteti · MAE | Mean Absolute Error | abszolút hiba: a medián felé húz, ettől robusztus · CE | Cross-Entropy — kereszt-entrópia | osztályozás vesztesége; a magabiztos tévedést végtelenül bünteti · SGD | Stochastic Gradient Descent | sztochasztikus gradiens ereszkedés: a lépés egy kötegből becsült gradiens mentén · ONNX | Open Neural Network eXchange | keretrendszer-független modellformátum a betanított háló szállítására · NaN | Not a Number | a lebegőpontos „nem szám”; a széteső tanítás ezzel jelzi magát · SQL | Structured Query Language | a relációs lekérdezések nyelve — a modulban csak összevetésként kerül elő

    A neurálishálós modul kevés rövidítést használ, és ez szándékos: a modul tétele az, hogy a háló nem varázslat, hanem súlyozott összeg. Ami rövidítés, az jórészt aktivációs függvény vagy formátum.

  48. 48

    A modul három diagramtípusa, ugyanazon az adaton

    A neurálishálós modul három diagramtípusa, ugyanazon az öt értéken.

    A modul három típusa. Az összevetések oszlopon állnak, mert a hálók és a beállítások kategóriák; a tanulási görbék viszont demóábrán, mert logaritmikus tengelyt és több panelt kívánnak. A vonal panel itt a köztes értékekről szóló állítás — a tanulási görbén éppen ez a lényeg, hogy a két mért pont között is mondunk valamit.

  49. 49

    A neurálishálós modul diagramtípusai

    diagramtípus | mit olvasol le róla | mire NEM jó · oszlop | kategóriák nagyságrendje és sorrendje — a hossz maga az érték | időbeli alakulás: a sorrend nem látszik rajta · vonal | időbeli alakulás: a meredekség és a fordulópontok | kategóriák összevetése: a vonal sorrendet állít oda is, ahol nincs · demóábra | amit a keretrendszer rajza nem tud: log tengely, hőtérkép, kis sokszorosok | saját adatod: ez a demó kimenete, nem szerkeszthető a dián

    A modul diagramtípusai. A tanulási görbék demóábrán jönnek, mert logaritmikus tengelyt és több panelt igényelnek; az összevetések oszlopon.