Gépi tanulás 1.hét: Költségfüggvény, gradiens Süllyedés és egyváltozós lineáris regresszió

elkezdtem Andrew Ng népszerű gépi tanulási tanfolyamát a Coursera-n. Az első héten kiterjed egy csomó, legalábbis valaki, aki nem érintette sok kalkulus néhány éve

  • költség függvények (átlagos különbség négyzet)
  • gradiens Süllyedés
  • lineáris regresszió

ez a három téma volt sok, hogy a. Részletesen beszélek mindegyikről, és arról, hogyan illeszkednek egymáshoz, néhány python kóddal.

Szerkesztés május 4-én: Közzétettem egy nyomon követést, amelynek középpontjában a Költségfüggvény működik itt, beleértve az intuíciót, hogyan kell kiszámítani kézzel és két különböző Python implementációt. Meg tudom csinálni a gradiens leereszkedést, majd hamarosan összehozom őket lineáris regresszióhoz.

Modellábrázolás

először is, a legtöbb gépi tanulási algoritmus célja egy modell felépítése: egy hipotézis, amely felhasználható az Y becslésére X alapján. Tegyük fel például, hogy egy olyan modellt képezek ki, amely egy csomó lakásadaton alapul, amely tartalmazza a ház méretét és az eladási árat. A képzés egy modell, tudok adni egy becslést, hogy mennyi lehet eladni a házat, a mérete alapján. Ez egy példa a regressziós problémára — adott bemenet esetén folyamatos kimenetet akarunk megjósolni.

a hipotézist általában a következőképpen mutatják be

hipotézis

a theta értékek a paraméterek.

néhány gyors példa arra, hogyan vizualizáljuk a hipotézist:

ez H(x) = 1,5 + 0x értéket eredményez. 0x azt jelenti, hogy nincs meredekség, és y mindig az állandó 1,5. Ez úgy néz ki, mint:

h (x) = 1,5 + 0x

mi a helyzet

h(x) = 1 + 0,5 x

a modell létrehozásának célja olyan paraméterek vagy theta értékek kiválasztása, hogy h(x) közel legyen y-hoz a képzési adatokhoz, x és y. Tehát ezekre az adatokra

x = 
y =

megpróbálom megtalálni a legmegfelelőbb vonalat lineáris regresszióval. Lássunk hozzá.

Költségfüggvény

olyan függvényre van szükségünk, amely minimalizálja az adatkészletünk paramétereit. Az egyik gyakori függvény, amelyet gyakran használnak, az átlagos négyzethiba, amely a becslő (az adatkészlet) és a becsült érték (az előrejelzés) közötti különbséget méri. Ez így néz ki:

átlagos Négyzethiba

kiderült, hogy kicsit módosíthatjuk az egyenletet, hogy a számítás egy kicsit egyszerűbb legyen. Mi a végén:

átlagos Négyzethiba

alkalmazzuk ezt a const függvényt a következő adatokra:

most kiszámolunk néhány theta értéket, és kézzel ábrázoljuk a költségfüggvényt. Mivel ez a függvény áthalad (0, 0), csak a theta egyetlen értékét vizsgáljuk. Innentől kezdve a költségfüggvényre hivatkozom, mint J ( ++ ).

J(1) esetén 0-t kapunk. Nem meglepő — a J (1) értéke egyenes vonalat eredményez, amely tökéletesen illeszkedik az adatokhoz. Mi a helyzet a J(0.5)?

J(0.5)

az MSE függvény 0,58 értéket ad nekünk. Ábrázoljuk mindkét eddigi értékünket:

J(1) = 0

J (0,5) = 0.58

J(1) és J(0.5)

előre megyek, és kiszámolok még néhány értéket J-ről ( ++ ).

és ha szépen összekapcsoljuk a pontokat…

a költségfüggvény megjelenítése J ( ++ )

láthatjuk, hogy a költségfüggvény minimális, ha theta = 1. Ennek van értelme-kezdeti adataink egy egyenes vonal, amelynek lejtése 1 (a fenti ábrán a narancssárga vonal).

gradiens Süllyedés

a fenti próbálkozásokkal minimalizáltuk a J — t ( ++ ) – csak sok értéket próbáltunk ki, és szemrevételeztük az eredményül kapott gráfot. Kell, hogy legyen jobb megoldás? Sor gradiens Süllyedés. A gradiens Süllyedés egy általános funkció a funkció minimalizálására, ebben az esetben az átlagos négyzet Hibaköltség függvény.

a gradiens Süllyedés alapvetően csak azt teszi, amit kézzel csináltunk — apránként változtassa meg a theta értékeket vagy paramétereket, amíg remélhetőleg meg nem érkeztünk a minimumhoz.

azzal kezdjük, hogy inicializáljuk a theta0-t és a theta1-et bármely két értékre, mondjuk mindkettőre 0-t, és onnan indulunk. Formálisan az algoritmus a következő:

gradiens Süllyedés

ahol az alfa, az a tanulási Arány, vagy az, hogy milyen gyorsan akarunk elmozdulni a minimum felé. Ha azonban túl nagy a szám, akkor túllőhetünk.

Gradiens Lefelé Vizualizáció. Hitel: rasbt.github.io

mindent összehozni-lineáris regresszió

gyorsan összefoglalva:

van egy hipotézisünk:

hipotézis

amire szükségünk van illeszkedjen a képzési adatainkhoz. Használhatunk olyan költségfüggvényt, mint az átlagos négyzet hiba:

átlagos Négyzethiba

amelyet gradiens ereszkedés segítségével minimalizálhatunk:

gradiens Süllyedés

ami elvezet minket az első gépi tanulási algoritmusunkhoz, a lineáris regresszióhoz. A puzzle utolsó darabja, amelyet meg kell oldanunk egy működő lineáris regressziós modell elkészítéséhez, a költségfüggvény részleges levezetése:

a Költségfüggvény részleges levezetése, amelyet ki kell számolnunk

ami kiderül:

kép Andrew Ng gépi tanulási tanfolyamáról Coursera.com

ami lineáris regressziót ad nekünk!

lineáris regresszió

az elmélet az útból, megyek, hogy végre ezt a logikát python a következő bejegyzésben.

Szerkesztés május 4.: közzétettem egy nyomon követést, amely a Költségfüggvény működésére összpontosít, beleértve egy intuíciót, hogyan kell kiszámítani kézzel és két különböző Python implementációt. Meg tudom csinálni a gradiens leereszkedést, majd hamarosan összehozom őket lineáris regresszióhoz.

You might also like

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.