• No results found

Moje zkuˇsenost s port´ alem Coursera

In document Strojov´e uˇcen´ı a Datamining (Page 18-21)

Na podzim loˇnsk´eho roku (2014) jsem se v r´amci ˇreˇsen´ı t´eto pr´ace a podle jej´ıho zad´an´ı pˇrihl´asil na kurz Machine Learning (Strojov´e uˇcen´ı) [2] na MOOC port´ale Coursera (viz kapitola 2.2.8). Je to stejn´y kurz, po jehoˇz zpˇr´ıstupnˇen´ı veˇrejnosti Andrew Ng zaloˇzil Courseru. Jednalo se o mou prvn´ı zkuˇsenost s MOOC kurzem.

Kurz trval pˇresnˇe deset t´ydn˚u a za ´uspˇeˇsn´e absolvov´an´ı vˇsech cviˇcen´ı a test˚u sliboval certifik´at potvrzuj´ıc´ı znalost probran´ych t´emat. Pˇredmˇet byl vyuˇcov´an v angliˇctinˇe a k dispozici byly titulky v dalˇs´ıch 4 jazyc´ıch (ˇceˇstina mezi nimi nebyla). ˇCasov´a n´aroˇcnost kaˇzd´eho t´ydne byla odhadov´ana na 5–7 hodin.

Kaˇzd´y t´yden jsem si na postup v kurzu vyhradil jeden den. Kaˇzd´y t´yden byly z teorie k dispozici jeden aˇz dva pˇredn´aˇskov´e bloky, kter´e se skl´adaly z d´ılˇc´ıch 5–8 kr´atk´ych vide´ı. V n´aroˇcnˇejˇs´ıch t´ematech tato videa dosahovala nejv´ıce d´elky 20 minut, jinak pˇribliˇznˇe kolem 10 minut. V pr˚ubˇehu videa se vˇzdy jednou nebo dvakr´at s´am zastavil pr˚ubˇeh a m´ısto nˇej se objevila kontroln´ı ot´azka se ˇctyˇrmi moˇzn´ymi odpovˇed’mi. Vˇzdy se to t´ykalo t´ematu, o kter´em Andrew pr´avˇe mluvil, takˇze jsem si bud’ ovˇeˇril, ˇze mu rozum´ım, a nebo ˇze by se mi hodilo si kus pustit jeˇstˇe jednou. S t´ımto zp˚usobem pod´an´ı l´atky jsem se setkal poprv´e a velmi pozitivnˇe mˇe to pˇrekvapilo, protoˇze jsem l´atku ch´apal mnohem snadnˇeji. Dˇelal jsem si s´am pozn´amky na pap´ır a odpov´ıd´an´ı na kontroln´ı ot´azky mi tak vcelku nedˇelalo ˇz´adn´y probl´em.

Po shl´ednut´ı pˇredn´aˇsek pˇriˇsla prvn´ı praktick´a ˇc´ast, kter´a mˇela ovˇeˇrit teoretickou znalost probl´emu. Jednomu pˇredn´aˇskov´emu bloku odpov´ıdal jeden kr´atk´y test, kter´y se vˇzdy skl´adal z pˇeti ot´azek, kde kaˇzd´a mˇela ˇctyˇri moˇzn´e odpovˇedi. Nˇekter´e byly stavˇeny tak, ˇze byla spr´avn´a pouze jedna odpovˇed’, ale vˇetˇsina tak, ˇze jich mohlo, ale nemuselo b´yt v´ıc spr´avn´ych. To test trochu komplikovalo, ale o to l´epe to dok´azalo znalosti provˇeˇrit. Po odesl´an´ı jsem okamˇzitˇe vidˇel, co bylo spr´avnˇe a co ne. U vˇsech odpovˇed´ı nav´ıc leˇzelo vysvˇetlen´ı, proˇc je dan´a odpovˇed’ spr´avnˇe ˇci ˇspatnˇe. Kdyˇz jsem nemˇel pln´y poˇcet bod˚u, tak jsem test opakoval znovu. Poˇcet pokus˚u nebyl omezen a tak jsem v˚ubec nebyl ve stresu z toho, ˇze by se mi to nemuselo pov´est.

Jedin´ym omezen´ım byla moˇznost absolvov´an´ı dalˇs´ıho pokusu pouze kaˇzd´ych deset minut. K nahl´ednut´ı jsem pak vˇzdy mˇel vˇsechny pokusy, s kter´ymi se napˇr. daly porovn´avat odpovˇedi pro zlepˇsen´ı v´ysledku. Ot´azky i odpovˇedi se ale pomˇernˇe dost mˇenily. Takto jsem vˇzdy postupoval dokola do z´ısk´an´ı pln´eho poˇctu bod˚u. Pouze v jednom pˇr´ıpadˇe jsem potˇreboval ˇctyˇri pokusy, jinak se mi to daˇrilo napoprv´e nebo

napodruh´e.

Kdyˇz se mi povedlo absolvovat test, tak jsem pˇrikroˇcil k plnˇen´ı programovac´ıch cviˇcen´ı. V prvn´ım a posledn´ım t´ydnu tato cviˇcen´ı chybˇela. Kaˇzd´e cviˇcen´ı spoˇc´ıvalo ve staˇzen´ı zazipovan´eho archivu se zdrojov´ymi k´ody a instrukcemi v pdf souboru.

Programovalo se v programu Octave, kter´y je obdobou Matlabu. Hlavn´ım rozd´ılem je to, ˇze je zdarma. Kaˇzd´e cviˇcen´ı se skl´adalo ze 4–7 d´ılˇc´ıch ´ukol˚u. V bal´ıku soubor˚u bylo vˇzdy nˇekolik skript˚u. Cel´e to bylo postaven´e tak, aby se student zab´yval pouze j´adrem vˇeci. M´ym ´ukolem bylo doplnit urˇcit´y poˇcet skript˚u, kter´e se pak postupnˇe volaly v hlavn´ım pˇripraven´em programu. Bylo potˇreba dˇelat vˇse postupnˇe, protoˇze na sebe ´ukoly vˇzdy navazovaly a poˇc´ıtaly s t´ım, ˇze pˇredchoz´ı funkce jsou jiˇz hotov´e.

Hlavn´ı program vˇzdy porovn´aval hodnoty, kter´e maj´ı vych´azet s tˇemi, kter´e vracely m´e funkce. Pokud se liˇsily, tak jsem vˇedˇel, ˇze je nˇeco ˇspatnˇe a musel jsem program pˇredˇelat. Po vyhotoven´ı vˇsech ˇc´ast´ı se pˇr´ımo z konzole Octave na server Coursery odes´ılaly v´ysledky. Pˇresnˇeji se odes´ılaly moje naprogramovan´e skripty, pouˇstˇely se na tamnˇejˇs´ım serveru a porovn´avaly se v´ystupn´ı hodnoty. Pokud nastala chyba, byl jsem informov´an. Pokud ne, bylo mi poblahopˇr´ano a mˇel jsem pro jeden t´yden splnˇeno.

Pln´y poˇcet bod˚u za teoretick´e ´ulohy mohl b´yt vˇzdy 5 a z programovac´ıch ´uloh 100. Na kaˇzdou ´ulohu byly pˇribliˇznˇe dva t´ydny ˇcasu a pokud jsem to nestihl, tak jsem m´ısto pln´eho poˇctu mohl z´ıskat maxim´alnˇe 80 %. ˇZ´adn´e body by se nepˇripsaly pouze v pˇr´ıpadˇe nevyplnˇen´ı nebo odesl´an´ı po term´ınu ukonˇcen´ı cel´eho kurzu. 80 % byla tak´e hranice, nad kterou se ˇclovˇek musel dostat, aby z´ıskal certifik´at (m˚uj certifik´at k nahl´ednut´ı v pˇr´ıloze B).

Neodmyslitelnou ˇc´ast´ı cel´eho snaˇzen´ı byla konzultace v´ysledk˚u s ostatn´ımi stu-denty v diskuzn´ıch f´orech. Nesmˇely se tam publikovat ˇz´adn´e v´ysledky ani konkr´etn´ı postupy a ˇclenov´e t´ymu kurzu to peˇclivˇe kontrolovali a takov´e pˇr´ıspˇevky rychle mazali. Naopak ale tak´e odpov´ıdali a radili, jak d´al. Ke kaˇzd´emu programovac´ımu cviˇcen´ı vˇzdy vytvoˇrili Unit Testy s ovˇeˇren´ymi daty, na kter´ych jsem si mohl ovˇeˇrit spr´avnou funkˇcnost.

Celkovˇe mˇe cel´y svˇet kolem MOOC velmi nadchl, zejm´ena pak v oblasti stro-jov´eho uˇcen´ı. Kurz mˇe bavil od zaˇc´atku do konce a na uˇcen´ı nov´ych informac´ı jsem se vˇzdy velmi tˇeˇsil. Nemohu jinak neˇz tento kurz doporuˇcit i ostatn´ım nadˇsenc˚um.

Informace z kurzu jsou k dispozici i po jeho skonˇcen´ı a kdykoliv potˇrebuji sehnat informace o strojov´em uˇcen´ı, tak v´ım, kde hledat.

3 Metody supervizovan´ eho uˇ cen´ı

Strojov´e uˇcen´ı [2, lekce 1, s. 15], [3, s. 60–61] je oblast, kter´a se zab´yv´a algoritmy, jeˇz jsou schopn´e zlepˇsovat sv´e v´ysledky na z´akladˇe rostouc´ı zkuˇsenosti. Dvˇe nejvˇetˇs´ı ka-pitoly t´eto oblasti jsou supervizovan´e a nesupervizovan´e uˇcen´ı. Tato pr´ace se zab´yv´a pouze supervizovan´ym uˇcen´ım. Tyto algoritmy tvoˇr´ı model nad zn´am´ymi daty. Je-den vzorek dat se skl´ad´a z p´aru vstupn´ıho a v´ystupn´ıho objektu. To, ˇze data zn´ame, znamen´a ˇze pro kaˇzd´y vstupn´ı objekt je zn´am´a hodnota v´ystupn´ıho objektu. V ne-supervizovan´em uˇcen´ı o vzorku tuto informaci nem´ame. Vstupn´ı objekt b´yv´a vektor hodnot (atribut˚u) a v´ystupn´ı objekt pak hodnota. Pokud se jedn´a o data, na kter´a se aplikuje regresn´ı model, tak je v´ystupn´ı hodnota spojit´a. Pokud se aplikuje kla-sifikaˇcn´ı model, tak je v´ystupn´ı hodnota diskr´etn´ı (kategorick´a).

3.1 Popis pouˇ zit´ eho znaˇ cen´ı

Tr´enovac´ı set – data, na kter´ych se model uˇc´ı Testovac´ı set – data, na kter´ych se model testuje x – vstupn´ı vektor vzorku

y – v´ystupn´ı hodnota vzorku

m – poˇcet vzork˚u v tr´enovac´ım setu

n – d´elka vstupn´ıho vektoru (poˇcet atribut˚u) θ – vektor parametr˚u ve funkci hypot´ezy (x, y) – jeden vzorek

(x(i), y(i)) – i-t´y vzorek

a(j)i – aktivaˇcn´ı funkce neuronov´e s´ıtˇe jednotky i ve vrstvˇe j

Θ(j) – matice vah zajiˇst’uj´ıc´ı funkˇcn´ı mapov´an´ı z vrstvy j do vstvy j + 1

In document Strojov´e uˇcen´ı a Datamining (Page 18-21)

Related documents