Посібник
Як нейромережа розпізнає цифру: крок за кроком
Простежимо рукописну цифру через справжню нейромережу: що вона бачить, як нейрон підсумовує, як мережа вивчила свої ваги і які цифри плутає найчастіше.
Опубліковано 18 жовтня 2026 р.
На сторінці Як нейромережа розпізнає цифри працює справжня, хоч і невелика нейромережа. Візьмемо одну рукописну цифру 3 з тестового набору MNIST і крок за кроком проведемо її через мережу. Усі числа в цій статті — справжні значення цієї мережі, а не вигадані приклади.
Крок 1: зображення стає числами
Мережа не бачить зображення так, як ми. Вона отримує лише ряд чисел, по одному на кожен піксель зображення 28 × 28, разом 784 числа. Білий піксель — це 0, чорний — 1, а сірі краї штрихів десь посередині. Із 784 пікселів нашої цифри чорнило мають 132, решта — нулі.
Перш ніж малюнок зі сторінки потрапить до мережі, його готують так само, як колись цифри MNIST: вписують у рамку 20 × 20 і зсувають так, щоб центр мас чорнила опинився посередині. Тож маленький і великий малюнок для мережі виглядають однаково.
Крок 2: нейрон підсумовує
Перший шар має 32 нейрони. Кожен дивиться на всі пікселі й множить кожен на власну вагу. Ваги одного нейрона утворюють візерунок: додатні ваги (на сторінці сині) — це місця, де чорнило збільшує суму, від’ємні (помаранчеві) — місця, де зменшує. Потім нейрон усе додає, додає свій зсув (bias) і передає результат далі, лише якщо він додатний. Інакше передає нуль і лишається згаслим. Це правило називається ReLU.
Для нашої цифри найяскравіше світить нейрон 31. Чорнило на його синіх місцях додало +6,07, чорнило на помаранчевих -2,56, а його зсув становить +0,11. Сума дорівнює 3,62, і оскільки вона додатна, нейрон передає її далі.
Із 32 нейронів першого шару засвічується 14. Кожен реагує на інший короткий штрих в іншому місці зображення, як видно з їхніх візерунків на сторінці. Ці числа — це все, що мережа «бачить»: жодних очей, лише зважені суми.
Крок 3: зі штрихів — більші форми
Другий шар має 16 нейронів і вже не бачить пікселів. Його вхід — те, наскільки яскраво світять нейрони першого шару, а рахує він так само: помножити на вагу, додати, додати зсув, від’ємну суму замінити нулем. Так він складає прості штрихи в більші частини цифри. Із 16 нейронів другого шару для нашої цифри засвічується 8.
Що саме «означає» кожен нейрон другого шару, просто сказати не можна. Мережа сама створила ці проміжні кроки під час навчання, і ніхто не дав їм назв.
Крок 4: із десяти сум — одна відповідь
Останній шар має 10 виходів, по одному для кожної цифри. Кожен підсумовує нейрони другого шару зі своїми вагами. Вихід для цифри 3 має суму 14,97, а другий за величиною — вихід для цифри 5 із сумою 4,38.
Функція softmax потім перетворює всі десять сум на частки, які разом дають 100 %. Що більша сума, то більша частка. Цифра 3 отримує понад 99,9%, тож мережа вибирає її як відповідь.
Як мережа вивчила свої ваги
Загалом мережа має 25 818 вивчених чисел: ваг серед них 25 760, зсувів 58. Ніхто не налаштовував їх вручну. Спочатку вони були майже випадкові, і мережа вгадувала навмання.
Потім вона отримала 60 000 рукописних цифр із правильними відповідями. Після кожного пакета з 64 цифр вимірювали, наскільки вона помилилася, і кожну вагу трохи зсували в напрямку, що зменшує помилку. Це називається зворотним поширенням помилки та градієнтним спуском. Увесь набір мережа пройшла 30 разів.
Щоб мережа впоралася й із цифрами, намальованими мишею, на кожному проході кожну навчальну цифру трохи випадково зсували, повертали, нахиляли та стоншували або потовщували. Тож мережа жодного разу не бачила двічі те саме зображення.
Як часто вона помиляється
Ми перевірили мережу на 10 000 тестових цифрах, яких вона ніколи не бачила під час навчання. Правильно вона відповіла на 9 780 із них, тобто 97,8%.
| Цифра | Тестових цифр | Правильно | Найчастіша помилка |
|---|---|---|---|
| 0 | 980 | 98,9% | 8 (3×) |
| 1 | 1 135 | 98,9% | 2 (4×) |
| 2 | 1 032 | 98,2% | 7 (6×) |
| 3 | 1 010 | 98,0% | 5 (12×) |
| 4 | 982 | 97,5% | 9 (13×) |
| 5 | 892 | 97,8% | 3 (11×) |
| 6 | 958 | 98,3% | 0 (4×) |
| 7 | 1 028 | 97,9% | 2 (12×) |
| 8 | 974 | 97,2% | 2 (4×) |
| 9 | 1 009 | 95,3% | 3 (14×) |
Найкраще мережі вдається цифра 0 (98,9% правильно), найгірше — 9 (95,3%). Найчастіша помилка в усьому тестовому наборі: замість 9 вона відповіла 3, і так 14×.
Мала мережа проти більших
Стаття, у якій Лекун і колеги представили MNIST 1998 року, порівнює багато методів на тих самих тестових цифрах. Простий лінійний класифікатор, у якому кожен піксель веде просто до десяти виходів, помилявся в 12% випадків. Мережа з двома прихованими шарами по 300 і 100 нейронів мала 3,05% помилок, а 2,5%, коли навчалася ще й на штучно спотворених цифрах. Згорткова мережа LeNet-5, що має 60 000 параметрів, помилялася лише в 0,95% випадків.
Наша мережа має 25 818 параметрів і помиляється в 2,2% випадків. Згорткова мережа використовує той самий маленький детектор штрихів у кожному місці зображення, тож їй не треба вчити штрих окремо для кожного положення. Мережі, які сьогодні розпізнають мовлення чи пишуть тексти, працюють за тим самим принципом зважених сум, лише вони на багато порядків більші.
Чому вона неправильно читає ваш малюнок
- Вона знає лише цифри, схожі на цифри з MNIST. Їх писали працівники Бюро перепису населення США та американські старшокласники. Одиниця з довгим верхнім штрихом або перекреслена сімка можуть вийти гірше.
- Вона не вміє сказати «не знаю». Завжди вибирає одну з десяти цифр.
- Миша малює інакше, ніж ручка. Штрихи мишею чи пальцем виглядають інакше, ніж штрихи ручкою на папері, з яких постав MNIST.
Коли мережа неправильно прочитає вашу цифру, подивіться на сторінці в кроці 2, які нейрони першого шару засвітилися, і в кроці 4, яким виходам вони додали. Часто одразу видно, який штрих збив її з пантелику.
Спробуйте самі на сторінці Як нейромережа розпізнає цифри: намалюйте цифру й натисніть будь-який нейрон.
Спробуйте самі
Як нейромережа розпізнає цифри
Джерела даних
- Yann LeCun, Corinna Cortes, Christopher J. C. Burges: The MNIST database of handwritten digits (archived copy)
- LeCun, Bottou, Bengio, Haffner: Gradient-based learning applied to document recognition, Proceedings of the IEEE 86 (11), 1998
Стаття пояснює, як працює нейромережа. Її числа — справжні значення мережі на цьому сайті, обчислені з її вивчених ваг і тестового набору MNIST.