Strojové učenie

Počítačové programy a počítače všeobecne sa niekedy považujú za hlúpe, nakoíko len vykonávajú postup, ktorému n...


Počítačové programy a počítače všeobecne sa niekedy považujú za hlúpe, nakoíko
len vykonávajú postup, ktorému nerozumejú, ktorý bol do nich vložený človekom-
programátorom. Každý program je teda len natoíko inteligentný, nakoíko
inteligentný bol jeho tvorca. Program nemÖže získať nijaké nové znalosti, ktoré
by mu umožnili vedieť viac, ako vedel programátor, ktorý ho programoval,
program nemÖže predčiť svojho tvorcu samostatným získaním novej znalosti.
Skutočne nemÖže?
Strojové učenie je relatívne mladá oblasť. Počítače sa vo svojich počiatkoch
používali predovšetkým na realizáciu takých činností, ktoré sa dali exaktne
popísať (technické výpočty a pod.). Učenie ako také je však dosť vágny pojem;
človek si síce vie celkom dobre predstaviť, čo sa za týmto pojmom skrýva, ale
popísať dej učenia tak presne, aby ho bolo možné implementovať v počítači, je
veíký problém. Preto aj strojové učenie nie je jedna jediná metóda
napodobňujúca íudské učenie, ale je to rozsiahla množina metód, ktoré sa
používajú rÖznymi spÖsobmi v rÖznych situáciách.
Učenie íudské i strojové je cestou, ako získať schopnosti riešiť zložité úlohy.
Pokiaí je však schopnosť učiť sa človeku vlastná, pre stroj predstavuje i
samotné učenie zložitú úlohu.

Príklad a pojem
Metódy strojového učenia sú založené na spracovaní vzorových príkladov daného
problému. Týmto problémom mÖže byť napríklad strojové rozpoznávanie rukou
písaných písmen a číslic (aplikácia v bankovníctve, administratíve či poštových
službách) a vstupnými údajmi množina rukou písaných znakov abecedy a číslic
určitého počtu íudí, tzv. trénovacia množina údajov.
Cieíom strojového učenia je v tomto prípade nájsť taký model množiny
trénovacích údajov, ktorý by vedel správne priraďovať ku skutočným písmenám a
číslicam nielen rukou písané vzory z trénovacej množiny, ale aj iné rukou
písané vzory, pochádzajúce od iných íudí s iným typom písma. Cieíom aplikácie
akejkoívek metódy strojového učenia je teda nájsť popis vzorových údajov.
Spomínaný híadaný popis mÖže byť rÖzny v závislosti od metódy použitej na jeho
híadanie a od kvality trénovacích príkladov. Pre zrozumiteínosť nasledujúceho
výkladu je potrebné uviesť, že v terminológii strojového učenia sa príklad
označuje ako pojem. Pojmy sa rozdeíujú na pozitívne a negatívne; ak daný pojem
patrí do cieíovej triedy, je tento pojem pozitívny, ak do nej nepatrí, je
negatívny.
Ak je cieíom strojového učenia klasifikovať pojmy do viacerých tried (viď
vyššie uvedený príklad z rozpoznávaním písmen a číslic), je možné takúto úlohu
transformovať na viacero úloh klasifikácie do jednej triedy. Popis údajov mÖže
byť konzistentný, ak jednoznačne oddeíuje pozitívne príklady od negatívnych, i
keď možno nie je schopný pokryť všetky pozitívne príklady. Na druhej strane
mÖže byť popis údajov kompletný, ak pokrýva všetky pozitívne príklady i za tú
cenu, že spolu s nimi pokrýva aj niektoré negatívne príklady.
Z uvedeného vyplýva, že existujú určité triviálne popisy. Najjednoduchší
kompletný popis klasifikuje všetky pojmy ako pozitívne, najjednoduchší
konzistentný popis klasifikuje ako pozitívny jediný pojem. Ideálny popis by mal
byť kompletný a konzistentný zároveň. Úlohou pozitívnych trénovacích príkladov
je zvyšovať kompletnosť popisu a rozširovať množinu pojmov, ktoré tento popis
pokrýva. Úlohou negatívnych trénovacích príkladov je naopak zabrániť prílišnému
zovšeobecňovaniu popisu. Je preto jasné, že negatívne trénovacie príklady sú
rovnako dÖležité, ako pozitívne. Na tejto úvahe je možné založiť jeden zo
spÖsobov rozdelenia metód strojového učenia.

Rozdelenie metód
Niektoré metódy začínajú od triviálne konzistentného popisu klasifikujúceho iba
jediný pojem ako pozitívny a postupne tento popis zovšeobecňujú tak, aby
pokrýval čím viac pozitívnych pojmov ideálne všetky až potiaí, pokiaí to
umožňujú pojmy negatívne. Iné metódy používajú opačný prístup: Začínajú od
najkompletnejšieho popisu pokrývajúceho všetky pojmy bez rozdielu a tento popis
postupne konkretizujú tak, aby pokrýval čo najmenej negatívnych pojmov ideálne
žiadne až potiaí, pokiaí to umožňujú pojmy pozitívne.
Nie vždy je možné získať popis, ktorý by bol kompletný a konzistentný zároveň.
Niekedy to dokonca ani nie je žiadúce. Predstavme si prípad, kedy je trénovacia
množina údajov zašumená, t.j. obsahuje pozitívne pojmy označené ako negatívne a
naopak. Pre niektoré metódy strojového učenia tento šum vo vstupných údajoch
mÖže predstavovať neprekonateíný problém pri tvorbe modelu; iné metódy si s ním
vedia celkom dobre poradiť, samozrejme len po určitú únosnú hranicu.
S kompromisom medzi kompletnosťou a konzistenciou popisu súvisí aj problém
zvaný preučenie (angl. overfitting). Dochádza k nemu, keď model síce veími
dobre popisuje trénovacie údaje, ale jeho odozva na nové pojmy je veími zlá.
Cieíom metód strojového učenia je nájsť práve modely z dobrou odozvou na nové
údaje, nie nájsť dokonalý model uzavretej množiny trénovacích údajov. Príklad
preučenia je ukázaný na obrázku.

Nekontrolované učenie
Dosiaí sa uvažovalo, že pre trénovacie pojmy bolo možné rozhodnúť, či sú
pozitívne alebo negatívne. Učiaci algoritmus teda pre každý z týchto pojmov
mohol jednoznačne rozhodnúť, či ním budovaný model správne daný pojem
klasifikuje alebo nie a prípadne budovaný model na základe tejto informácie
pozmeniť. Takémuto typu učenia sa hovorí kontrolované učenie alebo učenie s
učiteíom (angl. supervised learning).
Existujú však prípady a nie je ich málo kedy síce disponujeme vzorovými
príkladmi, ale nie je ich možné označiť ako pozitívne a negatívne či správne a
nesprávne. Tieto údaje sú však k dispozícii a je žiadúce objaviť v nich nejaký
vzor, vytvoriť ich model a nájsť jeho popis. Metódy strojového učenia schopné
vytvárať popisy údajov v takomto prípade sa označujú ako metódy pracujúce bez
učiteía, hovorí sa o nekontrolovanom učení (angl. unsupervised learning).
Špeciálnym typom nekontrolovaného učenia, ktorý sa niekedy dokonca vyčleňuje
ako samostatný tretí typ učenia popri kontrolovanom a nekontrolovanom učení, je
tzv. učenie odmenou a trestom (angl. reinforcement learning). Pri tomto type
učenia na rozdiel od učenia kontrolovaného neexistuje presná a okamžitá spätná
väzba pre učiaci algoritmus o spracovávanom pojme, ale na rozdiel od klasického
nekontrolovaného učenia existuje možnosť celkového hodnotenia výsledného popisu.
Na okraj možno dodať, že napriek tomu, že toto učenie má v názve odmenu i
trest, je málo metód i keď existujú ktoré by fungovali na princípe odmeny.
Prevažná väčšina metód triedy reinforcement learning (toto slovné spojenie sa
bez prekladu používa často) je založená na princípe trestu.

Batch a on-line metódy
Z híadiska praktického použitia metód strojového učenia je nutné rozlišovať,
aké množiny trénovacích údajov je tá-ktorá metóda schopná spracovávať. Pokiaí
učiaci algoritmus musí mať pri začiatku učenia k dispozícii všetky trénovacie
pojmy, tak takéto učenie nazývame ako dávkové, resp. z angličtiny prevzatým
pojmom batch učenie. Ak však učiaci algoritmus dokáže spracovávať pojmy jeden
po druhom tak, ako sa mu tieto poskytujú, a nepotrebuje mať k dispozícii všetky
trénovacie pojmy naraz, tak takéto učenie nazývame inkrementálne alebo on-line
učenie.
Metódy umožňujúce inkrementálne učenie je samozrejme možné použiť na úlohy, kde
sú všetky trénovacie údaje k dispozícii naraz; naopak to pochopiteíne možné nie
je. Ak sa trénovacie údaje získavajú napríklad počas technologického procesu,
na riadenie ktorého je zároveň potrebný výstup učiaceho algoritmu, tak dávkové
metódy spracovania údajov nemožno použiť. Z uvedeného vyplýva, že inkrementálne
spÖsoby učenia majú svoje uplatnenie najmä v úlohách regulačného typu.
Popisy údajov mÖžu byť rÖzneho typu. Líšia sa najmä v závislosti od použitej
metódy strojového učenia a charakteru úlohy, ktorú má híadaný popis riešiť. Z
tých istých vstupných údajov je spravidla možné aplikáciou rÖznych metód
strojového učenia získať ich diametrálne odlišné popisy. K najbežnejšie
používaným modelom údajov patria rozhodovacie stromy a zoznamy, pravidlové
systémy a etalóny. Abstraktné modely údajov napríklad neurónové siete sa
zvyčajne používajú vtedy, keď "klasické" modely nedokážu poskytnúť dostatočne
dobrý popis.
Metódy strojového učenia sa používajú na objavenie vzorov v údajoch, ktoré nie
sú na prvý pohíad zrejmé. Ich objavenie mÖže napomÖcť procesu rozhodovania,
riadenia, regulácie a pod. Výhodou rozhodovacích stromov a zoznamov,
pravidlových systémov a etalónov je ich zrozumiteínosť pre človeka. Ak je model
vytvorený algoritmom strojového učenia zrozumiteíný, je možné z neho "prečítať"
novoobjavené vzory a súvislosti z údajov. Rovnako je dÖležité, že takto získaný
model je možné následne umelým zásahom upraviť, dodať do neho informácie o
vzťahoch v množine údajov, ktoré sú známe. MÖže sa jednať o závislosti medzi
atribútmi, logické ohraničenia veličín a podobne. Abstraktné modely toto
neumožňujú; modelujú síce vstupné údaje, dajú sa použiť na riešenie nových úloh
v danej problémovej oblasti, ale objavené vzory sa z nich nedajú prečítať, a
teda sa nedajú ani dodatočne upraviť. Napriek tomu je často použitie
abstraktných modelov na popis údajov používaný a ich dobré modelovacie
schopnosti uvedené nedostatky niekedy dokážu dostatočne vyvážiť.

Oblasti použitia
Oblasti použitia metód strojového učenia sú rozsiahle. V prvom rade ich možno
použiť na riešenie všetkých druhov klasifikačných úloh. Za špeciálny prípad
klasifikačných úloh možno považovať úlohy predikčné. V skutočnosti je niekedy
veími ťažké tieto úlohy od seba odlíšiť, nakoíko úlohu klasifikovať vzorku do
nejakej triedy možno interpretovať ako úlohu predpovedať triedu, do ktorej táto
vzorka prináleží.
Veími zaujímavou oblasťou použitia strojového učenia je zhlukovanie (angl.
clustering), čo je vlastne klasifikácia pri použití nekontrolovaného učenia.
Zhlukovanie sa s úspechom používa napríklad v procese tzv. objavovania znalostí
v databázach (v angličtine zaužívaný pojem knowledge discovery in databases).
Objavovanie znalostí je proces zaoberajúci sa odhaíovaním znalostí z veími
rozsiahlych množín údajov (údajových skladov), ktorých spracovanie je bez
automatizovaných postupov nepredstaviteíné.
Obrovský význam majú metódy strojového učenia v znalostnom inžinierstve.
Znalostné inžinierstvo sa zaoberá získavaním údajov pre tvorbu expertných
systémov. Ide neraz o zdíhavý proces komunikácie znalostného inžiniera s
odborníkom v danej problémovej oblasti. Znalostný inžinier má za úlohu získať
od expertov ich praxou a skúsenosťami nadobudnuté znalosti v takej podobe, aby
ich bolo možné implementovať do umelo vytvoreného expertného systému.
Táto činnosť naráža na problémy s explicitným vyjadrením heuristických znalostí
íudí odborníkov (alebo dokonca na ich neochotu deliť sa o svoje znalosti). Ak v
takomto prípade existuje databáza úspešne riešených problémov, metódy
strojového učenia v nej mÖžu objaviť skryté závislosti. Tým zároveň do značnej
miery odstránia z procesu návrhu bázy znalostí expertného systému íudský
faktor, čo mÖže napomÖcť zamedzeniu prieniku subjektívnych názorov experta do
vytváraného systému.

DÖraz na znalosti
Získavanie nových znalostí z údajov sa stáva dÖležité pre účely riadenia a
rozhodovania v priemysle, bankovníctve, logistike či manažmente. Znalosti sú
to, čo sa stáva hybnou silou obchodu, čo umožňuje organizáciám byť na špici
vývoja, čo im dáva výhodu pred konkurenciou. Na ich získanie sa vyvíjajú stále
nové metódy a postupy. Strojové učenie je toho príkladom: Poskytuje nástroje na
spracovanie veíkých množstiev údajov. DÖležité je, že umožňuje toto spracovanie
zautomatizovať, a tak ho začleniť do rutinnej prevádzky.

Dalšie informácie na www
l http://www.mlnet.org/
l http://www.ai.mit.edu/projects/jmlr/
l http://www.learningtheory.org/
l http://www.aaai.org/Pathfinder/html/machine.html
l http://www.aic.nrl.navy.mil/~aha/research/machine-learning.html
l http://www.ai.univie.ac.at/oefai/ml/ml-resources.html









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.