machine learning
TRANSCRIPT
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
Į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
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
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.
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ą.
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.
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.
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.
Weka - vienas iš populiariausių įrankių komplektų, įterptas Java kalboje.
LibSVM - C++ ir Java kalbose.
SVMlight - C kalboje.
C4.5 - C kalboje.
SNSS - C kalboje.
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.
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