Programovanie umelej inteligencie pre deti
Umelá inteligencia, neurónové siete a hlboké učenie sú témy prekvapivo prístupné deťom. Nemusíte sa venovať matematickej stránke veci a ak aj áno, nie je to také zložité.
Najlepším spôsobom, ako vysvetliť, čo je umelá inteligencia, je poskytnúť veľa praktických príkladov, ktoré si deti môžu vyskúšať samy: Google prekladač, ChatGPT, asistenti podobní Alexe, Socratic, DALL-E, prevod hlasu na text na akomkoľvek telefóne, Google Lens a malé praktické nástroje ako odstránenie pozadia alebo super-rozlíšenie obrázkov (super-resolution).
Ako tak prezentujete príklady, naskytá sa vám príležitosť porovnať špecializovanú (narrow) a všeobecnú (general) umelú inteligenciu (ktorá už existuje). Môžete vysvetliť, že umelá inteligencia, ktorá sa učí z príkladov, prekonáva obmedzenia algoritmických programov (t.j. takých pozostávajúcich z podmienok, slučiek a funkcií).
Potom môžete pokračovať s jednoduchými nástrojmi špeciálne navrhnutými pre deti:
- Teachable Machine – Ideálne ako prvá skúsenosť. Klasifikačný model (classifier) môžete vytvoriť za pár minút nahratím niekoľkých obrázkov z počítača alebo z kamery. Model si môžete ihneď vyskúšať online alebo ho exportovať do Pythonu alebo JavaScriptu.
- Machine Learning for Kids – Táto webstránka môže byť trochu mätúca, ale nenechajte sa tým odradiť. Poskytuje online editor pre trénovaciu databázu a generuje model klasifikátora, ktorý deti môžu následne použiť ako blok v populárnom prostredí Scratch. Je tu veľa pracovných listov, ktoré môžete použiť v triede alebo doma.
- Demá Magenta.js – Tieto demá sú zaujímavé, ale JavaScript za nimi je o dosť zložitejší než vyššie spomínané nástroje. Až také zložité to ale nie je a starším alebo zvedavým študentom to môže stáť za námahu.
- Google experimenty – Tieto experimentálne projekty sú tiež zaujímavé, ale Python a JavaScript za nimi môže byť výzvou aj pre väčšinu študentov stredných škôl.
Vysvetliť, ako umelá inteligencia funguje, je o niečo náročnejšie, no až také ťažké to nie je. Všetky moderné implementácie umelej inteligencie sú neurónové siete a neurón v nich je len vážený súčet vstupov porovnaný s limitom. Môj obľúbený príklad je neurón, ktorý určuje, či má pacient COVID. Všetky vstupy predstavujú dostupné fakty kódované ako logické nuly a jednotky. Stačí vybrať váhy. Napríklad pozitívny test PCR by mal veľmi vysokú váhu. Menej spoľahlivý antigénový test by mal nižšiu váhu. Všeobecné príznaky ako horúčka a bolesť hlavy by mali ešte nižšiu váhu. Niektoré váhy môžu byť negatívne, napríklad pozitívny test na chrípku alebo zajtrajší test z dejepisu :)
Potom môžete vysvetliť, že cieľom učenia v neurónovej sieti je automatické odvodenie váh z množstva príkladov, ktoré pochádzajú od odborníkov (v tomto prípade lekárov). Potom môžete vysvetliť náhodný a gradientový zostup nakreslením nejakých 1D a 2D pohorí a simuláciou oboch algoritmov na nich.
Architektúra neurónových sietí môže byť dosť odstrašujúca, ale nie je potrebné ju podrobne rozoberať. Trik je v tom, že neurónové siete budú fungovať správne a s určitou základnou úrovňou presnosti bez ohľadu na to, ako ich štruktúrujete. Môžete začať s obyčajným viacvrstvovým perceptronom a dosiahnete uspokojivé výsledky. Sieťové architektúry sú relevantné len vtedy, keď chcete vytvoriť najlepší model na svete pre danú úlohu. Môžete vysvetliť niektoré základné stavebné bloky neurónových sietí (vektory, matice, aktivačné funkcie) a povzbudiť deti k experimentovaniu s architektúrou. Vektory budú ľahšie pochopiteľné, ak vysvetlíte, ako sa do nich mapujú obrázky a klasifikačné triedy (a možno aj zvuky a slová).
Nakoniec môžete spomenúť, že v súčasnosti existujú tisíce nástrojov a databáz, ktoré výrazne uľahčujú trénovanie nových modelov. Deťom sa uľaví, keď budú počuť, že pomocou týchto nástrojov môžete vytvoriť decentnú špecializovanú umelú inteligenciu na niekoľkých riadkoch Pythonu.