Návod

Jak neuronová síť pozná číslici: krok za krokem na skutečné síti

Projdeme ručně psanou číslici skutečnou neuronovou sítí: co síť vidí, jak neuron sčítá, jak se naučila své váhy a které číslice si plete nejčastěji.

Vydáno 18. října 2026

Na stránce Jak neuronová síť rozpoznává číslice běží skutečná, i když malá neuronová síť. Vezmeme jednu ručně psanou číslici 3 z testovací sady MNIST a projdeme s ní síť krok za krokem. Všechna čísla v článku jsou skutečné hodnoty té sítě, žádné ilustrační příklady.

Krok 1: obrázek jako čísla

Síť nevidí obrázek tak jako my. Dostane jen řadu čísel, jedno za každý pixel obrázku 28 × 28, tedy 784 čísel. Bílý pixel je 0, černý 1 a šedé okraje tahů jsou něco mezi. Z 784 pixelů naší číslice má inkoust 132, ostatní jsou nuly.

Než se kresba ze stránky pošle síti, upraví se stejně, jako se kdysi upravily číslice MNIST: zmenší se do rámečku 20 × 20 a posune tak, aby těžiště inkoustu leželo uprostřed. Malá i velká kresba tak pro síť vypadají stejně.

Krok 2: neuron sčítá

První vrstva má 32 neuronů. Každý se dívá na všechny pixely a každý pixel vynásobí svou vahou. Váhy jednoho neuronu tvoří vzor: kladné váhy (na stránce modře) jsou místa, kde inkoust součet zvyšuje, záporné (oranžově) místa, kde ho snižuje. Neuron pak všechno sečte, přičte svůj posun (bias) a výsledek pošle dál, jen když je kladný. Jinak pošle nulu a zůstane zhasnutý. Tomuto pravidlu se říká ReLU.

U naší číslice nejvíc svítí neuron 31. Inkoust na jeho modrých místech přidal +6,07, inkoust na oranžových místech -2,56 a posun je +0,11. Součet je 3,62, a protože je kladný, neuron ho pošle dál.

Z 32 neuronů první vrstvy se rozsvítí 14. Každý z nich reaguje na jiný krátký tah na jiném místě obrázku, jak je vidět na jejich vzorech v ukázce. Tahle čísla jsou celé „vidění“ sítě: žádné oči, jen vážené součty.

Krok 3: z tahů větší tvary

Druhá vrstva má 16 neuronů a pixely už nevidí. Jako vstup bere to, jak moc svítí neurony první vrstvy, a počítá úplně stejně: vynásobit vahou, sečíst, přičíst posun, záporný součet nahradit nulou. Z jednoduchých tahů tak skládá větší části číslice. Z 16 neuronů druhé vrstvy se u naší číslice rozsvítí 8.

Co přesně který neuron druhé vrstvy „znamená“, se jednoduše říct nedá. Síť si tyto mezikroky vytvořila sama při učení a nikdo je nepojmenoval.

Krok 4: z deseti součtů jedna odpověď

Poslední vrstva má 10 výstupů, jeden pro každou číslici. Každý sečte neurony druhé vrstvy se svými vahami. Výstup pro číslici 3 má součet 14,97, druhý nejvyšší je výstup pro číslici 5 se součtem 4,38.

Funkce softmax pak převede všech deset součtů na podíly, které dají dohromady 100 %. Čím vyšší součet, tím větší podíl. Číslice 3 dostane víc než 99,9 %, a tak ji síť vybere jako odpověď.

Jak se síť naučila váhy

Síť má celkem 25 818 naučených čísel: vah je 25 760, posunů 58. Nikdo je nenastavoval ručně. Na začátku byly skoro náhodné a síť hádala naslepo.

Pak dostala 60 000 ručně psaných číslic se správnými odpověďmi. Po každé dávce 64 číslic se spočítalo, jak moc se spletla, a každá váha se kousek posunula směrem, který chybu zmenší. Tomu se říká zpětné šíření chyby a gradientní sestup. Celou sadu prošla 30krát.

Aby síť zvládla i číslice kreslené myší, každou cvičnou číslici jsme při každém průchodu trochu náhodně posunuli, natočili, zkosili a ztenčili nebo zesílili. Síť tak neviděla dvakrát úplně stejný obrázek.

Jak často se plete

Síť jsme vyzkoušeli na 10 000 testovacích číslicích, které při učení nikdy neviděla. Správně odpověděla u 9 780 z nich, tedy v 97,8 % případů.

ČísliceTestovacích číslicSprávněNejčastější záměna
098098,9 %8 (3×)
11 13598,9 %2 (4×)
21 03298,2 %7 (6×)
31 01098,0 %5 (12×)
498297,5 %9 (13×)
589297,8 %3 (11×)
695898,3 %0 (4×)
71 02897,9 %2 (12×)
897497,2 %2 (4×)
91 00995,3 %3 (14×)
Úspěšnost sítě na testovacích číslicích MNIST podle číslice. Poslední sloupec: kterou číslici síť nejčastěji odpověděla místo správné a kolikrát.

Nejlépe síti jde číslice 0 (98,9 % správně), nejhůř 9 (95,3 %). Nejčastější chyba v celé testovací sadě: místo 9 odpověděla 3, a to 14×.

Malá síť proti velkým

Článek, se kterým LeCun a kolegové v roce 1998 MNIST představili, porovnává řadu metod na stejných testovacích číslicích. Jednoduchý lineární klasifikátor, kde každý pixel vede rovnou k deseti výstupům, se pletl ve 12 % případů. Síť se dvěma skrytými vrstvami, 300 a 100 neuronů, měla 3,05 % chyb, a když se učila i na uměle pokřivených číslicích, 2,5 %. Konvoluční síť LeNet-5 se 60 000 parametry se spletla jen v 0,95 % případů.

Naše síť má 25 818 parametrů a plete se u 2,2 % číslic. Konvoluční síť používá tentýž malý detektor tahů na každém místě obrázku, takže se tah nemusí učit zvlášť pro každou polohu. Sítě, které dnes rozpoznávají řeč nebo píšou text, fungují na stejném principu vážených součtů, jen jsou o mnoho řádů větší.

Proč nepozná vaši kresbu

  • Zná jen číslice podobné MNIST. Ty psali zaměstnanci amerického statistického úřadu a američtí středoškoláci. Jednička s dlouhou nožkou nebo přeškrtnutá sedmička může dopadnout hůř.
  • Neumí odpovědět „nevím“. Vždy vybere jednu z deseti číslic.
  • Myš kreslí jinak než pero. Tahy myší nebo prstem vypadají jinak než tahy perem na papíře, ze kterých MNIST vznikl.

Když síť vaši číslici nepozná, podívejte se v ukázce do kroku 2, které neurony první vrstvy se rozsvítily, a do kroku 4, kterým výstupům přidaly. Často je hned vidět, který tah síť svedl jinam.

Vyzkoušejte si to sami na stránce Jak neuronová síť rozpoznává číslice: nakreslete číslici a klikněte na kterýkoli neuron.

Vyzkoušejte si to sami

Jak neuronová síť rozpoznává číslice

Zdroje dat

Článek vysvětluje, jak funguje neuronová síť. Jeho čísla jsou skutečné hodnoty sítě na tomto webu, spočítané z jejích naučených vah a testovací sady MNIST.