machine learning

14
Turinys Įvadas............................................................ 3 Dirbtinis intelektas.............................................. 4 Sėkmingos mašininio mokymo naudojimas sistemose...................6 Mašininio mokymo vieta kompiuterių moksle.........................7 Pagrindiniai mašininio mokymosi algoritmų tipai:..................8 Programinės įrangos kūrimo užduotys ir taikomi metodai............8 Mašininis mokymas programavime....................................9 Išvados.......................................................... 10 Literatūros sąrašas.............................................. 11

Upload: jbuckus

Post on 26-Oct-2014

103 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Machine Learning

Turinys

Įvadas.....................................................................................................................................................3

Dirbtinis intelektas.................................................................................................................................4

Sėkmingos mašininio mokymo naudojimas sistemose..........................................................................6

Mašininio mokymo vieta kompiuterių moksle.......................................................................................7

Pagrindiniai mašininio mokymosi algoritmų tipai:................................................................................8

Programinės įrangos kūrimo užduotys ir taikomi metodai....................................................................8

Mašininis mokymas programavime.......................................................................................................9

Išvados..................................................................................................................................................10

Literatūros sąrašas................................................................................................................................11

Page 2: Machine Learning

Įvadas

Mašininis mokymas tai dirbtinio intelekto šaka. Tai mokslinė disciplina susijusi su algoritmų kūrimų,

įgalinanti kompiuterius tobulinti savo elgseną atsižvelgiant į empirinius duomenis. Mašininis mokymas

sprendžia problemą, kaip sukurti programas kurios pačios mokosi iš savo patirties atliekant kokias nors

užduotis.

Mašininio mokymo algoritmai įrodė, turi didžiulę vertę programų srityje.

Mašininio mokymo apibrėžimas:

Sakome, kad kompiuterio programa mokosi iš patyrimo E atsižvelgdama į tam tikrą užduočių klasę T

ir veiklos įvertįnimąP, jei jos veikla užduotyje T, matuojant pagal įvertįnimąP, gerėja patyrimo E

atžvilgiu

Page 3: Machine Learning

Dirbtinis intelektas

Praėjus dviem tūtstančiams mūsų eros metų žmogus vis bando suprasti, kaip jis mąsto. Dirbtinio

Intelekto srityje sprendžiami dar labiau atsakingi uždaviniai: bandoma suprasti ne tik intelekto prigimtį,

bet ir sukurti intelektualias butybes. Pati dirbtinio intelekto idėja atsirado jau senokai, tačiau ką ji iš

tikrųjų reiškia ir ar toli pažengė, vis dar diskusijų objektas.

Taigi Dirbtinis Intelektas tai mokslas ir intelektualių mašinų bei sistemų kūrimas, plėtojimas ypatingai

intelektualių kompiuterinių programų, skirtų žmogaus intelekto supratimui.

Dirbtinis intelektas skiriasi nuo įprastų kompiuterinių algoritmų tuo, kad gali mokytis, atlikdamas tą

patį veiksmą gali elgtis kitaip priklausomai nuo prieš tai atliktų veiksmų. Šios srities tyrimai remiasi

psichologijos ir neurologijos, matematikos ir logikos, komunikacijos teorijos, filosofijos ir lingvistikos

mokslų duomenimis.

Pagrindiniai metodai, kurie naudojami DI projektuose.

„Planning“ - į kompiuterį įvedama daugybė įvairių veiksmų variantų. Po to jam suteikiamas esamos

padėties ir laukiamo rezultato apibrėžimas. Kompiuteris, peržiūrinėdamas visus galimus variantus ir

atmesdamas neteisingus, ieško optimalaus tikslo pasiekimo kelio. Pagal turimus duomenis sudaromas

sprendimo algoritmas (teisingų veiksmų seka).Tipiškas pavyzdys: šachmatų mašina „Deep Blue“.

„Machine Learning“ - bandymas sukurti tokią sistemą, kuri galės pati tobulintis savarankiškai

papildydama savo duomenų bazę. Kažką panašaus jau moka kai kurios programos,tačiau galimybės čia

labai ribotos, ir jos visos taip pat priklauso nuo žmogaus. Ideali sistema privalo mokėti atpažinti ir

analizuoti tekstą, sujungti su internetu ir važinėtis jo platybėse, susiurbti milžiniškus informacijos

srautus.

„Automating Programing“ - kompiuteris turi galingą vidinę programavimo kalbą. Kuomet jam

duodamas suformuluotas uždavinys, jis pats rašo programą jo išsprendimui. Norėdami tai įsisamoninti,

įsivaizduokime, kad vieną gražią dieną „Borland C++“ pats pradės lipdyti funkcijas ir kintamuosius,

kurdamas varikliuką “Quake 4” .

„Pattern Recognition“ - kai programa bendrauja su aplinka, ji nuolat sulygina „tai, ką pamatė“ su

duomenų bazėje esančiais šablonais ir, priklausomai nuo užprogramuotos reakcijos, adekvačiai

Page 4: Machine Learning

reaguoja. Akivaizdus bandymas kompiuteriu atgaminti žmogaus regėjimą, visuotinai naudojamas

vaizdų ir karinių taikymo sistemų atpažinimo sistemose.

„Inference“ - priešingybės metodas. Tai reiškia, kad programa priima kokį nors sprendimą ir laiko jį

vieninteliu teisingu, kol nėra įrodyta priešingai. Pavyzdžiui, pamatęs paukščio skrydį, kompiuteris

visus paukščius laiko mokančiais skraidyti tvariniais. Tačiau pakanka jam pamatyti pingviną arbą

strutį,jog įsitikintų priešingai.

„Knowledge Represantation“- darbas kuriant programą – transliatorių, išverčiantis gaunamus

duomenis į suprantamą kompiuteriui kalbą. Tai užduotis, kad kiekvienas AK „pamatytas“ vaizdas

pavirstų nulių ir vienetų seka, pranešančia jam apie daikto pavadinimą, formą, spalvą ir kitus atributus.

„Neural Networks“- bandymas atkurti vykstančius mūsų smegenyse procesus neuronų tinklais.

Neuronų tinklas – tai didžiulis kiekis tarpusavyje susietų paprastų procesorių, sąveikaujančių vienas su

kitu ir sugebančių keisti savybes priklausomai nuo pageidaujamo rezultato. Tokios konstrukcijos

lankstumas leidžia spręsti praktiškai bet kokias skaičiavimo ir logines operacijas, todėl „NN“ laikoma

viena iš perspektyviausių Dirbtinio Intelekto sričių. Problemą sudaro tik tai, kad pilnaverčio smegenų

modelio sukūrimui prireiks gerokai daugiau kompiuterių, nei dabar išvis yra visame pasaulyje.

„Heuristics“ - visų galimų situacijų sudarymo metodas, jų apdorojimas pašalinant neefektyvius

sprendimus ir ėjimas optimaliu keliu. Kažkas panašaus į „Planning“, tačiau čia kompiuteris pats

modeliuoja galimus įvykių vystymosi variantus. Vėlgi, geru pavyzdžiu bus „Deep Blue“. Mašina

apdoroja visas lentos figūrų kombinacijas 5-10 ėjimų į priekį, įvertindama bet kurios priešininko

sprendimus, ir nustato tokią elgesio linkmę, kuri duos geriausią rezultatą. „Deep Blue“duomenų

apdorojimo greitis – per 200 milijonų situacijų per sekundę, o dabar jau egzistuoja kompiuteriai,

dvigubai viršijantys šį rodiklį.

„Genetic Algorithms“ - proceso organizavimas, primenantis evoliuciją gamtoje. Tai vyksta maždaug

taip: progamavimo kalba „Lisp“ rašomos kelios programos, kurios tarpusavyje „sukryžminamos“ ir

taip sudaro begalę alternatyvių. Šios savo ruožtu, pakartoja tą patį veiksmą. Iš gautų milijonų

kombinacijų atrenkamos tos „kolonijos“, kurios labiausiai atitinka uždavinio sąlygas, kitos – savaime

susinaikina. Papildydamos viena kitą, išlikusios programos ir yra optimalus sprendinys.

Page 5: Machine Learning

Sėkmingos mašininio mokymo naudojimas sistemose

Balso atpažinimas - visos dabartinės komercinės balso atpažinimo sistemos vienu ar kitu būdu

naudoja mašininį mokymą kad išmokyti programą atpažinti balsą. Priežastis yra paprasta, balso

atpažinimo sistemos tikslumas yra didesnis jei ji išmokoma atpažinti balsą, nei tų kurios būna

suprogramuotos.

Kompiuterinė rega - dauguma dabartinių regos sistemų, nuo tokių kaip veido atpažinimo sistemos iki

sistemų kurios automatiškai klasifikuoja mikroskopines ląstelių nuotraukas, yra sukurtos naudojant

mašininį mokymą. Ir vėl gi todėl kad taip rezultatas būna kurkas tikslesnis, nei paprastai

suprogramuotos sistemos. Viena iš didžiausių sričių, kur mašininis mokymas yra naudojamas

kompiuterinėje regoje yra naudojama Jugtinių Valstijų Pašte. Labai tiksliai išmokinta sistema,

automatiškai rušiuoja laiškus pagal adresą, kurie yra parašyti ranka ant laiškų.

Robotų valdymas–mašininio mokymo metodai sėkmingai buvo pritaikyti ir robotų sistemose.

Pavyzdžiui, keletas mokslininku pademonstravo mašninio mokymo principą valdant pastovų bei

akrobatinį sraigtasparnio skrydį. Vykusiose DARPA varžybose, kur varžosi nepilotuojamos transporto

priemonės, 100 mylių trasoje dykumoje taip pat buvo laimėta roboto, kuriame buvo naudojama

mašininis mokymas. Buvo naudojama pačio surinkta informacija apie teritoriją matomą tolyje.

Empirinių mokslų spartinimas – daug duomenimis pagristų mokslų dabar naudoja mašininio

mokymo metodus, kad palengvinti mokslinio atradimo procesą. Mašininis mokymas naudojamas,

išmokti genų išreiškimo modelius molekulėse iš didelio našumo duomenų. Atrasti neįprastus

astronominius objektus iš didelio kiekio duomenų surinkto iš „Sloan dangaus nuotraukos“. Apibūdinti

sudėtingus smegenų veiklos modelius, kurie duoda signalus skirtingoms žmonių pažinimo būsenom

fMRI skaneriuose. Mašininio mokymo metodai, pakeičia visą duomenimis paremtų empirinių mokslų

praktiką.

Bio priežiūra - ligų protrūkių sekimui naudojamas mašininis mokymas.Kaip pavyzdys RODS

apsaugos programa, realiu laiku renka ir siunčia ataskaitas pagalbos centrams Vakaru Pensilvanijoje

naudodami mašininio mokymo programinę įranga aptinka anomalinius simptomus ir jų geografinį

išdėstymą.Dabartinis darbas susijes su daug papildomų duomenų. Pavyzdžiui mažmeninė prekyba

susijusi su vaistų pardavimu,siekiant padidinti informacijos srautą į sistemą,reikia naudoti automatinio

mokymosi metodus nes tai dar padidina duomenų tisklumą.

Page 6: Machine Learning

Mašininio mokymo vieta kompiuterių moksle

Mašininio mokymo metodai yra geriausi galimi metodai kuriant tam tikrą programinę įrangą tada kai:

Programa yra per sudėtinga, kad žmonėms patiems suprogramuoti ją. Pavyzdžiui, programinė

įranga paremta sensorių supratimo užduotimis, tokioms kaip jau minėtosios balso arba vaizdo

atpažinimo programoms. Kiekvienas iš mūsų gali atpažinti kurioje iš nuotraukų yra mūsų

mama, bet negalime parašyti algoritmo šiai užduočiai. Čia ir yra reikalingas mašininis

mokymas, nes su tam tikrais surinktais mokymo duomenimis, galima parašyti algoritmą, kuris

sėkmingai išsprestų užduotį.

Kai reikalaujama, kad programinė įranga prisitaikytu prie veiklos aplinkos po to kai ji įdiegta.

Pavyzdžiui, kai balso atpažinimo programa turi prisitaikyti prie pirkėjo kai jis ją isigyja.

Mašininis mokymas čia suteikia prisitaikymo mechanizmą.

Pagal šiuos būdus, mašininio mokymo metodai vaidina labai svarbų vaidmenį kompiuterių moksle.

Page 7: Machine Learning

Pagrindiniai mašininio mokymosi algoritmų tipai:

Mašininio mokymo algoritmai yra susisteminti, priklausomai nuo norimo algoritmo rezultato.

Pagrindiniai algoritmų tipai yra šie:

Concept learning (CL) – koncepcinis mokymasis;

Supervised learning (SL) – prižiūrimas mokymasis;

Unsupervised learning (UL) – neprižiūrimas mokymasis;

Semi-supervised learning (SSL) – pusiau prižiūrimas mokymasis;

Decision tree (DT) - sprendimų medžiai;

Transduction (TD) – transdukcija;

Learning to learn (LTL) – mokymasis mokytis;

Artificial neuron networks (ANT) – dirbtiniai neuroniniai tinklai;

Bayesian belief networks (BBN) - bajeso įsitikinimų tinklai ;

Reinforcement learning (RL) – sustiprintas mokymasis;

Genetic algorythms (GA) - genetiniai algoritmai;

Genetic programming (GP) -genetinis programavimas;

Instance-based learning (IBL) - pavyzdžiais, paremtas mokymasis ;

Inductive logic programming (IGP) - indukcinės logikos programavimas;

Analytical learning (AL) - analizės mokymasis.

Programinės įrangos kūrimo užduotys ir taikomi metodai

Lentelėje talpinami programinės įrangos užduotys, kurioms yra taikomi mašininio mokymo metodai.

Šios užduotys priklauso skirtingiems gyvenimo ciklo procesams reikalavimų specifikacijoje,

projektavime, įgyvendinime, testavime bei palaikyme.

Page 8: Machine Learning

Reikalavimų inžinerija (Requirement engineering) – nurodo funkcijų įdiegimo procesą, kurias

programinė įranga turėtų turėti bei kokius apribojimus ji turėtų.

Greitas prototipavimas(Rapid prototyping) – tai svarbus įrankis, parodantis programinės įrangos

reikalavimus.

Kainos/pastangų spėjimas(Cost/effort prediction) – naudojamas kainos ar pastangų tam tikram

projektui spėjimą.

Testavimo spėjimo generavimas (Test oracle generation) – funkcionalumo testavimas įtraukia,

programos paleidimą testavimo rėžimu ir išeities kodo išanalizavimas.

Testavimo duomenų adekvatumas (Test data adequacy) –testavimo duomenų adekvatumo kriterijai,

tai taisykles kurios parodo ar programa buvo gerai ištestuota.

Validavimas (Validation) - Yra svarbūs tikrinimo procesas, siekiantis įsitikinti, kad patikrinimo ir

patvirtinimo įgyvendinimas atitinka sistemos specifikaciją.

Atvirkštinė inžinerija (Reverse engineering) – senos sistemos gali būti kritinės organizacijai, bet

vistiek turi būti prižiūrimos. Didžioji dalis senų sistemų buvo sukurtos pries technikos pakilimą, todel

gali būti labai prastai padarytos.

Mašininis mokymas programavime

Populiariausi mašininio mokymo įrankių komplektai yra įterpti žemo lygio programavimo kalbose.

Page 9: Machine Learning

Weka - vienas iš populiariausių įrankių komplektų, įterptas Java kalboje.

LibSVM - C++ ir Java kalbose.

SVMlight - C kalboje.

C4.5 - C kalboje.

SNSS - C kalboje.

Page 10: Machine Learning

Išvados

Mašininio mokymo pagalba galima kurti programas kurios mokosi pačios, pagal tam tikrus metodus,

kuriuos išvardinome referate. Mašininio mokymo sukurtos programos taikomas labai plačiai tai

palengvina tam tikrą darbą. Mašininis mokymas taikomas tada, kai sistemos yra per sudėtingos kad

paprastai jas suprogramuoti. Yra nemažai mašininio mokymo algoritmų, pagrindinius iš jų išvardinome

parašytame referate.

Mašininis mokymas yra tik viena dirbtinio intelekto šaka. Dirbtinis intelektas apima tokias šakas:

Planavimas;

Mašininis mokymas;

Automatinis programavimas;

Šablonų atpažinimas;

Priešingybės metodas;

Žinių atvaizdavimas;

Neuronų tinklai;

Genetiniai algoritmai;

Euristika.

Page 11: Machine Learning

Literatūros sąrašas

1. http://www.cs.cmu.edu/~tom/pubs/MachineLearning.pdf 2. http://www.disi.unige.it/person/ReggioG/PROCEEDINGS/zhang.pdf 3. ftp://ftp.science.mii.lt/pub/KoDi2011/09.22_Mokomieji_seminarai/Baziuke_Masininis_mokymasis.pdf 4. http://ijes.info/1/2/4254126.pdf 5. http://www.intechopen.com/articles/show/title/types-of-machine-learning-algorithms