Návod: 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. Je ideálny pre rýchle študentské projekty.
Triedy sú kategórie, ktoré sa bude model učiť rozpoznávať (napr. "Jablko", "Banán").
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. Jablko).
Postup zopakujte pre ďalšie triedy (napr. Banán, Stôl - pre pozadie/prázdne miesto).
Pridanie Tréningových Dát: Pre každú triedu musíte nahrať vzorky.
Kliknite na tlačidlo Nahrať (Upload) pod názvom triedy.
Nahrajte aspoň 20-30 obrázkov pre každý objekt/triedu. Fotky by 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 Trénovať model (Train Model).
Počkajte: 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ý!).
🧪 Krok 4: Testujte Model
V pravej sekcii 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é.
📤 Krok 5: Exportujte Model (Voliteľné)
Ak chcete model použiť v inej webovej aplikácii (napr. vo Scratchi, P5.js alebo na vlastnej stránke):
Kliknite na tlačidlo Exportovať Model (Export Model).
Zvoľte požadovaný formát (napr. TensorFlow.js pre web).
Kliknite na Nahrať môj model (Upload my model) a skopírujte poskytnutý webový odkaz, ktorý môžete použiť vo svojom projekte.
💡 Dôležitý Tip:
Nezabudnite vždy trénovať aj triedu pre prázdne pozadie (napr. "Stôl" alebo "Nič"), aby model nepriraďoval vaše objekty k náhodným záberom, keď tam nič nie je.
```
Chceli by ste k tomuto návodu pridať aj obrázky alebo odkazy na konkrétne kurzy na wiki?
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.
V ľavej časti obrazovky sa nachádza sekcia Model Setup (Nastavenie modelu).
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).
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.
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.
V sekcii Data Collection zvoľte, ako budete dáta zbierať (cez micro:bit alebo simulátor).
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).
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.
Prejdite do sekcie Training (Trénovanie).
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.
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.
Štart trénovania: Kliknite na tlačidlo Train Model.
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.
Príklad vizualizácie rozhodovacích hraníc (predstavte si tento obrázok tu):
Súbor:Ml-machine decision boundaries example.pngPrí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.
Sledujte, ako sa menia tieto hranice, keď pridáte viac dát alebo zmeníte algoritmus/parametre.
🧪 Krok 4: Testovanie a Nasadenie
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).
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.
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é.
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.