Cvičenie základov strojového učenia: Rozdiel medzi revíziami
Zo stránky SensorWiki
dBez shrnutí editace |
|||
| Riadok 146: | Riadok 146: | ||
Neurónová sieť (NN) použitá v ml-machine je optimalizovaná pre malé zariadenia, ako je micro:bit, a je navrhnutá tak, aby efektívne spracovala extrahované príznaky (Features) bez veľkých nárokov na pamäť. | Neurónová sieť (NN) použitá v ml-machine je optimalizovaná pre malé zariadenia, ako je micro:bit, a je navrhnutá tak, aby efektívne spracovala extrahované príznaky (Features) bez veľkých nárokov na pamäť. | ||
Používa jednoduchú, ale výkonnú architektúru známu ako '''Multi-layer Perceptron (MLP)''' alebo '''Plne prepojená sieť''' (Fully Connected Network). Ide o základný typ neurónovej siete, kde je každý neurón v jednej vrstve prepojený s každým neurónom v nasledujúcej vrstve. Architektúra je takmer vždy trojvrstvová, čo je minimum potrebné pre efektívnu klasifikáciu, známa ako '''Štruktúra Enkodér/Klasifikátor'''. | Používa jednoduchú, ale výkonnú architektúru známu ako '''Multi-layer Perceptron (MLP)''' alebo '''Plne prepojená sieť''' (Fully Connected Network). Ide o základný typ neurónovej siete, kde je každý neurón v jednej vrstve prepojený s každým neurónom v nasledujúcej vrstve. Architektúra je takmer vždy trojvrstvová, čo je minimum potrebné pre efektívnu klasifikáciu, známa ako '''Štruktúra Enkodér/Klasifikátor'''. | ||
[[File:ml-machine_NN_architecture_visual.png|thumb|center|500px|Grafické znázornenie architektúry neurónovej siete používanej v ml-machine. Zobrazuje vstupnú vrstvu (príznaky), skrytú vrstvu (učenie) a výstupnú vrstvu (triedy) s prepojeniami medzi nimi.]] | |||
# Vstupná vrstva ('''Input Layer''') prijíma spracované dáta, t.j. príznaky (features) vypočítané z dát akcelerometra (napr. Max values, Mean, Standard Deviation, RMS, atď.). Počet neurónov závisí od počtu vybraných príznakov. Ak je vybratých 9 príznakov, vstupná vrstva bude mať 9 neurónov. | # Vstupná vrstva ('''Input Layer''') prijíma spracované dáta, t.j. príznaky (features) vypočítané z dát akcelerometra (napr. Max values, Mean, Standard Deviation, RMS, atď.). Počet neurónov závisí od počtu vybraných príznakov. Ak je vybratých 9 príznakov, vstupná vrstva bude mať 9 neurónov. | ||
# Skrytá vrstva ('''Hidden Layer''') vykonáva hlavnú výpočtovú prácu – učí sa komplexné vzťahy a vzory medzi vstupnými príznakmi a výstupnými triedami. Neuróny v tejto vrstve spracúvajú informácie a posúvajú ich ďalej. Počet neurónov je definovaný parametrom '''Nodes''' (Uzly), ktorý môžete meniť pri trénovaní. Toto číslo určuje, akú komplexnosť môže model spracovať a koľko "pamäte" má na učenie. Prednastavená hodnota je 16. | # Skrytá vrstva ('''Hidden Layer''') vykonáva hlavnú výpočtovú prácu – učí sa komplexné vzťahy a vzory medzi vstupnými príznakmi a výstupnými triedami. Neuróny v tejto vrstve spracúvajú informácie a posúvajú ich ďalej. Počet neurónov je definovaný parametrom '''Nodes''' (Uzly), ktorý môžete meniť pri trénovaní. Toto číslo určuje, akú komplexnosť môže model spracovať a koľko "pamäte" má na učenie. Prednastavená hodnota je 16. | ||
# Výstupná vrstva ('''Output Layer''') poskytuje konečné predpovede v podobe pravdepodobnosti pre každú triedu. Počet neurónov v tejto vrstve je zhodný s počtom tried (napr. Mávanie, Kľud, Otočenie). Najvyššia hodnota na výstupe z tejto vrstvy určuje triedu, do ktorej patrí vstup. | # Výstupná vrstva ('''Output Layer''') poskytuje konečné predpovede v podobe pravdepodobnosti pre každú triedu. Počet neurónov v tejto vrstve je zhodný s počtom tried (napr. Mávanie, Kľud, Otočenie). Najvyššia hodnota na výstupe z tejto vrstvy určuje triedu, do ktorej patrí vstup. | ||
Táto jednoduchá, no efektívna štruktúra zabezpečuje, že natrénovaný model bude mať veľmi malú veľkosť, čo je kritické pre pamäťovo obmedzené zariadenia ako je micro:bit. Zároveň dokáže vykonávať predikcie za zlomok sekundy, čím spĺňa náročné požiadavky na rýchlosť. | Táto jednoduchá, no efektívna štruktúra zabezpečuje, že natrénovaný model bude mať veľmi malú veľkosť, čo je kritické pre pamäťovo obmedzené zariadenia ako je micro:bit. Zároveň dokáže vykonávať predikcie za zlomok sekundy, čím spĺňa náročné požiadavky na rýchlosť. | ||
== Parametre trénovania graf | === Parametre trénovania a graf === | ||
Nasledovné tzv. hyperparametre sú kľúčové pre kontrolu procesu učenia (optimalizácie) modelu. | Nasledovné tzv. hyperparametre sú kľúčové pre kontrolu procesu učenia (optimalizácie) modelu. | ||
[[File:ml-machine_parameters.png|thumb|center|Priebeh učenia znázornený graficky a parametre, ktoré ovplyvňujú kvalitu a rýchlosť učenia.]] | |||
# '''Learning rate (Miera učenia)''' určuje, o aký veľký krok sa model posunie smerom k správnemu riešeniu po každej dávke dát. Ovplyvňuje rýchlosť a stabilitu konvergencie modelu. | |||
#* '''Prečo a kedy meniť:''' | |||
#** '''Zvýšiť:''' Ak je trénovanie príliš pomalé, môžete mierne zvýšiť ''Learning rate''. Príliš vysoká hodnota však spôsobí nestabilitu (model "preskakuje" optimálne riešenie). | |||
#** '''Znížiť:''' Ak sa strata (Loss) neustále zvyšuje alebo kolíše (model je nestabilný), mali by ste ho znížiť. Príliš nízka hodnota však trénovanie spomalí. | |||
# '''Epochs (Epochy)''' definuje, koľkokrát celý tréningový dataset prejde neurónovou sieťou. Jedna epocha znamená, že model videl všetky tréningové dáta raz. | |||
#* '''Prečo a kedy meniť:''' | |||
#** '''Zvýšiť:''' Ak model nedosahuje dostatočnú presnosť a graf straty ešte nekonvergoval, pridajte epochy, aby mal model viac šancí sa učiť. | |||
#** '''Znížiť:''' Ak model už dosiahol stabilnú nízku stratu, ďalšie epochy sú zbytočné. Príliš veľa epoch môže viesť k '''pretrénovaniu''' (overfittingu), kedy sa model učí len špecifické tréningové dáta a zlyháva na nových, neznámych dátach. | |||
# '''Nodes (Uzly/Neuróny)''' - definuje počet umelých neurónov v skrytej vrstve neurónovej siete. Ovplyvňuje komplexnosť a kapacitu modelu učiť sa zložité vzťahy. | |||
#* '''Prečo a kedy meniť:''' | |||
#** '''Zvýšiť:''' Ak sú dáta veľmi zložité a model má nízku presnosť, zvýšte počet uzlov. Model získa vyššiu kapacitu na modelovanie komplexnejších vzťahov. | |||
#** '''Znížiť:''' Ak sú dáta jednoduché, alebo ak sa model pretrénováva, znížte počet uzlov. Zníženie tiež urýchli trénovanie a zníži nároky na pamäť micro:bitu. | |||
# '''Batch size (Veľkosť dávky)''' určuje, koľko vzoriek z tréningového datasetu sa spracuje v jednej dávke, kým sa vykoná jedna úprava váh siete. | |||
#* '''Prečo a kedy meniť:''' | |||
#** '''Zvýšiť:''' Väčšie dávky urýchľujú trénovanie a vedú k stabilnejším úpravám váh. Vyžadujú však viac pamäte. | |||
#** '''Znížiť:''' Menšie dávky zaručujú, že sa úpravy váh dejú častejšie, čo môže modelu pomôcť uniknúť z lokálnych miním. Trénovanie je však pomalšie a menej stabilné. | |||
'''Graf - Loss over time''' | |||
* '''Čo vidíme na grafe (Loss over time):''' | |||
* Graf ukazuje, ako sa mení '''funkcia straty''' (Loss function) modelu v priebehu času (alebo presnejšie, v priebehu epoch/krokov trénovania). Funkcia straty je číselná miera toho, aká zlá je predikcia modelu vzhľadom na skutočnú hodnotu; cieľom trénovania je minimalizovať túto stratu. | ** Graf ukazuje, ako sa mení '''funkcia straty''' (Loss function) modelu v priebehu času (alebo presnejšie, v priebehu epoch/krokov trénovania). Funkcia straty je číselná miera toho, aká zlá je predikcia modelu vzhľadom na skutočnú hodnotu; cieľom trénovania je minimalizovať túto stratu. | ||
* '''Ideálny scenár:''' Strata by mala klesať rýchlo na začiatku a potom sa postupne vyrovnávať (konvergovať) blízko nuly, čo signalizuje, že model sa úspešne učí. | ** '''Ideálny scenár:''' Strata by mala klesať rýchlo na začiatku a potom sa postupne vyrovnávať (konvergovať) blízko nuly, čo signalizuje, že model sa úspešne učí. | ||
* '''Súvis s parametrami:''' | |||
* '''Epochs:''' Ovplyvňujú dĺžku horizontálnej osi (čas). Čím viac epoch, tým dlhší je priebeh grafu. | ** '''Epochs:''' Ovplyvňujú dĺžku horizontálnej osi (čas). Čím viac epoch, tým dlhší je priebeh grafu. | ||
* '''Learning rate:''' Ovplyvňuje strmosť a stabilitu klesania. Vysoký ''Learning rate'' môže spôsobiť, že krivka straty bude veľmi "roztrasená" alebo sa dokonca zvýši (nestabilita). Nízky ''Learning rate'' spôsobí veľmi pomalé klesanie. | ** '''Learning rate:''' Ovplyvňuje strmosť a stabilitu klesania. Vysoký ''Learning rate'' môže spôsobiť, že krivka straty bude veľmi "roztrasená" alebo sa dokonca zvýši (nestabilita). Nízky ''Learning rate'' spôsobí veľmi pomalé klesanie. | ||
* '''Nodes & Batch size:''' Tieto ovplyvňujú celkovú kapacitu modelu a šum v grafe. Ak model s menším počtom uzlov dosiahne vysokú a stabilnú stratu, znamená to, že nemá dostatočnú kapacitu na naučenie sa dát. | ** '''Nodes & Batch size:''' Tieto ovplyvňujú celkovú kapacitu modelu a šum v grafe. Ak model s menším počtom uzlov dosiahne vysokú a stabilnú stratu, znamená to, že nemá dostatočnú kapacitu na naučenie sa dát. | ||
Verzia z 10:27, 28. november 2025
Úlohy
- Vyskúšajte si jednoduché rozpoznávanie obrázkov pomocou nástroja Teachable Machine
- Natrénujte rozpoznávanie aspoň troch rozličných gest pomocou math.ml-machine.org (ak by niečo nešlo, alternatívne sa dá použiť aj CreateAI)
- Implementujte algoritmus v micro:bite a pozorujte vplyv jednotlivých parametrov na kvalitu a rýchlosť učenia.
1. časť: Jednoduché rozpoznávanie obrázkov s Teachable Machine
Teachable Machine je bezplatný webový nástroj od spoločnosti Google, ktorý umožňuje trénovať jednoduché modely strojového učenia (napr. rozpoznávanie obrázkov) bez potreby programovania. Funguje priamo v prostredí internetového prehliadača Edge alebo Chrome. Nie je potrebné nič ďalšie inštalovať. Na počítači potrebujete webkameru. Počítače v CPU majú webkameru na monitore zasunutú.

🎯 Krok 1: Začnite Projekt
- Otvorte nástroj vo svojom prehliadači: Teachable Machine
- Kliknite na tlačidlo Get Started (Začíname).
- Vyberte typ projektu Image Project (Projekt rozpoznávania obrázkov).
- Zvoľte Standard image model (Štandardná klasifikácia obrázkov).
🖼️ Krok 2: Vytvorte a Naplňte Triedy (Kategórie)
Triedy sú kategórie, ktoré sa bude model učiť rozpoznávať (napr. "Ruka", "Prst").
- Premenovanie Tried: V sekcii s triedami (Class 1, Class 2, atď.):
- Kliknite na názov triedy (napr. Class 1) a premenujte ju na názov vášho prvého objektu (napr. Ruka).
- Postup zopakujte pre ďalšie triedy (napr. Prst, Nič - pre pozadie/prázdne miesto).
- Pridanie Tréningových Dát: Pre každú triedu musíte nahrať vzorky.
- Kliknite na tlačidlo Webcam (Kamera) pod názvom triedy.
- Podr6te tlačidlo Hold to record a nahrajte aspoň 10-20 obrázkov pre každý objekt/triedu. Počas získavania obrázkov by ste mali zachytávať objekt z rôznych uhlov a s rôznym osvetlením, aby bol model robustný.
🧠 Krok 3: Trénujte Model
Trénovanie učí model priradiť vzory k správnej triede.
- V strednej sekcii kliknite na tlačidlo Train Model (Trénovať model).
- Čakajte. Proces trvá od niekoľkých sekúnd do minút. Počas trénovania nezavrite okno prehliadača.
- Po dokončení sa zobrazí správa "Model Trained!" (Model trénovaný!).
- Ak si roztvoríte pokročilé Advanced možnosti, môžete meniť parametre učenia alebo sa pozrieť
ako samotný proces prebieha Under the hood.
🧪 Krok 4: Testujte Model
V pravej časti môžete model ihneď otestovať.
- Použite Webkamera (Webcam) alebo Súbor (File) na ukázanie nového obrázku alebo živého vstupu z kamery.
- Sledujte výsledky: V sekcii Output sa zobrazí, ktorú triedu model rozpoznáva a s akou Istotou (Confidence).
- Ak model rozpozná objekt s vysokou istotou (blízko 100%), trénovanie bolo úspešné.
- Ak chcete model použiť v inej webovej aplikácii (napr. vo Scratchi, P5.js alebo na vlastnej stránke), môžete to spraviť tlačidlom Export Model (Exportovať Model). Zvoľte požadovaný formát (napr. TensorFlow.js pre web) a kliknite na Upload my model. Poskytnutý webový odkaz môžete použiť vo svojom projekte.
💡 Dôležitý Tip: Nezabudnite vždy trénovať aj triedu pre prázdne pozadie (napr. "Nič"), aby model nepriraďoval vaše objekty k náhodným záberom, keď tam nič nie je.
2. časť: ML-machine pre micro:bit s matematickou vizualizáciou
Nástroj ml-machine je trocha zložitejší nástroj, ktorý umožňuje trénovať jednoduché modely strojového učenia (Machine Learning) a nasadiť ich priamo na mikrokontrolér BBC micro:bit. Táto verzia na math.ml-machine.org navyše vizualizuje matematické princípy trénovania, čo je ideálne pre hlbšie pochopenie pre pokročilejších študentov.

🎯 Krok 1: Príprava a Spustenie Projektu
- Otvorte nástroj v prehliadači: math.ml-machine.org
- V ľavej časti obrazovky sa nachádzajú jednotlivé sekcie pre postupnú tvorbu a trénovanie modelu.
Začneme sekciouData v ktorej budeme zbierať vstupné dáta. Ako vstup sa dá využiť len akcelerometer.
- Teraz pripojíme micro:bit, ktorý bude zbierať trénovacie dáta. Najprv nahráte do micro:bitu
špeciálny kód (Download).
- Po jeho nahratí pripojíte micro:bit cez Bluetooth rozhranie (Connect).
- Na niektorých počítačoch bude potrebné zapnúť Bluetooth v prostredí Windows. Po spárovaní by sme
teoreticky mohli micro:bit odpojiť a merať dáta nezávisle na PC, ale potrebujeme pripojenie káblikom kvôli napájaniu. Ak by sme mali batériu, toto spojenie by sme mohli teraz prerušiť.
📈 Krok 2: Zber Dát (Data)
Pre správne trénovanie je kľúčový kvalitný zber dát – čím viac rôznorodých a presných dát pre každú triedu, tým lepší model.
- Veľkým tlačidlom ➕ vytvoríte toľko kategórií, koľko ich chcete natrénovať. Napríklad vytvoríme jednu pre pohyb vodorovne a jednu pre zvislo. Nezabuddnite ich rozumne pomenovať (Press here to change name).
- Postupne nazbierame trénovacie dáta (+ Add Data). Pripravte sa a počas merania držte stlačené tlačidlo B na microbite. Pre každú kategóriu potrebujete minimálne 4-5 vzoriek. Snažte sa dáta zbierať v rôznych podmienkach, ktoré zodpovedajú reálnemu použitiu.
💡 Dôležitý Tip: Nezabudnite vždy trénovať aj triedu pre prípad, kedy sa nič nedeje (napr. "Nič"), aby model nepriraďoval vaše pohyby k náhodným triedam, hoci s microbitom nehýbete.
🧠 Krok 3: Trénovanie Modelu (Trainer)
Táto verzia ml-machine ponúka aj vizuálny pohľad na to, ako sa model učí a ako "vidí" vaše dáta. Je to kľúčové pre pochopenie matematického pozadia.
- Prejdite do sekcie Trainer (Trénovanie).
- Spustite učenie neurónovej siete tlačidlom Train Model. Parametre zatiaľ nemusíte meniť.
- V pravej časti okna sa zobrazí graf, na ktorom uvidíte, ako počas trénovania a učenia klesá chybová funkcia.

🧪 Krok 4: Testovanie a validácia (Validate)
- Testovanie presnosti (Accuracy): Otestujte model s novými, neznámymi dátami priamo z micro:bitu. Podobne ako v 2. kroku aj sem pridajte nejaké nové dáta, ktorými svoj model otestujete.
Na týchto dátach sa už model nebude učiť, ale viete vyhodnotiť ako presne sa natrénoval. Ak sú výsledky presné (vysoká predikcia pre správnu triedu), model je pripravený. Ak nie, vráťte sa ku Krok 2 (viac dát) alebo Krok 3 (úprava algoritmu/parametrov).
🚀 Krok 5: Nasadenie do praxe (Model)
- Prejdite do sekcie Model.
- V stĺpci Prediction vidíte, ako model rozpoznáva aktuálne signály. Posuvníkom viete nastaviť citlivosť, teda hranicu istoty, pri ktorej sa spustí nejaká akcia na micro:bite.
- V stĺpci Led output viete každej triede priradiť nejaký obrázok na displeji
- V ďalšom môžete priradiť aj nejaký zvuk (prosím, nepoužívať!).
- V poslednom stĺpci je možné zapnúť pri danej triede aj výstup na mikropočítači a niečo tým reálne ovládať. Túto možnosť nemáme zatiaľ ako využiť.
- V okne s reálnymi dátami pripojte mikrobit (vyberte možnosť The same - teda ten istý, ktorý aj meria) a overte funkčnosť vašej natrénovanej siete v realite.
- Model je teraz natrvalo v micro:bite a ak by sme ho napájali z batérie, tak dokáže vykonávať predikcie autonómne bez pripojenia k počítaču.
3. časť: Vysvetlivky a experimentovanie s parametrami
Architektúra a Štruktúra Neurónovej Siete v ml-machine
Neurónová sieť (NN) použitá v ml-machine je optimalizovaná pre malé zariadenia, ako je micro:bit, a je navrhnutá tak, aby efektívne spracovala extrahované príznaky (Features) bez veľkých nárokov na pamäť. Používa jednoduchú, ale výkonnú architektúru známu ako Multi-layer Perceptron (MLP) alebo Plne prepojená sieť (Fully Connected Network). Ide o základný typ neurónovej siete, kde je každý neurón v jednej vrstve prepojený s každým neurónom v nasledujúcej vrstve. Architektúra je takmer vždy trojvrstvová, čo je minimum potrebné pre efektívnu klasifikáciu, známa ako Štruktúra Enkodér/Klasifikátor.

- Vstupná vrstva (Input Layer) prijíma spracované dáta, t.j. príznaky (features) vypočítané z dát akcelerometra (napr. Max values, Mean, Standard Deviation, RMS, atď.). Počet neurónov závisí od počtu vybraných príznakov. Ak je vybratých 9 príznakov, vstupná vrstva bude mať 9 neurónov.
- Skrytá vrstva (Hidden Layer) vykonáva hlavnú výpočtovú prácu – učí sa komplexné vzťahy a vzory medzi vstupnými príznakmi a výstupnými triedami. Neuróny v tejto vrstve spracúvajú informácie a posúvajú ich ďalej. Počet neurónov je definovaný parametrom Nodes (Uzly), ktorý môžete meniť pri trénovaní. Toto číslo určuje, akú komplexnosť môže model spracovať a koľko "pamäte" má na učenie. Prednastavená hodnota je 16.
- Výstupná vrstva (Output Layer) poskytuje konečné predpovede v podobe pravdepodobnosti pre každú triedu. Počet neurónov v tejto vrstve je zhodný s počtom tried (napr. Mávanie, Kľud, Otočenie). Najvyššia hodnota na výstupe z tejto vrstvy určuje triedu, do ktorej patrí vstup.
Táto jednoduchá, no efektívna štruktúra zabezpečuje, že natrénovaný model bude mať veľmi malú veľkosť, čo je kritické pre pamäťovo obmedzené zariadenia ako je micro:bit. Zároveň dokáže vykonávať predikcie za zlomok sekundy, čím spĺňa náročné požiadavky na rýchlosť.
Parametre trénovania a graf
Nasledovné tzv. hyperparametre sú kľúčové pre kontrolu procesu učenia (optimalizácie) modelu.

- Learning rate (Miera učenia) určuje, o aký veľký krok sa model posunie smerom k správnemu riešeniu po každej dávke dát. Ovplyvňuje rýchlosť a stabilitu konvergencie modelu.
- Prečo a kedy meniť:
- Zvýšiť: Ak je trénovanie príliš pomalé, môžete mierne zvýšiť Learning rate. Príliš vysoká hodnota však spôsobí nestabilitu (model "preskakuje" optimálne riešenie).
- Znížiť: Ak sa strata (Loss) neustále zvyšuje alebo kolíše (model je nestabilný), mali by ste ho znížiť. Príliš nízka hodnota však trénovanie spomalí.
- Prečo a kedy meniť:
- Epochs (Epochy) definuje, koľkokrát celý tréningový dataset prejde neurónovou sieťou. Jedna epocha znamená, že model videl všetky tréningové dáta raz.
- Prečo a kedy meniť:
- Zvýšiť: Ak model nedosahuje dostatočnú presnosť a graf straty ešte nekonvergoval, pridajte epochy, aby mal model viac šancí sa učiť.
- Znížiť: Ak model už dosiahol stabilnú nízku stratu, ďalšie epochy sú zbytočné. Príliš veľa epoch môže viesť k pretrénovaniu (overfittingu), kedy sa model učí len špecifické tréningové dáta a zlyháva na nových, neznámych dátach.
- Prečo a kedy meniť:
- Nodes (Uzly/Neuróny) - definuje počet umelých neurónov v skrytej vrstve neurónovej siete. Ovplyvňuje komplexnosť a kapacitu modelu učiť sa zložité vzťahy.
- Prečo a kedy meniť:
- Zvýšiť: Ak sú dáta veľmi zložité a model má nízku presnosť, zvýšte počet uzlov. Model získa vyššiu kapacitu na modelovanie komplexnejších vzťahov.
- Znížiť: Ak sú dáta jednoduché, alebo ak sa model pretrénováva, znížte počet uzlov. Zníženie tiež urýchli trénovanie a zníži nároky na pamäť micro:bitu.
- Prečo a kedy meniť:
- Batch size (Veľkosť dávky) určuje, koľko vzoriek z tréningového datasetu sa spracuje v jednej dávke, kým sa vykoná jedna úprava váh siete.
- Prečo a kedy meniť:
- Zvýšiť: Väčšie dávky urýchľujú trénovanie a vedú k stabilnejším úpravám váh. Vyžadujú však viac pamäte.
- Znížiť: Menšie dávky zaručujú, že sa úpravy váh dejú častejšie, čo môže modelu pomôcť uniknúť z lokálnych miním. Trénovanie je však pomalšie a menej stabilné.
- Prečo a kedy meniť:
Graf - Loss over time
- Čo vidíme na grafe (Loss over time):
- Graf ukazuje, ako sa mení funkcia straty (Loss function) modelu v priebehu času (alebo presnejšie, v priebehu epoch/krokov trénovania). Funkcia straty je číselná miera toho, aká zlá je predikcia modelu vzhľadom na skutočnú hodnotu; cieľom trénovania je minimalizovať túto stratu.
- Ideálny scenár: Strata by mala klesať rýchlo na začiatku a potom sa postupne vyrovnávať (konvergovať) blízko nuly, čo signalizuje, že model sa úspešne učí.
- Súvis s parametrami:
- Epochs: Ovplyvňujú dĺžku horizontálnej osi (čas). Čím viac epoch, tým dlhší je priebeh grafu.
- Learning rate: Ovplyvňuje strmosť a stabilitu klesania. Vysoký Learning rate môže spôsobiť, že krivka straty bude veľmi "roztrasená" alebo sa dokonca zvýši (nestabilita). Nízky Learning rate spôsobí veľmi pomalé klesanie.
- Nodes & Batch size: Tieto ovplyvňujú celkovú kapacitu modelu a šum v grafe. Ak model s menším počtom uzlov dosiahne vysokú a stabilnú stratu, znamená to, že nemá dostatočnú kapacitu na naučenie sa dát.
⚡️ Pre Pokročilých Študentov: Skúste porovnať presnosť a vizualizáciu rozhodovacích hraníc pri použití rôzneho nastavenia parametrov. Tým pochopíte, prečo je výber algoritmu a optimalizácia parametrov kľúčová pre úspešné strojové učenie. Sledujte, ako zmena parametrov ovplyvňuje výsledky klasifikácie. Sledujte, ako sa menia výsledky, keď pridáte viac dát alebo zmeníte algoritmus/parametre.
4. Príznaky (Features) pre ml-machine
Tieto pojmy predstavujú Príznaky (Features), ktoré sa extrahujú zo surových dát zo senzora (napr. akcelerometra) počas krátkeho časového úseku, známeho ako dátové okno.
Spoločne tvoria Odtlačok prsta (Fingerprint) danej akcie. Namiesto trénovania modelu na tisíckach surových dátových bodov trénuje len na týchto kľúčových štatistických súhrnoch, čo je pre micro:bit s obmedzeným výkonom oveľa efektívnejšie.
Definície Pojmov
- Všeobecné štatistické príznaky
- Max values (Maximálne hodnoty): Najvyššie namerané hodnoty akcelerácie na osiach X, Y a Z v danom časovom okne. Určujú maximálnu intenzitu alebo rýchlosť vykonanej akcie.
- Minimum values (Minimálne hodnoty): Najnižšie (najviac negatívne) namerané hodnoty akcelerácie na osiach X, Y a Z v časovom okne. Pomáhajú určiť smer a rozsah pohybu.
- Mean (Priemer): Aritmetický priemer všetkých nameraných hodnôt pre každú os. Popisuje typickú, alebo strednú polohu/orientáciu zariadenia počas merania.
- Standard deviation (Štandardná odchýlka): Miera rozptylu dát okolo priemeru. Čím je hodnota vyššia, tým je pohyb v danom časovom okne viac dynamický a premenlivý.
- Špecializované signálové príznaky
- Total acceleration (Celková akcelerácia): Vypočítaná veľkosť akcelerácie (vektorová dĺžka) bez ohľadu na smer osí X, Y a Z. Reprezentuje celkovú silu, ktorá pôsobí na micro:bit.
- Root mean square (Stredná kvadratická hodnota, RMS): Miera celkovej energie signálu v danom časovom okne. Pre micro:bit slúži na odhad intenzity pohybu.
- Zero crossing rate (Frekvencia prechodu nulou): Počet, koľkokrát nameraná hodnota prekročila nulovú stredovú čiaru (z pozitívnej na negatívnu a späť) v danom okne. Indikuje frekvenciu oscilačných alebo opakovaných pohybov.
- Number of extremes (Počet extrémov): Počet momentov, kedy akcelerácia dosiahla lokálne maximum alebo minimum (vrcholy a doly). Indikuje frekvenciu alebo počet opakovaní/zmien v smere pohybu.
⚡️ Pre Pokročilých Študentov:
Pri defaultnom nastavení využíva neurónová sieť všetkých 9 parametrov (max, min, priemer, odchýlka...). Skúste premyslieť, ktoré z týchto 9 parametrov sú pre váš model skutočne podstatné a použite na trénovanie siete len tie najdôležitejšíe. Dokážete znížiť počet parametrov na 3-4? Výrazne sa tým zrýchli trénovanie ako aj veľksoť výsledného kódu pre mikroprocesor. Ako sa zhorší kvalita predikcie?
💡 Alternatíva: CreateAI (iba pre micro:bit V2)
Nástroj CreateAI slúži na trénovanie jednoduchých modelov strojového učenia, no je zameraný len na micro:bit **V2**. Na rozdiel od ml-machine, ktorý sa implementuje neurónovú sieť v počítači a micro:bit funguje len ako zdroj signálov, CreateAI umožňuje nahrať celú natrénovanú sieť priamo do micro:bitu a po odpojení od počítača tak získať reálnu autonómnu aplikáciu, ktorá dokáže rozpoznávať natrénované vzory a na ich základe buď len zobrazovať niečo na displeji, ale pokojne aj napr. riadiť mobilný robot. Hovoríme o tzv. Edge computingu, kedy sa náročný model zjednoduší do tej miery, aby bol použiteľný aj na menej výkonnom hardvéri.
Ak máte k dispozícii micro:bit V2[1] tak si vyskúšajte natrénovať aspoň dva-tri rozličné pohyby a preneste aplikáciu priamo do micro:bitu.
- ↑ Spoznáte ho podľa toho, že logo
nie je farebné, ale zlaté