Operácie

Cvičenie základov strojového učenia: Rozdiel medzi revíziami

Zo stránky SensorWiki

Balogh (diskusia | príspevky)
dBez shrnutí editace
Balogh (diskusia | príspevky)
dBez shrnutí editace
Riadok 7: Riadok 7:


<center>
<center>
[[File:teachableMachine.png|thumb|center|500px|Príklad rozpoznávania chorôb izbových rastlín.]]
[[File:teachableMachine.png|thumb|center|800px|''Príklad rozpoznávania chorôb izbových rastlín.'']]
</center>
</center>



Verzia z 22:04, 27. november 2025


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ú.

Príklad rozpoznávania chorôb izbových rastlín.


🎯 Krok 1: Začnite Projekt

  1. Otvorte nástroj vo svojom prehliadači: Teachable Machine
  2. Kliknite na tlačidlo Get Started (Začíname).
  3. Vyberte typ projektu Image Project (Projekt rozpoznávania obrázkov).
  4. 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").

  1. 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).
  2. 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.

  1. V strednej sekcii kliknite na tlačidlo Train Model (Trénovať model).
  2. Čakajte. Proces trvá od niekoľkých sekúnd do minút. Počas trénovania nezavrite okno prehliadača.
  3. Po dokončení sa zobrazí správa "Model Trained!" (Model trénovaný!).
  4. 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ť.

  1. Použite Webkamera (Webcam) alebo Súbor (File) na ukázanie nového obrázku alebo živého vstupu z kamery.
  2. 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. ```




Návod: ml-machine pre Micro:bit s matematickou vizualizáciou

ml-machine je nástroj vytvorený pre študentov, 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

  1. Otvorte nástroj v prehliadači: math.ml-machine.org
  2. V ľavej časti obrazovky sa nachádza sekcia Model Setup (Nastavenie modelu).
  3. Input (Vstup): Vyberte typ vstupu, ktorý bude micro:bit posielať. Pre jednoduché projekty zvyčajne zvolíte:
    • Accelerometer (Akcelerometer) pre rozpoznávanie pohybu (napr. pre rozpoznávanie mávania, poklepania).
    • Alebo Digital/Analog Pin (Digitálny/Analógový pin) pre externé senzory (napr. svetelný senzor, snímač teploty).
  4. Output (Výstup): Zvoľte typ výstupu, napr. LED Matrix (LED Matica) pre zobrazenie ikony alebo Serial (Sériový výstup) pre odosielanie dát do počítača.
  5. Classes (Triedy): Nastavte počet tried, ktoré chcete rozpoznať (napr. 2 alebo 3). Premenujte ich na jasné popisy (napr. Mávanie, Kľud, Otočenie).

📈 Krok 2: Zber Dát (Data Collection)

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.

  1. V sekcii Data Collection zvoľte, ako budete dáta zbierať (cez micro:bit alebo simulátor).
  2. Ak používate micro:bit, pripojte ho k počítaču a spárujte. Uistite sa, že máte na micro:bite nahraný firmvér, ktorý mu umožňuje komunikovať s ml-machine (zvyčajne ho ponúkne na stiahnutie samotný nástroj).
  3. Pre každú vytvorenú triedu:
    • Kliknite na príslušné tlačidlo triedy (napr. Mávanie).
    • Spustite akciu (napr. začnite micro:bitom mávať, držte ho v kľude, alebo ho otočte).
    • Zbierajte dostatočné množstvo vzoriek (ideálne 50+ pre každú triedu). Snažte sa dáta zbierať v rôznych podmienkach, ktoré zodpovedajú reálnemu použitiu.

🧠 Krok 3: Trénovanie Modelu a Vizualizácia

Táto verzia ml-machine je výnimočná v tom, že ponúka 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.

  1. Prejdite do sekcie Training (Trénovanie).
  2. Výber Algoritmu: Pre micro:bit sa najčastejšie používajú jednoduché a efektívne algoritmy ako K-Nearest Neighbors (k-NN) alebo Support Vector Machine (SVM). Zvoľte si jeden.
  3. Parametre (Pre pokročilých): Experimentujte s parametrami algoritmu (napr. hodnota K pre k-NN alebo Kernel pre SVM). Sledujte, ako zmena parametrov ovplyvňuje výsledky vizualizácie.
  4. Štart trénovania: Kliknite na tlačidlo Train Model.
  5. Matematická Vizualizácia - Rozhodovacie Hranice:
    • V pravej časti okna sa zobrazí dátový graf, kde sú vaše zozbierané dáta pre každú triedu znázornené ako farebné body.
    • Po trénovaní uvidíte rozhodovacie hranice (Decision Boundaries) – sú to čiary alebo plochy, ktoré vizuálne rozdeľujú dátový priestor. Každá oblasť ohraničená týmito hranicami reprezentuje jednu triedu.
    • Príklad: Ak trénujete rozpoznávanie "Mávanie" a "Kľud", môžete vidieť, ako sa dáta pre Mávanie (napr. červené body) zhlukujú na jednej strane hranice a dáta pre Kľud (napr. modré body) na druhej.
    • Vizualizácia ukazuje, ako model "myslí" a ako bude klasifikovať nové, neznáme dáta – ak nový dátový bod spadne do červenej oblasti, bude klasifikovaný ako Mávanie.
  6. Príklad vizualizácie rozhodovacích hraníc (predstavte si tento obrázok tu):
  7. Súbor:Ml-machine decision boundaries example.png
    Príklad vizualizácie dátových bodov a rozhodovacích hraníc v ml-machine. Rôzne farby reprezentujú rôzne triedy a čiary sú hranice, ktoré model použije na klasifikáciu nových dát.
  8. Sledujte, ako sa menia tieto hranice, keď pridáte viac dát alebo zmeníte algoritmus/parametre.

🧪 Krok 4: Testovanie a Nasadenie

  1. Testovanie (Test Model): Otestujte model s novými, neznámymi dátami priamo z micro:bitu. 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).
  2. Nasadenie na micro:bit (Export): Prejdite do sekcie Export.
    • Vyberte možnosť Download .hex file (Stiahnuť .hex súbor).
    • Nástroj vygeneruje a stiahne súbor s natrénovaným modelom.
    • Tento HEX súbor presuňte priamo na disk micro:bitu (presne tak, ako by ste nahrávali kód z MakeCode).
    • Model je teraz natrvalo v micro:bite a dokáže vykonávať predikcie autonómne bez pripojenia k počítaču.

⚡️ Pre Pokročilých Študentov: Skúste porovnať presnosť a vizualizácie rozhodovacích hraníc pri použití rôznych algoritmov (napr. k-NN vs. SVM) a 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.


Vysvetlenie Príznakov (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.


Parametre Trénovania Neurónových Sietí a Graf "Loss over time"

Ak študenti v ml-machine zvolia trénovanie pomocou Neurónovej siete (Neural Network), môžu meniť nasledujúce parametre. Tieto parametre sú kľúčové pre kontrolu procesu učenia (optimalizácie) modelu.

Príklad vizualizácie rozhodovacích hraníc (predstavte si tento obrázok tu):

Súbor:Ml-machine screenshot.png
Príklad trénovania neurónovej siete.


Kľúčové Hyperparametre

Learning rate (Miera učenia)
  • Čo ovplyvňuje: 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)
  • Čo ovplyvňuje: 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)
  • Čo ovplyvňuje: 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)
  • Čo ovplyvňuje: 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é.


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äť.

Typ Siete: Plne prepojená sieť (Fully Connected / Dense)

ml-machine 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.

Štruktúra Architektúry (Grafické znázornenie)

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.

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.
1. Vstupná vrstva (Input Layer)
  • Účel: 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.
2. Skrytá vrstva (Hidden Layer)
  • Účel: 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.
3. Výstupná vrstva (Output Layer)
  • Účel: Poskytuje konečné predpovede v podobe pravdepodobnosti pre každú triedu.
  • Počet neurónov: Presne sa rovná počtu tried (napr. Mávanie, Kľud, Otočenie). Najvyšší výsledok z tejto vrstvy určuje triedu, do ktorej patrí vstup.

Optimalizácia pre Micro:bit

Táto jednoduchá, no efektívna štruktúra zabezpečuje, že natrénovaný model (HEX súbor) bude mať veľmi malú veľkosť, čo je kritické pre pamäťovo obmedzené zariadenia. Zároveň dokáže vykonávať predikcie za zlomok sekundy, čím spĺňa náročné požiadavky na rýchlosť mikrokontroléra micro:bit.

---



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.


💡 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.

  1. Spoznáte ho podľa toho, že logo nie je farebné, ale zlaté