Sprva se povprašajmo o sposobnosti učenja
samega – kdo oziroma kaj se je sposobno učiti, na kakšen način in s kakšnim
namenom? Ta sposobnost naj bi bila ena od osnovnih lastnosti inteligentnih
sistemov, ki iz podatkov in predznanja oblikujejo uporabno zaključeno celoto in
jo uporabljajo pri nadaljnem reševanju problemov. Predznanje v primeru sistemov
lahko definiramo kot množico možnih rešitev oziroma modelov, ki ga bo ta sistem
poskušal med učenjem izpolniti, že leta 1959 pa je bilo strojno učenje
definirano kot področje študije, ki daje računalniku sposobnost učenja brez
izrecnega programiranja.
Slika 1: Googlov ,database'
Strojno učenje (angleško: machine learning) je
podvrsta računalništva, in sicer proces pridobivanja znanja na podlagi
izkušenj, pri katerem ne gre za učenje na pamet, temveč za odkrivanje nekih
zakonitosti, pravil v podatkovnih bazah, s tem pa tudi odgovarjanjem na
vprašanje, ki ni nujno sodelovalo pri učenju. Osnovna naloga strojnega učenja
je modeliranje pojavov iz določenih podatkov, uporablja pa se na številnih
področjih: v medicini, ekonomiji, industriji, prav tako pa tudi pri razumevanju
naravnega jezika, analizi podatkov, odkrivanju zakonitosti v bazah podatkov,
učenje prepoznavanj, igranje iger, podatkovno rudarjenje, preverjanje in
klasifikacijo tekstov, nadzor dinamičnih procesov, gradnji baz znanja,
reševanju nekaterih problemov, računalniškem prepoznavanju slik in zvoka,
avtomatskem sklepanju in dokazovanju izrekov... Rezultati učenja samega so
lahko različni, največkrat so to pravila, relacije, sistemi enačb, verjetnostne
porazdelitve in funkcije, ti naučeni modeli pa poskušajo razložiti podatke in
jih lahko uporabijo za odločanje pri opazovanju prihodnjih procesov.
Za lažje razumevanje delovanja strojnega
učenja predlagam ogled spodnjega videa:
Vrste strojnega učenja lahko delimo na
različne načine:
Glede na nadzor učenja:
·
vzpodbujevalno učenje, pri katerem
algoritem uči na podlagi nagrajevanja in kaznovanja s taktiko največjega
izoristka uporabnosti
·
nadzorovano učenje, pri katerem
algoritem uči stroj z vnaprej podanimi pari vhodnih podatkov, izhodni pa so
točno določeni s strani nadzornika
·
nenadzorovano učenje, pri katerem algoritem
razdeli vnaprej dane vhodne podatke v več kategorij po nekih določenih
kriterijih s svojimi značilnostmi, število teh kategorij ter in njihove
značilnosti pa so povezane z algoritmom in vhodnimi podatki, kar pa poteka brez
nadzora človeka
·
Za razlago vrst strojnega učenja
glede na nadzor priporočam spodnji video:
Glede na prilagajanje:
·
ofline učenje, pri katerem se
celotno učenje stroja izvede pred dejansko uporabo stroja
·
inkrementalno učenje, pri katerem stroj
učimo pred uporabo, a le 'ofline', če pa med uporabo zaznamo težavo, lahko
opravimo naknadno oziroma dodatno učenje
·
online učenje, pri katerem najprej
izvedemo že prej omenjeno 'ofline' učenje, a z zmanjšanim naborom vzorcev
učenja, med samo uporabo pa stroj sprotno dodatno učimo z dodajanjem vzorcev
Poznamo še veliko več vrst metod:
·
statistične metode: diskriminantna
analiza, k-najbližjih sosedov, Bayesov klasifikator, naivni Bayesov
klasifikator
·
umetne nevronske mreže
·
simbolično induktivno učenje: z
odločitvenimi drevesi in pravili, učenjem konceptov, indukcijo logičnih programov...
Med najbolj znanimi primeri strojnega učenja
so:
·
nevronske mreže: naprave za
obdelovanje informacij, ki pa delujejo na podlagi oziroma po vzoru človeških
ali živalskih možganov
·
skriti model Markova (SMM): model,
najlažje opisan z dvema naključnima procesoma, prvi ustreza verigi Markova pri
kateri so stanja in prehodi označeni z verjetnostjo stanje verig pa navzven ni
vidno ali skrito, drugi pa daje vidne znake ustrezne verjetnosti porazdelitve
odvisnosti od stanja v vsakem trenutku
·
metoda podpornih vektorjev: metoda
razvrščanja množice predmetov v razrede, gre za matematični postopek
prepoznavanja vzorcev
Da se vrnem na začetek: vprašajmo se o
sposobnosti učenja samega – kdo oziroma kaj se je sposobno učiti, na kakšen
način in s kakšnim namenom? Na drugi strani te teme je zagotovo vprašanje o
moralnih načelih in podatkih, ki jih pustimo strojem, da si jih zapomnijo in
uporabljajo vnaprej. Strojno učenje smo spustili in začeli uporabljati na vseh
področjih našega doživljanja, s tem pa ustvarili ogromno novih služb na tem področju, med drugim tudi nadzornike pretoka podatkov v različnih načinih pridobivanja znanja, razvila se je cela znanost v ozadju dojemanja in s tem tudi možnost za vse znanstvenike, ki jih zanima to še ne tako dobro raziskano področje umetne inteligence.
V vsakem primeru je strojno učenje koristno
orodje, nezamudno in uporabno na različnih področjih.
Viri:
Wikipedia:
Machine learning. Dostopno na spletnem naslovu:
Krapež, Alenka: Tehnologije znanja pri predmetu informatika. Dostopno na
spletnem naslovu:
Konenko,
Igor: Strojno učenje. Dostopno na spletnem naslovu:
Viri slik:
Slika 1. Dostopno na spletnem naslovu: http://www.spiegel.de/
Slika 2: Dostopno na spletnem naslovu: http://www.gsts.ca/
Slika 3: Dostopno na spletnem naslovu: danielmiessler.com