Regresszi Mestersges neuronhlk mrc 2 Regresszi Regresszi Felgyelt
- Slides: 58
Regresszió, Mesterséges neuronhálók márc. 2.
Regresszió
Regresszió – Felügyelt (induktív) tanulás: tanító halmaz alapján olyan modell tanulása ami korábban nem látott példákon is helyesen működik. – Regresszió: felügyelt tanulási feladat, ahol folytonos értéket jelzünk előre (statisztika „regresszió analízise” hasonló technikákat használ, de más a cél)
Regresszió Alapterület (nm) Városrész Kor (év) Ár (M Ft) 60 Csillag-tér 32 8, 3 120 Alsóváros 21 26, 8 35 Tarján 38 5, 5 70 Belváros 70 ? ? ?
Regresszió Tanító adatbázis: {x, r} rϵR Kiértékelő függvény: „Négyzetes hiba”
Lineáris regresszió
Lineáris regresszió g(x |θ) = θx + θ 0 gradiense 0 ha
Regressziós modellek Regressziós döntési fa: • • Belső csúcsok úa. mint osztályozásnál Leveleken vagy konstans vagy (különböző) tanult lineáris modellek
Regressziós SVM
Regressziós SVM • ||w||2 a modell komplexitása • ε a közelítés megengedett hibája • C és ε is szabályozza az általánosítási készséget
Neuronhálók
Mesterséges neuronhálók • artificial neural networks (ANN) • Az információfeldolgozás a biológiai idegrendszer (pl. az emberi agy) működését próbálja utánozni • Struktúra: nagyszámú, erősen összefüggő, együttműködő processzáló elem (idegsejtek, neuronok) • Cél: az emberekhez hasonlóan tanuljanak tapasztalatokból (példák segítségével)
Egy kis neurobiológia • A neuron (idegsejt): sok bemenet / egy kimenet • A kimenet gerjesztett (excited) vagy nem • A más neuronokból bejövő jelek határozzák meg, mikor tüzel (fire) a neuron (gerjesztett állapotba kerül) • A kimenet függ a szinapszisokban történő csillapításoktól
Matematikai megfogalmazás Feltevésünk: a neuron a bemenetek súlyozott átlagát számítja ki, és az eredményt összehasonlítja egy küszöbértékkel. Ha nagyobb, akkor a kimenet 1 (tüzel, gerjesztett állapotba kerül) különben -1.
Néhány adat • Neuronok száma az agyban: ~ 1011 • Egy neuron átlagosan 104 másikkal van kapcsolatban • Leggyorsabb kapcsolási idő: 10 -3 másodperc • Arcfelismerési idő: 10 -1 másodperc
Motiváció (gépi tanulási szemmel) • Cél: nem-lineáris összefüggések tanulása – Sok olyan probléma van, ahol a lineáris diszkriminancia nem megfelelő eredményt ad – A fő nehézség a megfelelő nemlineáris függvény megtalálása, a fgvcsaládot előre meg kell adnunk – Lineráis modellek könnyen kezelhetőek, használjuk ezt ki
Perceptron
Többrétegű neuronhálók A rejtett rétegben az input adatok másfajta reprezentációja
Többrétegű neuronhálók
Előrecsatolt (feedforward) háló • Kapcsolat csak a rákövetkező réteg irányában van • a rétegek között módosítható súlyokkal ellátott kapcsolatok vannak • Egy háromrétegű neuronháló egy input rétegből, egy rejtett rétegből és egy kimenet rétegből áll
Hálózati érték • Egy neuron hálózati értéke: ahol i az input egységeket indexeli, j a rejtett egységeket; wji jelöli az i inputból jövő kapcsolat súlyát a j rejtett neuronnál. • Van egy konstans egységünk is, amelyik minden rejtett egységhez (neuronhoz) hozzá van kötve. Ennek bemeneti értéke mindig 1.
Aktivációs-függvény Minden rejtett egység kibocsátja a hálózati értékének valamely nemlineáris függvényét (aktivációs-függvény), azaz yj = f(netj) (A több rétegű lineáris függvény még lineáris) Előjel függvény: oi 1 0 Tj netj
Differenciálható aktivációs függvény • Differenciálható, nem-lineáris kimeneti függvény kell a hatékony tanuláshoz (gradiens alapú módszerek) • A leggyakoribb megoldás a szigmoid “logikai” függvény használata: 1 0 Tj netj Használják még a tanh vagy a Gauss függvényt is
Kimeneti réteg Kimeneti egységeknél a hálózati érték: ahol a k az output réteg egységeit, az n. H pedig a rejtett egységek számát jelöli • Bináris osztályozás: előjel függvény • Többosztályos osztályozás: minden osztályra egy kimenet, legnagyobb hálózat értékűt választjuk (diszkriminancia fgv. ) • Regresszió: aktivációs fgv után a predikció
– Az y 1 rejtett egység számolja a következő felületet: 0 y 1 = +1 x 1 + x 2 + 0. 5 - Az y 2 pedig a következőt: x 1 + x 2 -1. 5 < 0 y 1 = -1 x 1 OR x 2 0 y 2 = +1 < 0 y 2 = -1 x 1 AND x 2 – A végső kimeneti egység jelei: z 1 = 0. 7 y 1 -0. 4 y 2 - 1, sgn(z 1) pontosan akkor lesz 1, ha y 1 =1, y 2 = -1, ami éppen a kívánt függvényünk (x 1 OR x 2 ) AND NOT(x 1 AND x 2)
Általános (3 rétegű) előrecsatolt háló (c kimeneti egység) • – A rejtett egységek segítségével bonyolultabb nemlineáris függvényeket is kifejezhetünk, bővítve az osztályozási lehetőségeket – Megengedhetjük, hogy a kimeneten és a rejtett rétegeken levő aktivációs függvények különbözőek legyenek, sőt minden egységhez is különböző tartozhat
Kolmogorov tétele: minden korlátos folytonos függvény előállítható három rétegű hálózattal. DE: Kolmogorov tétele nagyon keveset mond arról, hogyan találjuk meg a bemeneti adatokból a megfelelő nemlineáris függvényeket
Háromrétegű neuronháló tanítása Visszaterjesztés (backpropagation)
Tanulás neuronhálóknál • A hálózat topológiáját előre adottnak tekintjük • Minden neuronnál ugyanaz, előre rögzített aktivációs fgv. • Tanulás = élsúlyok kalibrálása • on-line tanulás (több epoch)
Tanulás neuronhálóknál – Előrecsatolás Ilyenkor adunk egy mintát az inputon, és ezt átszámoljuk a hálózaton – a végén a kimeneten értéke(ke)t kapunk – Súlyok frissítése (visszaterjesztés) Ilyenkor az adott mintát arra használjuk, hogy módosítsuk a súlyokat úgy, hogy a számított és elvárt kimenetek különbsége csökkenjen
Tanulás neuronhálóknál • 3 rétegű hálózatokat vizsgálunk (könnyen megérthető, Kolmogorov tétele) • A visszaterjesztés lényege: minden rejtett egységhez ki tudjuk számolni annak hibáját (érzékenységét), és ezzel egy tanulási eljárást ad a rétegek közti súlyokra
• Legyen tk a kívánt k-ik kimenet, továbbá zk a k-ik számított kimenet (k = 1, …, c) tovább w jelölje a hálózat súlyait Hiba fgv: – A visszaterjesztés szabály a gradiens módszeren alapul • A súlyok kezdőértékei véletlen számok, és a hiba csökkentésének irányában változnak:
Hiba visszaterjesztés A rejtett és kimenet rétegek közötti súlyok hibái: ahol a k. kimeneti neuron érzékenységének definíciója: és megadja, hogyan változik a teljes hiba a neuron hálózati értékének függvényében
Mivel netk = wkty, kapjuk: másrészt: Következmény: a súlyok változtatásának szabálya (a rejtett és kimenet rétegek közt): wkj = kyj = (tk – zk) f’ (netk)yj
A bemenet és rejtett rétegek közötti súlyok hibái:
Az előzőhöz hasonlóan definiáljuk a rejtett réteg érzékenységét: Az input-rejtett rétegek közötti súlyokra vonatkozó tanulási szabály:
Hiba visszaterjesztés Először számítsuk ki a kimenetek érzékenységét, és ezzel változtassuk a súlyok felső rétegét output a k–ba vezetők aktualizálása: hidden input
Hiba visszaterjesztés Ezután számítsuk ki a rejtett egységek érzékenységét, a hozzájuk kötött kimeneti egységek érzékenységének segítségével output rejtett input
Hiba visszaterjesztés Végül aktualizáljuk az alsó réteg súlyait, a rejtett egységek érzékenységének segítségével output rejtett Aktualizáljuk a j-be vezetőket input
Véletlenszerűen választott súlyokkal kezdve, a sztochasztikus visszaterjesztés algoritmus: Begin inicializálni: n. H; w, kritérium , , m 0 do m m + 1 xm véletlenül választott minta wji + jxi; wkj + kyj until || J(w)|| < return w End
Megjegyzések • Nem biztos, hogy zérus hibához konvergál – lokális optimumhoz is tarthat, vagy oszcillálhat • A gyakorlatban nagyon sok nagy problémánál kicsi hibához tartozó megoldást ad • A lokális minimál-megoldások elkerüléséhez többszöri futtatás, véletlen kezdősúlyokkal – A legkisebb hibához tartozó megoldást vegyük – Vagy valamilyen többségi szavazással válasszuk ki a megoldást
Megjegyzések • Hány rejtett neuron kell? – ha kevés rossz reprezentáció – ha sok túltanulás – validációs halmaz. . . • Mi az optimális toplológia? – priori tudás • Tanulási arány!?
Mély neurális hálók deep learning
Neuronhálók • Perceptron: az első algoritmus az ötvenes évekből (egyrétegű háló) • Visszaterjesztés algoritmus: többrétegű hálózatok, (1975), nagyon népszerű a nyolcvanas években • Mély hálók (deep learning): 2006 óta új virágkor
Autoencoder előtanítás (auto-encoder pretraining)
Mohó szintenkénti tanítás
Rectifier hálózatok
Dropout regularizáció
Blokk hálózatok
Visszacsatolásos neuronhálók (recurrent neural networks) rövid távú memória http: //www. youtube. com/watch? v=vm. DBy. FN 6 eig