Čo je neurónová sieť a ako sa „učí“

Čo je neurónová sieť a ako sa „učí“

Chcete naučiť dieťa rozoznať mačku od psa.

Nezačnete mu vysvetľovať biológiu – ukážete mu stovky obrázkov a ono si samo odvodí, že mačka má špicaté uši a pes dlhší ňufák. Presne takto funguje neurónová sieť, len namiesto mozgu používa matematiku a namiesto týždňov tréningu zvládne tisíce príkladov za minútu.

Definícia

Neurónová sieť (neural network) je výpočtový model inšpirovaný štruktúrou ľudského mozgu, ktorý sa dokáže „učiť“ z príkladov bez explicitného naprogramovania pravidiel. Je základným stavebným kameňom väčšiny dnešných AI systémov – od rozpoznávania tváre vo fotkách až po ChatGPT.

Ako to funguje? (a prečo to vzniklo)

Ľudský mozog má miliardy neurónov prepojených synapsiami. Umelá neurónová sieť to napodobňuje pomocou vrstiev „uzlov“ (neurónov), ktoré sú navzájom pospájané. Každé spojenie má svoju „váhu“ – číslo, ktoré určuje, ako silno daný vstup ovplyvňuje výstup.

Analógia z bežného života: Predstavte si sieť ako továreň na rozhodovanie. Každý uzol je pracovník, ktorý dostane suroviny (vstupné dáta), spracuje ich podľa svojich „nastavení“ a pošle ďalej. Na začiatku všetci pracovníci robia chyby – ich výstup je náhodný. Postupne však manažér (tréningový algoritmus) opravuje ich postupy, až kým celá továreň nezačne vyrábať presne to, čo potrebujete.

Sieť sa skladá z troch typov vrstiev: - Vstupná vrstva – sem prídu surové dáta (napr. pixely obrázka) - Skryté vrstvy – tu prebieha vlastné „premýšľanie“ (môže ich byť od jednej po stovky) - Výstupná vrstva – výsledok (napr. „mačka“ alebo „pes“)

Ako sa neurónová sieť „učí“ – krok za krokom

Proces učenia sa volá tréning a prebieha v troch fázach:

  1. Dopredné šírenie (forward propagation): Sieť dostane vstup, spracuje ho cez všetky vrstvy a vyprodukuje výstup. Na začiatku je výstup úplne mimo – napríklad na fotke mačky povie „pes“.

  2. Výpočet chyby: Manažér (algoritmus) porovná výstup siete so správnou odpoveďou. Rozdiel sa nazýva stratová funkcia (loss function). Čím väčšia chyba, tým horšie sieť funguje.

  3. Spätné šírenie (backpropagation): Tu prichádza kúzlo. Chyba sa „pošle späť“ sieťou a každé spojenie dostane informáciu: „Tvoja váha prispela k chybe o X percent“. Algoritmus potom jemne upraví všetky váhy tak, aby bola chyba nabudúce menšia.

Tento cyklus sa opakuje tisíckrát až miliónkrát. Každé jedno opakovanie sa volá epoch. Po dostatočnom počte epoch sieť začne dávať správne odpovede – a to aj na úplne nové dáta, ktoré v tréningu nevidela. Tomu sa hovorí generalizácia.

Konkrétny príklad z praxe

Firma používa neurónovú sieť na detekciu zlomenín na röntgenových snímkach. Tím zhromaždí 10 000 snímok – polovicu so zlomeninou, polovicu bez. Každú snímku označí skúsený rádiológ.

Tréning trvá približne 6 hodín na výkonnej GPU (grafickej karte). Po ňom sieť dosahuje presnosť 96 % – lepšiu ako priemerný lekár (okolo 92 %). Dôležité: sieť nepozná pravidlá, podľa ktorých sa zlomenina diagnostikuje. Jednoducho sa naučila vzory v pixeloch, ktoré so zlomeninou súvisia.

Časté omyly a na čo si dať pozor

Mýtus 1: „Neurónová sieť sa učí presne ako človek.“ Nie je to pravda. Sieť sa učí čisto štatisticky – hľadá korelácie, nie príčiny. Ak by ste ju trénovali na fotkách psov, kde všetky majú červený obojok, sieť by sa naučila rozoznávať obojok, nie psa.

Mýtus 2: „Viac vrstiev = lepší výkon.“ Len do určitej miery. Príliš hlboká sieť (desiatky vrstiev) sa ľahko pretrénuje (overfitting) – zapamätá si tréningové dáta naspamäť, ale na nové bude zlyhávať. Ideálny počet vrstiev závisí od úlohy, bežne stačí 3 – 10 vrstiev.

Mýtus 3: „Na tréning stačí pár stoviek príkladov.“ Pre jednoduché úlohy áno. Pre rozpoznávanie reči alebo obrázkov potrebujete desiatky tisíc až milióny príkladov. ChatGPT bol trénovaný na stovkách miliárd slov.

Skrytý náklad: Tréning veľkej siete stojí desiatky tisíc eur za elektrinu a výpočtový čas. Jeden tréning GPT-4 údajne stál vyše 100 miliónov dolárov.

Súvisiace pojmy

  • Hlboké učenie (deep learning) – podmnožina neurónových sietí s mnohými skrytými vrstvami
  • GPU (grafická karta) – špecializovaný procesor, ktorý trénovanie sietí zrýchľuje 10 – 50× oproti CPU
  • Transfer learning (prenosové učenie) – technika, pri ktorej použijete už natrénovanú sieť na podobnú úlohu (ušetrí dáta aj čas)
  • Neurón (neuron) – základná jednotka siete, ktorá prijíma vstupy, aplikuje na ne matematickú funkciu a posiela výstup ďalej

Podrobnejšie články a návody nájdete na ai.ezin.sk.