Онлайн час в Google Meet
Лого на 91. НЕГ „Проф. Константин Гълъбов“

11. клас · Избираем модул · Урок 23

От пиксели към признаци — как машината разпознава образ

Защо сравнението пиксел по пиксел не работи, как ръбовете стават части, а частите — предмети, и защо моделът греши при необичаен ъгъл, светлина или фон. Проверяваме с Teachable Machine.

Защо не сравняваме пиксел по пиксел

Имаме матрицата (урок 21) и знаем как да намерим ръбовете ѝ (урок 22). Най-простата идея за разпознаване е: пазим по една „образцова“ снимка на всяка буква и сравняваме новата снимка с всяка от тях число по число. Където съвпадат най-много пиксели — това е отговорът.

Идеята се проваля още на първия тест. Ето буквата „I“ два пъти:

образец            същата буква, изместена с една колона
0  255  0  0  0      0  0  255  0  0
0  255  0  0  0      0  0  255  0  0
0  255  0  0  0      0  0  255  0  0
0  255  0  0  0      0  0  255  0  0
0  255  0  0  0      0  0  255  0  0

съвпадащи пиксели: 15 от 25 — по-малко, отколкото при съвсем празен квадрат (20)

Едно изместване, лек наклон, друг размер, друго осветление — и числата вече не съвпадат, макар за окото да е същата буква. Пикселите са прекалено „сурови“. Трябва ни нещо по-устойчиво.

Признаци вместо пиксели

Признак (feature)

Характеристика на изображението, която е по-устойчива от отделния пиксел: „има вертикален ръб“, „има ъгъл“, „има кръгло петно“, „има две тъмни точки една до друга“. Признакът не зависи от това дали буквата е с една колона наляво.

Ядрата от миналия урок са точно детектори на признаци: ядрото за вертикални контури „светва“ навсякъде, където има вертикален ръб — без значение в коя колона е. Мрежата за образи има десетки такива ядра в първия си слой и всяко търси нещо просто: ръб с определен наклон, преход от тъмно към светло, малко петно.

Йерархия на признаците

пикселиматрица от числаръбовеслой 1: ядра 3×3частислой 2–3: око, ухо, колелопредметпоследен слой: „котка 92%“Всеки слой строи по-сложни признаци от по-простите на предишния. Никой не ги е програмирал.
От прости към сложни признаци — слой по слой.
  1. Слой 1 гледа пикселите и намира ръбове и петна.
  2. Слой 2 гледа не пикселите, а картата на ръбовете и намира комбинации: ъгъл (два ръба, които се срещат), дъга, кръг.
  3. Следващите слоеве сглобяват комбинациите в части: око, ухо, колело, дръжка.
  4. Последният слой е обикновен класификатор от урок 19: получава вектор „колко от всяка част има“ и връща вероятност за всеки клас.

Пътят от изображение до отговор

Проследете целия път за една снимка на котка:

СтъпкаКакво имаКолко числа
Камерацветна снимка 224×224224 × 224 × 3 ≈ 150 000
Слой 1 (ядра)карти на ръбове и петнадесетки карти
Слой 2–3ъгли, дъги, текстуристотици карти, по-малки
Дълбоки слоевечасти: очи, уши, козинахиляди признаци
Последен слойвероятност за всеки класколкото са класовете
Отговорнай-голямата вероятност„котка — 92%“

Увереност (confidence)

Числото, което моделът дава на избрания клас — например 92%. Не е „вярно на 92%“; означава само, че признаците приличат на тези от обучаващите снимки с етикет „котка“. Под определен праг на увереност отговорът трябва да се отхвърля.

Защо греши при нетипични изображения

Мрежата е учила върху снимки, каквито хората качват: центриран предмет, добра светлина, обичаен ъгъл. Признаците, които е открила, са признаците на тези снимки. Покажем ли ѝ нещо друго, признаците не се появяват или се появяват други — и отговорът се обърква.

  • Друг ъгъл: чаша, снимана отгоре, е кръг с дръжка — признакът „висок цилиндър“ липсва.
  • Осветление: в сянка ръбовете са слаби, а слой 1 търси именно ръбове; на силна светлина части от предмета „изгарят“ до бяло (урок 22).
  • Фон: ако всички снимки на вълци в набора са в сняг, мрежата може да научи „сняг → вълк“ — по-лесен признак от самото животно. Куче в сняг тогава става „вълк“. Това е пристрастие в данните от урок 13, видяно отвътре.
  • Частично закрит предмет: липсват части, а именно частите брои последният слой.

Какво трябва да запомниш

  • Сравнението пиксел по пиксел се проваля при най-малкото изместване, наклон или смяна на светлината.
  • Признакът е устойчива характеристика — ръб, ъгъл, петно, част — независима от точното място.
  • Мрежата строи йерархия: пиксели → ръбове → комбинации → части → предмет; всеки слой гледа предишния.
  • Признаците на всички слоеве са научени от данните, не програмирани.
  • Увереността показва прилика с обучаващите снимки, не истинност; под праг отговорът се отхвърля.
  • Грешките идват при нетипични снимки — друг ъгъл, светлина, фон — защото такива не е имало в данните.