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.
The semester
Egy súlyozott összeg, és ami belőle következik
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.
Az ábra betöltése…
É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.
A cella betöltése…
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.
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á.
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.
Az `nn-hidden` demó hálója: 2 bemenet, 1 kimenet. A képlet 4h + 1-et ad rá.
P=2 * 8 + 8 + 8 * 1 + 1=33paraméter
Húzd a csúszkát, és nézd, mi mozdul.
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.
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?
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?
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.
Az ábra betöltése…
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.
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.
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.
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.
A cella betöltése…
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.
Egy hiba, egy irány, egy lépéshossz
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.
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.
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.
Az ábra betöltése…
É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.
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.
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.
| 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.
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?
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?
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.
A cella betöltése…
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.
Kapacitás, zajplafon, és a tanulási kudarc
Az ábra betöltése…
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.
A cella betöltése…
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.
| 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.
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.
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.
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ú.
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ó?
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ó?
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.
Az állítás, amit a 8. héten tettem — és a mérés
Az ábra betöltése…
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.
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.
É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.
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.
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.
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.
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.
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?
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?
A cella betöltése…
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.
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.
| 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.
Az ábra betöltése…
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.
| 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.