Masinõpe

**Masinõppimine** (inglise keeles *machine learning*) on teadusvaldkond, mille eesmärk on välja töötada empiiriliste andmete põhjal otsuseid ja ennustusi tegevaid algoritme.

## Ajalugu

Masinõpe sai alguse 1950. aastatel, kui Arthur Samuel valmistas kabet mängiva programmi. Samuel oli üks esimesi, kes kasutas efektiivselt ära heuristilisi otsingumeetodeid ehk ajalise vahega õppimist. 1959. aastal avaldatud Oliver Selfridge artiklist "Pandemoonium" sai tehisintellekti valdkonnas klassika. Selfridge'i arhitektuur suutis modelleerida inimesega sarnast seaduspärasuste tuvastust. 1960. aastatel loodi esimene kunstlik närvivõrk – pertseptron. See teisendab sisendi x (reaalväärtustega vektor) väljundiks f(x), mis on tavaline binaarväärtus. Pertseptroni korral on tegu lineaarse klassifitseerijaga. 1970. aastatel arendas Ross Quinlan välja ID3 algoritmi, mis genereeris otsustuspuu. ID3 on C4.5 algoritmi eelkäija. Järgmistel aastakümnetel tuli välja selgituspõhine õpe ning uuesti hakkasid populaarsust koguma tehislikud närvivõrgud. Järgmisel kahel aastakümnel arendati andmekaevet, tekstiõppimist, abistatud õpet, induktiivset loogikaprogrammeerimist ja Bayesi võrkude põhjal õppimist. Viimase kümne aasta jooksul on tekkinud tugivektor-masinad, graafilised mudelid ning palju on arendatud masinõppimist robootikas ja masinnägemises.

## Formaalne definitsioon

Tom Michael Mitchell on öelnud masinõppimise formaalseks definitsiooniks laialt tsiteeritud lause: "Arvutiprogramm õpib kogemusest E ülesannete klassi T ja tulemuste mõõdu P suhtes, kui selle tulemuslikkus klassi T ülesannetes, nii nagu mõõdetud P kaudu, paraneb kogemusega E." 

## Üldistus

Õppija põhiline eesmärk on teha üldistusi eelneva kogemustehulga põhjal. Programmi jaoks tulnud treeningandmed on suvalise tõenäosusjaotusega, kuid programm peab nende andmete põhjal eraldama informatsiooni, mis võimaldaks programmil luua kasulikke vastuseid ja teha üldiseid järeldusi.

## Masinõppimine, andmebaasidest teadmiste avastamine ja andmekaeve

Neid kolme valdkonda aetakse mõnikord segi, kuna nad kasutavad tihti samu meetodeid ja kattuvad paljuski. Siiski on neil erinevusi:

* Masinõppimine keskendub rohkem treeningandmetes olemasolevate omaduste põhjal ennustuste tegemisele.
* Andmekaeve, mis on andmebaasidest teadmiste avastamise analüüsi osa, keskendub rohkem andmetest uute omaduste leidmisele.

Andmekaeve kasutab küll masinõppemeetodeid, kuid tihti on nende kasutamisel hoopis teine eesmärk. Samuti kasutatakse õppija täpsuse parandamiseks meetodeid andmekaevest.

## Inimese mõju

Mõned masinõppesüsteemid proovivad andmeanalüüsi teha inimese intuitsioonita, kuid teised süsteemid kasutavad rohkem inimese ja masina koostööd. Inimese intuitsiooni pole võimalik täielikult elimineerida, kuna süsteemi disainija peab täpsustama süsteemile esitatavate andmete kuju ja andmete karakteriseerimiseks kasutatavaid mehhanisme.

## Algoritmide tüübid

Masinõppe algoritmid jaotatakse oodatava tulemuse põhjal kategooriatesse:

* Juhendatud masinõpe genereerib funktsiooni, mis teisendab sisendandmed soovitud väljundandmeteks. Näiteks liigituse probleemis genereerib õppija funktsiooni, mis teisendab sisendvektori klassideks, vaadates funktsiooni sisend- ja väljundnäiteid. Juhendamisega õppel peab masinale olema etteantud märgistatud treeninguandmete kogu, mille põhjal tehakse uusi järeldusi.
* Juhendamata masinõppe korral proovitakse leida märgistamata andmete kogust uusi struktuure.
* Vähese juhendamisega õppes kasutatakse nii märgistatud kui ka märgistamata andmeid, et luua sobiv funktsioon või klassifitseerija.
* Abistatud õpe on masinõppe ala, mis tegeleb põhiliselt sellega, kuidas õppija peaks keskkonnas käituma, et maksimeerida kumulatiivset tasu. Igal teol on mõju keskkonnale ning keskkond annab tagasiside tasu vormis, mis juhib õppimisalgoritmi.
* Õppima õppimine – programm õpib kogemuse põhjal uue hulga eeldusi, mida kasutatakse selliste sisendite väljundite ennustamisel, milliseid programm pole ise veel kohanud.

## Teooria
Masinõppe algoritmide ja nende jõudluse arvutuslik analüüs on teoreetilise informaatika üks harusid, mida kutsutakse arvutuslikuks õppeteooriaks. Kuna treeninghulgad on lõplikud ja tulevik on määramatu, ei pruugita õppeteooria algoritmide jõudlust alati õigesti kirjeldada. Algoritmide jõudluse kirjeldamiseks kasutatakse tõenäosuslikke piirdeid.

Peale jõudluse piirete kasutavad arvutusliku õppimise teoreetikud algoritmi ajalist keerukust ja õppimise võimalikkust. Arvutuslikus õppeteoorias on arvutus võimalik ainult siis, kui see saavutatakse polünomiaalse ajaga. On olemas kahte liiki ajalise keerukuse tulemusi. Positiivsed tulemused näitavad, et teatud funktsioonide klasse on võimalik ära õppida polünomiaalse ajaga. Negatiivsed tulemused näitavad, et teatud klasse ei saa ära õppida polünomiaalse ajaga.

## Meetodid
### Otsustuspuu põhjal õppimine

Otsustuspuu põhjal õppimine kasutab ennustava mudelina puu andmestruktuuri, mis ennustab soovitud muutuja väärtuse mitmete sisendparameetrite põhjal.

### Assotsiatsioonireeglite õppimine

Assotsiatsiooni reeglite õppimine on populaarne ja hästi uuritud meetod leidmaks suurtest andmebaasidest relatsioone eri muutujate vahel. Las I=\{i_1, i_2,\ldots,i_n\} olla esemete hulk ja D = \{t_1, t_2,\ldots, t_m\} olla tehingute hulk. Igal tehingul on oma ID ja sisaldab alamhulka I elementidest. Reegel defineeritakse kui implikatsioonina X \Rightarrow Y, kus X, Y \subseteq I ja X \cap Y = \emptyset. Näiteks kui mõne poe I= \{\mathrm{piim, leib, margariin, liha}\} ja reegel on \{\mathrm{margariin, leib}\} \Rightarrow \{\mathrm{piim}\}, tähendab see seda, et kui kliendid ostavad võid ja leiba, ostavad nad ka piima.

### Tehislikud närvivõrgud

Tehisliku närvivõrgu õppimisalgoritm on algoritm, mis on inspireeritud bioloogiliste närvivõrkude struktuurist ja funktsioonist. Tänapäevased tehislikud närvivõrgustikud on mittelineaarsed statistilised andmemodelleerimise vahendid. Neid kasutatakse keerukate sisendite ja väljundite suhete modelleerimisel, andmetest seaduspärasuste otsimisel või mitmete muutujate ühise tõenäosusjaotuse statistilise struktuuri leidmisel.

### Geneetiline programmeerimine

Geneetiline programmeerimine on bioloogilisest evolutsioonist inspireeritud metodoloogia, mille ülesanne on leida kasutaja poolt defineeritud ülesannetele neid lahendavaid programme. See on geneetiliste algoritmide spetsialiseerumine, kus iga osa on eraldi arvutiprogramm. Geneetiline programmeerimine on masinõppe nipp, mida kasutatakse arvutiprogrammide hulga optimeerimiseks nende suutlikkuse järgi etteantud ülesannet täita. Algselt genereeritakse suvaliselt programmide kogum ning aja möödudes jäävad valikulise protsessi toimel järele ainult parimad.

### Induktiivse loogika programmeerimine

Induktiivse loogika programmeerimine on üks lähenemine reeglite õppimisele, kasutades loogilise programmeerimise meetodit ühtse esindajana andmetele, taustainfole ja hüpoteesidele. Kui ette on antud loogilise andmebaasina taustainfo ja hulk andmeid, tuletab induktiivse loogika programmeerimise süsteem hüpotiseeritud loogikaprogrammi, milles on kõik positiivsed ja mitte ühtegi negatiivset näidet.

### Tugivektor-masinad

Tugivektor-masinad on hulk seotud juhendamisega õppe meetodeid, mida kasutatakse klassifikatsiooniks ja regressiooniks. Kui ette on antud hulk treeningandmeid, kus kõik andmed on eraldi kategooriatesse kuuluvatena märgistatud, siis tugivektor-masina treenimisalgoritm ehitab mudeli, mis ennustab, kuhu kategooriasse uus andmetükk kuulub. Tugivektor-masin loob hüpertasandi või hüpertasandite hulga mitmedimensioonilises ruumis.

### Klasterdamine

Klasteranalüüs või klasterdamine on mõõtmiste hulga eraldamine alamhulkadeks ehk klastriteks, nii et ühes klastris oleks kõik mõõtmised kuidagi omavahel seotud. Klasterdamine on üks juhendamata õppe meetoditest ja tavaline statistilise andmeanalüüsi meetod.

### Bayesi võrgud

Bayesi võrk ehk suunatud atsükliline graafiline mudel on tõenäosuslik graafiline mudel, mis esindab juhuslike muutujate hulka ja nende tingitud sõltumatust suunatud atsüklilise graafi kaudu. Näiteks suudab Bayesi võrk esindada haiguste ja sümptomite vahelist tõenäosuslikke suhteid. Kui ette on antud sümptomid, siis Bayesi võrk suudab välja arvutada eri haiguste olemasolu tõenäosust.

### Abistatud õpe

Abistatud õpe tegeleb sellega, kuidas õppija või agent peaks keskkonnas tegutsema, et maksimeerida pikas perspektiivis tasu. See algoritm üritab leida strateegia, mis teisendab keskkonna olekud nendeks tegudeks, mida agent peaks sooritama. Abistatud õppes, erinevalt juhendamisega õppest, ei anta ette korrektseid sisend- ja väljundpaare ega parandata vähem kui optimaalset käitumist.

### Regressioonanalüüs

Regressioonanalüüs sisaldab eri tehnikaid ja meetodeid, et modelleerida muutujatevahelisi seoseid. Kasutatakse lineaarregressiooni ja polünomiaalset regressiooni.

## Rakendusvaldkonnad

Masinõpe on kasutusel järgmistes valdkondades:

*masinnägemine
*süntaktiline mustrituvastus
*otsingumootorid
*inimkeele analüüs
*meditsiinilised diagnoosid
*bioinformaatika
*keemiline informaatika
*krediitkaardipettuste avastamine
*aktsiaturgude analüüs
*DNA järjestuse klassifitseerimine
*kõne- ja käsitsikirjatuvastus
*objektituvastus masinnägemises
*arvutimängud
*tarkvaraarendus
*adaptiivsed veebilehed
*robootika
*arvutuslik finants
*arvamuse analüüs
*go

## Tarkvara

RapidMiner, KNIME, Weka, ODM, Shogun Toolbox, Orange, Apache Mahout, scikit-learn ja SVM-Light on näiteid masinõppe tarkvaraplatvormidest.

Internetis on võimalus masinõpet õppida Andrew Ng veebikursusel ml-class.org, mis põhineb Stanfordi ülikool kursusel, mille loengumaterjalid on saadaval tasuta. Kursusel kasutatakse GNU Octave'i platvormi.

## Ajakirjad ja konverentsid

*Machine Learning (ajakiri)
*Journal of Machine Learning Research (ajakiri)
*Neural Computation (ajakiri)
*Journal of Intelligent Systems (ajakiri)
*International Conference on Machine Learning ehk ICML (konverents)
*Neural Information Processing Systems ehk NeurIPS (konverents)

## Vaata ka
*Andmekaeve
*Stiimulõpe

## Viited

## Lisalugemist
* Sergios Theodoridis, Konstantinos Koutroumbas (2009) "Pattern Recognition", 4th Edition, Academic Press, ISBN 978-1-59749-272-0.
* Ethem Alpaydın (2004) *Introduction to Machine Learning (Adaptive Computation and Machine Learning)*, MIT Press, ISBN 0-262-01211-1
* Bing Liu (2007), *[http://www.cs.uic.edu/~liub/WebMiningBook.html Web Data Mining: Exploring Hyperlinks, Contents and Usage Data].* Springer, ISBN 3-540-37881-2
* Toby Segaran, *Programming Collective Intelligence*, O'Reilly ISBN 0-596-52932-5
* Ray Solomonoff, "An Inductive Inference Machine"
* Ryszard S. Michalski, Jaime G. Carbonell, Tom M. Mitchell (1983), *Machine Learning: An Artificial Intelligence Approach*, Tioga Publishing Company, ISBN 0-935382-05-4.
* Ryszard S. Michalski, Jaime G. Carbonell, Tom M. Mitchell (1986), *Machine Learning: An Artificial Intelligence Approach, Volume II*, Morgan Kaufmann, ISBN 0-934613-00-1.
* Yves Kodratoff, Ryszard S. Michalski (1990), *Machine Learning: An Artificial Intelligence Approach, Volume III*, Morgan Kaufmann, ISBN 1-55860-119-8.
* Ryszard S. Michalski, George Tecuci (1994), *Machine Learning: A Multistrategy Approach*, Volume IV, Morgan Kaufmann, ISBN 1-55860-251-8.
* Bishop, C.M. (1995). *Neural Networks for Pattern Recognition*, Oxford University Press. ISBN 0-19-853864-2.
* Richard O. Duda, Peter E. Hart, David G. Stork (2001) *Pattern classification* (2nd edition), Wiley, New York, ISBN 0-471-05669-3.
* Huang T.-M., Kecman V., Kopriva I. (2006), Kernel Based Algorithms for Mining Huge Data Sets, Supervised, Semi-supervised, and Unsupervised Learning, Springer-Verlag, Berlin, Heidelberg, 260 pp.&nbsp;96 illus., ISBN 3-540-31681-7.
* KECMAN Vojislav (2001), Learning and Soft Computing, Support Vector Machines, Neural Networks and Fuzzy Logic Models, The MIT Press, Cambridge, MA, 608 pp., ISBN 0-262-11255-8.
* MacKay, D.J.C. (2003). *[http://www.inference.phy.cam.ac.uk/mackay/itila/ Information Theory, Inference, and Learning Algorithms]*, Cambridge University Press. ISBN 0-521-64298-1.
* Ian H. Witten and Eibe Frank *Data Mining: Practical machine learning tools and techniques* Morgan Kaufmann ISBN 0-12-088407-0.
* Sholom Weiss and Casimir Kulikowski (1991). *Computer Systems That Learn*, Morgan Kaufmann. ISBN 1-55860-065-5.
* Trevor Hastie, Robert Tibshirani and Jerome Friedman (2001). *[http://www-stat.stanford.edu/~tibs/ElemStatLearn/ The Elements of Statistical Learning]*, Springer. ISBN 0-387-95284-5.
* Vladimir Vapnik (1998). *Statistical Learning Theory*. Wiley-Interscience, ISBN 0-471-03003-1.

## Välislingid
* Masinõppimine
* Masinõppe e-loengud
* Rahvusvaheline masinõppeselts