Machine Learning – základy, výhody a výzvy strojového učenia
Aj keď sa aktuálne strojové učenie (ML – Machine learning) neteší toľkej pozornosti verejnosti ako umelá inteligencia (AI – Artificial intelligence), napriek tomu takmer každý aspekt našich životov a hlavne spôsobu práce a zábavy ovplyvňuje strojové učenie.

V článku sa dozvieš:
Strojové učenie je typ umelej inteligencie (prečítaj si aj Čo je umelá inteligencia), ktorý môžeme považovať za ekvivalent digitálnej formy pokročilej matematiky a hlavne štatistiky. ML zahŕňa vývoj počítačových programov, ktoré sa učia a prispôsobujú bez explicitných pokynov. Používa algoritmy a štatistické modely na nachádzanie vzorcov (angl. patterns) a vzťahov v dátach (angl. data relations), ich analýzu a identifikáciu trendov alebo predikciu výsledkov. Algoritmy strojového učenia tiež klasifikujú informácie a dokonca pomáhajú generovať nový obsah a softvérový kód.
Populárne nástroje na prácu s AI ako ChatGPT, DALL-E a GitHub Copilot sú tiež poháňané strojovým učením.
V tomto článku sa spolu pozrieme na základy strojového učenia, jeho výhody, výzvy, stratégie a to, čo by mali podniky o ňom vedieť. Machine Learning (ML wiki) je nesmierne komplexná, ale napriek tomu zaujímavá téma, o ktorej sa dá toho napísať veľa, preto sa sústredíme v tomto texte na to, aby si získal ucelený obraz o tejto problematike.
Rozmach machine learningu
Strojové učenie hrá od svojho vzniku v polovici 20. storočia čoraz dôležitejšiu úlohu v ľudskej spoločnosti. Trénovanie strojov, aby sa učili z dát a zlepšovali svoju výkonnosť v priebehu času, umožnilo organizáciám automatizovať nudné a rutinné úlohy, ktoré predtým vykonávali ľudia, a v zásade nám tak poskytlo priestor na kreatívnejšiu a dôležitejšiu prácu.
Schopnosť strojového učenia hľadať a dolovať vzory a poznatky z rozsiahlych kolekcií dát, tzv. datasetov, sa zároveň stala konkurenčnou výhodou pre mnohé firmy v rôznych odvetviach, pretože im to okrem iného pomáha pri výbere správnych rozhodnutí.
Algoritmy strojového učenia vytvárajú matematický model vzorových údajov, známy ako „trénovacie údaje“, aby mohli predpovedať alebo rozhodovať bez toho, aby boli vyslovene naprogramované na vykonávanie danej úlohy.
Vezmime si napríklad tieto reálne aplikácie strojového učenia:
- Odporúčacie systémy sú vo veľkom používané v e-commerce, sociálnych médiách a spravodajských organizáciách na navrhovanie produktov, služieb, cielených reklám alebo iného obsahu na základe online správania zákazníkov.
- Algoritmy strojového učenia a strojové videnie sú kľúčovými komponentmi samo-riadiacich áut, ktoré im pomáhajú sa bezpečne pohybovať na cestách a navigovať v spleti ulíc mesta.
- V zdravotníctve sa ML využíva na diagnostiku zdravotných stavov pacientov a navrhovanie liečebných plánov.
- Detekcia bankových a poistných podvodov.
- Filtrovanie nevyžiadanej pošty (spamu).
- Detekcia hrozieb zavírenia.
- Prediktívna údržba.
- Automatizácia obchodných procesov.
- A mnohé ďalšie aplikácie.
Slovenská firma ESET poskytujúca ochranu počítačov a serverov využíva algoritmy strojového učenia na detekciu a blokovanie kybernetických útokov a hrozieb už takmer 35 rokov.
Typy strojového učenia
Strojové učenie sa často kategorizuje podľa spôsobu, akým sa algoritmus učí, aby sa zlepšila presnosť jeho predpovedí. Štyri základné typy strojového učenia sú:
- učenie s učiteľom (riadené) (supervised machine learning)
- učenie bez učiteľa (neriadené) (unsupervised machine learning)
- polo-riadené učenie (semi-supervised learning)
- učenie formou odmeňovania (posilňované) (reinforcement learning)

Mnoho algoritmov a techník machine learningu však nie je obmedzených len na jednu formu učenia. Často sa prispôsobujú viacerým typom v závislosti od datasetu a problému, ktorý treba vyriešiť.
Supervised learning
Pri riadenom učení algoritmy dostávajú označené trénovacie dáta a definujú sa premenné, ktoré má algoritmus vyhodnotiť na vytvorenie korelácií. Špecifikované sú vstupy aj výstupy algoritmu.
Algoritmy riadeného učenia sa používajú na úlohy ako binárna klasifikácia (binary classification), ktorá rozdeľuje dáta do dvoch kategórií, viac-triedna klasifikácia (multiclass classification), ktorá vyberá z viacerých typov odpovedí, súborové učenie (ensemble learning), ktorý kombinuje predpovede viacerých modelov ML na dosiahnutie presnejších výsledkov, a regresné modelovanie (regression modeling), ktoré predpovedá spojité hodnoty na základe vzťahov v datasetoch.
Medzi najpopulárnejšie algoritmy učenia s učiteľom patrí metóda podporných vektorov, neurónové siete (niekedy označované aj ako hlboké strojové učenie), Bayesov klasifikátor, rozhodovacie stromy atď.
Unsupervised learning
Väčšina algoritmov strojového učenia spočiatku pracovala s riadeným učením, ale neriadené prístupy sa stávajú čoraz populárnejšími.
Algoritmy neriadeného učenia nevyžadujú označené dáta. Prechádzajú neoznačenými dátami a hľadajú vzorce, ktoré môžu byť použité na zoskupovanie dátových bodov do podskupín.
Algoritmy neriadeného učenia nevyžadujú sa používajú na:
- Klastrovanie (clustering), ktoré rozdeľuje dataset do skupín na základe podobnosti.
- Detekciu anomálií (anomaly detection), ktorá identifikuje neobvyklé dátové body v datasetoch.
- Extrahovanie asociačných pravidiel (association rule mining).
- Objavenie množín položiek, ktoré sa často vyskytujú spoločne.
- Redukovanie dimenzionality (dimensionality reduction), ktoré znižuje počet premenných v datasetoch.
Medzi najpoužívanejšie algoritmy pre zhlukovanie patrí K-means, pre asociáciu je to Apriori algoritmus pre tvorbu asociačných pravidiel.
Semi-supervised learning
Polo-riadené učenie funguje tak, že algoritmus trénuje na malom množstve označených dát, na základe ktorých sa učí charakteristiky datasetu, ktoré potom aplikuje na nové neoznačené dáta. Výkon algoritmov sa obvykle zlepšuje, keď sa trénujú na označených datasetoch, ale označovanie dát môže byť časovo náročné a drahé.
Tento typ strojového učenia nachádza rovnováhu medzi výkonom riadeného učenia a efektívnosťou neriadeného učenia. Polo-riadené učenie sa môže využívať v oblastiach, ako je učenie algoritmov na preklad jazykov na základe neúplného slovníka, detekcia podvodov, keď je len niekoľko pozitívnych príkladov, a učenie sa z malých súborov tréningových dát, ako aplikovať označenia na väčšie datasety.
Reinforcement learning
Posilňované učenie funguje tak, že algoritmus je naprogramovaný s konkrétnym cieľom a stanovenými pravidlami na jeho dosiahnutie. Algoritmus môže byť nastavený tak, aby získaval odmeny za akcie, ktoré pomáhajú dosiahnuť cieľ, a vyhýbal sa trestom za akcie, ktoré ho od cieľa vzďaľujú.
Posilňované učenie sa často používa pri trénovaní robotov na vykonávanie úloh, učení AI botov hrať počítačové hry a pomáhaní spoločnostiam riešiť komplexné problémy s alokáciou zdrojov. Modelovým príkladom pre učenie formou odmeňovania je hra šach, kde vytvoríme agenta, definujeme mu povolené ťahy a pravidlo pre výhru. Odmeníme ho, ak vyradí súperovu figúrku alebo vyhrá, potrestáme ho, ak je vyhodená jeho figúrka alebo prehrá.
Dataset
Dataset je súbor tréningových dát, z ktorých sa model učí identifikovať vzory a vzťahy v dátach. Dataset tvoria vždy dve skupiny prvkov – atribúty (features) a označenia (labels).
Features sú skúmané vlastnosti objektu. Tieto vlastnosti nemusia byť uvedené v datasete všetky, stačia iba tie, ktoré vedia objekty od seba spoľahlivo odlíšiť.
Labels sú označenia vlastností objektu, resp. výsledné hodnoty modelu. Tieto označenia sú v datasete známe, aby sa model vedel naučiť odhadnúť výsledky. Reálne dáta však označenia nemajú a program ich musí vedieť vypočítať.
Príkladom môže byť identifikácia ovocia na základe jeho tvaru, farby a veľkosti. Features alebo vlastnosti by boli: tvar – guľatý , farba – červená, veľkosť – stredne veľká, hmotnosť – 200g. Označenie, teda label by bolo jablko. Tvar by ho vedel odlíšiť napríklad od banánu, farba od pomaranča a veľkosť a váha od jahody. Pri dostatočnom nacvičení na množstve kvalitných dát by model dokázal identifikovať ovocie po zadaní týchto štyroch atribútov.

Postup vytvorenia modelu v strojovom učení
Vývoj správneho modelu strojového učenia na vyriešenie biznis problému vyžaduje dôkladnosť, experimentovanie a kreativitu. Ponúkame ti sedem krokov na vytvorenie efektívneho modelu:
- Najskôr treba pochopiť biznis problém a definovať kritériá úspechu. Cieľom je premeniť vedomosti o probléme a cieľoch projektu na vhodnú definíciu problému pre model strojového učenia.
- Treba vedieť identifikovať štruktúru potrebných dát. Určiť, aké dáta a koľko z nich je potrebných na vytvorenie modelu a či sú dáta v stave, aby mohli byť spracované modelom.
- Musíme zhromaždiť a pripraviť dáta na trénovanie modelu. Často je potrebné dáta najskôr vyčistiť a označiť, nahradiť nesprávne alebo chýbajúce dáta, obohatiť a augmentovať dáta, znižovať dátový šum a odstrániť nejasnosti, anonymizovať osobné dáta a rozdeliť dáta na tréningové, testovacie a validačné sady.
- Po spracovaní dát je možné určiť vlastnosti modelu a vybrať správne algoritmy a techniky strojového učenia. Nastavia a upravia sa hyperparametre, ktoré riadia tréningový proces, a model sa trénuje, validuje a optimalizuje.
- Po natrénovaní modelu musíme vyhodnotiť výkonnosť modelu a stanoviť benchmarky. Táto práca zahŕňa výpočty tzv. confusion matrix, kľúčové ukazovatele výkonnosti, metriky strojového učenia a merania kvality modelu na analýzu výkonnosti a zistenie, či model dokáže splniť biznis ciele.
- Teraz sa už dá nasadiť model a monitorovať jeho výkonnosť v produkcii. Po nasadení sa model neustále monitoruje a podľa potreby sa iteruje, aby sa zlepšila jeho výkonnosť.
- Aj keď je model funkčný odporúčame neustále model upravovať a zdokonaľovať. Aj po nasadení modelu práca pokračuje. Biznis požiadavky, technologické schopnosti a reálne dáta sa môžu neočakávane zmeniť, čo môže vytvárať nové požiadavky, ktoré si vyžadujú úpravy modelu.
Oblasti použitia strojového učenia
Okrem toho, že strojové učenie je široko aplikovateľné naprieč rôznymi odvetviami, je neoddeliteľnou súčasťou softvéru, ktorý riadi organizácie. Tu je niekoľko príkladov, ako rôzne obchodné disciplíny a softvérové nástroje využívajú machine learning:
Business Intelligence
BI nástroje a prediktívny analytický softvér používajú algoritmy strojového učenia na identifikáciu významných dátových bodov, vzorcov a anomálií vo veľkých datasetoch.
Ľudské zdroje (HR)
Modely strojového učenia zabudované do HR informačných systémov uľahčujú výber uchádzačov tým, že filtrujú žiadosti o zamestnanie a identifikujú najlepších kandidátov pre otvorené pozície.
Riadenie vzťahov so zákazníkmi (CRM)
Kľúčové aplikácie v CRM softvéri zahŕňajú analýzu zákazníckych dát na segmentáciu zákazníkov, predikciu nákupných návykov, odporúčanie produktov, nastavovanie cien, optimalizáciu e-mailových kampaní, poskytovanie podpory cez chatboty a detekciu podvodných transakcií.
Security a Compliance
Pokročilé algoritmy identifikujú odchýlky v správaní siete, čo je kľúčové pri detekcii potenciálnych kybernetických útokov.
Riadenie dodávateľského reťazca
Techniky strojového učenia optimalizujú úrovne zásob, zefektívňujú logistiku, zlepšujú výber dodávateľov a proaktívne riešia prerušenia dodávateľských reťazcov.
Spracovanie prirodzeného jazyka
Modely strojového učenia umožňujú virtuálnym asistentom, ako sú Alexa, Google Assistant a Siri, interpretovať a reagovať na ľudský jazyk.
Predpoklady pre úspešný machine learning – data, data, data
Strojové učenie je výborným nástrojom na riešenie mnohých problémov, zlepšovanie obchodných operácií a automatizáciu úloh, no prináša aj svoje výzvy a úskalia:
Zdroje
Strojové učenie je komplexný proces, ktorý vyžaduje hlboké odborné znalosti a značné materiálne a finančné zdroje. Projekty strojového učenia vedú veľmi dobre zaplatení dátoví vedci a využívajú drahý hardvér a softvér, čo zvyšuje náklady na vývoj, ladenie a prevádzku ML modelov.
Presnosť a objem dát
Algoritmy sú trénované na datasetoch, ktoré nie sú kompletné a určite môžu obsahovať chyby, ktoré potom môžu následne viesť k nepresným modelom. Preto základným predpokladom pre úspešne ML je kvalitné množstvo dát reprezentujúce najširšie spektrum možností.
Analýza dát a interpretácia výsledkov
Výsledky môžu byť ťažko pochopiteľné, najmä tie, ktoré produkujú komplexné algoritmy ako neurónové siete, používané v hlbokom učení (deep learning), pokročilejšej forme ML.
Predpoklady pre štúdium strojového učenia
Ak ťa fascinujúci svet ML zaujal, pre ďalšie štúdium a experimentovanie so strojovým učením je vhodné spĺňať nasledujúce požiadavky:
- Základná znalosť programovacích jazykov, hlavne Python, ktorý sa najčastejšie vo svete ML používa.
- Pokročilá znalosť matematiky, hlavne oblasti štatistiky a pravdepodobnosti.
- Základne znalosti lineárnej algebry.
- Vedomosti o tom, ako čistiť a upraviť nespracované údaje do požadovaného formátu.
- Samozrejme, základom je mať výkonný hardvér pre spracovanie a trénovanie dát.

Strojové učenie je kľúčovým faktorom pre pokrok
Strojové učenie sa stalo hnacou silou mnohých inovácií a transformácií naprieč mnohými odvetviami, od zdravotníctva po dopravu, financie či výrobu. Moderný hardvér umožnil paralelne spracovávať a analyzovať ešte väčšie množstvo dát (údajov) ako kedysi, čo ešte viac urýchlilo výskum, ktoré robia univerzity a firmy po celom svete a prinieslo nám to novú éru umelej inteligencie a autonómnych áut.
Machine Learning poskytuje organizáciám nevídané možnosti ako zlepšovať svoje hospodárenie, predikovať trendy, získať kompetetívnu výhodu oproti konkurencii a reagovať na meniace sa potreby trhu a zákazníkov. V budúcnosti môžeme očakávať, že strojové učenie bude ešte ďalej posúvať hranice toho, čo je technologicky možné, a prispievať k vytváraniu inteligentnejšieho a efektívnejšieho sveta, v ktorom sa automatizácia a ľudská kreativita harmonicky dopĺňajú.
Autor: Jozef Wagner, Java programátor senior v msg life Slovakia