Круглый коричневый комочек и три чёрные точки. По какой мерке ни сравнивай — один пиксель, средний цвет, пиксельное расстояние, — чихуахуа и маффин похожи друг на друга больше всего. Мы увидим, что низкоуровневый признак, ищущий тёмные точки, одинаково срабатывает на обоих фото, выясним, что пропадает первым при снижении разрешения и почему пиксельное правило выбирает случайную клетку фона. В конце разберём три способа, которыми ошибается модель, и подведём итоги всей серии.
Круглый коричневый комочек и три чёрные точки. Два глаза и нос — и три черничины почти на тех же местах. Похожи ли они и в числах?
Эта пара — классический пример того, насколько трудна классификация изображений. Даже человек, бегло глядя на маленькие миниатюры, на миг путается. Общее у них — низкоуровневые признаки (круглый комочек, бежево-коричневый цвет, три тёмные точки треугольником), а различие — высокоуровневые признаки (блик в зрачке, влажный блеск носа, текстура шерсти против текстуры выпечки, уши против складок бумажной формочки).
В этом выпуске мы достаём все инструменты из 4-1~4-3 и препарируем эту пару. Посмотрим, насколько они похожи в числах (раздел 2), почему обманываются низкоуровневые признаки (раздел 3), что будет при снижении разрешения (раздел 4), пиксельное правило против паттерна (раздел 5), а также как ошибается модель и в чём её ограничения (раздел 6), и сведём всю серию на одну страницу (раздел 7).
Выражение «чихуахуа или маффин» пошло от подборки фото, широко разошедшейся по интернету около 2016 года; с тех пор её часто приводят как пример трудностей распознавания изображений. Изображения на этой странице заново созданы автором по той же идее.
Измеряем клетку зрачка и клетку черники, средний цвет двух фото и пиксельное расстояние в оттенках серого. По числовым меркам ближайший друг чихуахуа — маффин.
| Чихуахуа | Маффин | Разница | |
|---|---|---|---|
| Одна тёмная клетка (R, G, B) · при уменьшении до 14 × 14 | Глаз (39, 37, 43) | Черника (37, 31, 37) | Почти одинаково |
| Средний цвет всего фото (R, G, B) | (189, 162, 138) | (189, 164, 136) | Почти одинаково |
| Пиксельное расстояние в оттенках серого (56 × 56) | Чихуахуа ↔ маффин 61.4 · чихуахуа ↔ собака 71.0 · чихуахуа ↔ кошка 87.8 | Маффин ближе всех | |
По какой мерке ни сравнивай — один пиксель, средний цвет, пиксельное расстояние, — чихуахуа больше всего похожа на маффин. Как мы видели в 4-2, эти мерки не знают, «что изображено». В таблице ниже можно посмотреть расстояния между всеми пятью фото.
Мы измерили пиксельные расстояния между всеми пятью фото на этой странице. Чем меньше число, тем более «похожими» фото оказались по расчёту. Наименьшие значения выделены цветом.
Значения в этой таблице измерены на пяти фото этой страницы (вырезаны только лица и уменьшены до 56 × 56). С другими фото значения сильно меняются в зависимости от фона·освещения·композиции, но вывод «пиксельное расстояние не совпадает с расстоянием по смыслу» — хорошо известное свойство и для реальных фотографий.
Такой результат получается не потому, что «модель глупая». Простейшие способы сравнивать числа измеряют внешний вид, а не смысл. В этой подборке, специально сделанной из внешне похожих фото, это ограничение проявляется сильнее всего. На реальных фотографиях фон и композиция у всех разные, и числа могут быть менее похожими, но ловушка того же рода никуда не девается.
Одинаково применяем к двум фото фильтр, который ищет «круглые точки темнее окружения». На обоих фото три точки находятся почти одинаковым треугольником.
В режиме «Тёмная точка» на обоих фото находятся три чёрные точки почти в одинаковом треугольном расположении. У чихуахуа это два глаза и нос, у маффина — три черничины. Средний цвет у обоих тоже бежево-коричневый. Для модели, которая использует только признаки первых слоёв, это одно и то же фото.
Внимание Эта подборка сделана с похожей композицией (анфас, белый фон), чтобы показать «легко путаемую пару». Поэтому сходство может быть заметнее, чем на случайных снимках. Это явление широко известно и для реальных фото чихуахуа и маффинов, но его степень зависит от снимка.
Если снизить разрешение до 7 × 7, различить их становится трудно даже человеку. Если модель училась только на маленьких фото, с ней происходит то же самое.
Подсказки, которые их различают, тоньше. Это крошечный белый блик в зрачке, влажный блеск носа, тонкая текстура шерсти против рыхлой текстуры выпечки, уши на макушке против складок бумажной формочки, а также то, всегда ли три точки расположены симметрично (черника лежит как попало). Чтобы их увидеть, нужны признаки дальних слоёв и разнообразные фото.
Режим «Тёмная точка» находит круглые тёмные пятна по разности двух по-разному размытых копий фото (DoG). Это низкоуровневые признаки того же рода, что ищут первые слои CNN. Для модели, которая смотрит только до этого слоя, чихуахуа и маффин — одно и то же фото. В коде 1 «площадь тёмных мест» у синтетических рисунков в стиле чихуахуа и в стиле маффина тоже совпала: 5.81% и 5.83%.
Уменьшаем одно и то же фото до 7 × 7, 14 × 14, 28 × 28. Разрешение — это объём информации, который получает модель.
Сначала стоит 7 × 7. Даже глазом их почти не различить. Повышая до 14, 28, 56, записывайте, что начинает проступать первым. Обычно сначала видны контур ушей чихуахуа и вертикальные складки формочки маффина, а блики в глазах и текстура шерсти — в самую последнюю очередь.
При снижении разрешения уменьшается количество чисел (число признаков), и первыми пропадают мелкие подсказки. Низкоуровневые признаки (три точки) переживают и низкое разрешение, а высокоуровневые признаки, различающие эту пару, видны только при высоком разрешении.
| Разрешение | Число признаков | Точность на тестовой выборке | Чаще всего путаемая пара (ответ→прогноз: раз) |
|---|---|---|---|
| 8 × 8 | 64 | 96.2% | 8→1: 4, 4→1: 2, 3→9: 2 |
| 4 × 4 | 16 | 89.8% | 8→1: 14, 1→8: 6, 1→9: 3 |
| 2 × 2 | 4 | 53.4% | 0→8: 20, 2→4: 17, 1→9: 16 |
Мы уменьшили рукописные цифры усреднением по клеткам и проверили одним и тем же классификатором (логистической регрессией). Чем ниже разрешение, тем раньше начинают путаться пары похожей формы (8 и 1, 0 и 8). С чихуахуа и маффином то же самое. Если обучать только на маленьких фото, модель вообще не получит подсказок, по которым их можно различить.
Разрешение — это число клеток таблицы. Чем меньше клеток, тем дешевле вычисления, но мелкие подсказки пропадают. Реальные модели тоже задают размер входа (например, 224 × 224) и уменьшают фото под него, поэтому в задачах, где важны мелкие различия (мелкий брак, далёкий дорожный знак), выбор разрешения сильно влияет на качество.
Если применить к фото правило «одна переменная > порог» из 4-1, компьютер выберет из 784 клеток клетку фона, которая случайно подошла. Если же извлекать паттерны из карты признаков, модель угадывает и на новых фото.
В 4-1 с рыбами хватило одной строки — правила «одна переменная > порог». Что будет, если применить тот же способ к 784 клеткам фото? Правила и паттерны ищем на 80 «обучающих» фото и проверяем на 80 «новых фото», не использованных при обучении.
① Тем же способом ищем правило «пиксель > порог» по всем 784 клеткам.
② Строим фильтром карты признаков и кратко описываем паттерн по всей карте.
«Новые фото» получены из тех же 12 изображений другими сдвигами и изменением яркости, поэтому такая проверка легче, чем на совсем других фото. Два фильтра в ② выбраны человеком, а CNN выучивает из данных десятки–сотни таких фильтров.
Код 1 вместо реальных фото программно рисует картинки 28 × 28 «в стиле чихуахуа» и «в стиле маффина». У обеих бежевый круг и 3 чёрные точки, а различаются они только ушами (сверху) и складками бумажной формочки (снизу).
Результат: точность пиксельного правила упала с 73.8% на обучающих рисунках до 61.3% на новых, а выбранная клетка оказалась у нижнего края рисунка. Низкоуровневый признак — площадь тёмных мест — у двух видов совпал (5.81% против 5.83%), а частичные паттерны (сила вертикальных складок снизу, сила границ сверху) дали 96.3% и на новых рисунках. Вывод тот же, что и в практике с реальными фото.
То, что пиксельное правило выбирает клетку фона, — маленький пример обучения коротким путём. Модель ухватилась за простую подсказку, которая на обучающих фото случайно появляется вместе с правильным ответом. Человеку сразу видно, что это «клетка, не имеющая отношения к чихуахуа», а модель знает лишь, что эта клетка хорошо угадывает ответ.
Подсказки, различающие эту пару, — блики, текстура шерсти, уши, складки формочки — видны только в дальних слоях. Как ошибается модель, которая их не выучила?
Если складывать слои, уменьшая фотографию пулингом, одна клетка дальнего слоя видит более широкую область исходной фотографии. Поэтому ранние слои ищут маленькие линии, следующие — глаза и уши как сочетания линий, а ещё более дальние — лицо целиком. Этот рисунок упрощённо передаёт тенденцию, которую Цайлер и Фергюс (2014) показали, визуализировав реакции слоёв обученной CNN.
Обучение коротким путём. Модель хватается за самую лёгкую подсказку, позволяющую угадать ответ. Если маффины на обучающих фото всегда лежали на белой тарелке, она может выучить «белый фон», а если чихуахуа всегда снимали в помещении — «комнатное освещение». На обучающих данных это хорошо работает, но рушится, как только меняются условия [R5]. Пиксельное правило из раздела 5 — маленький пример этого.
Незнакомые фото (сдвиг распределения). В условиях, которых не было при обучении, например чихуахуа в профиль, маффин с шоколадной крошкой или тусклое освещение, точность может сильно упасть. Тестовая оценка — это лишь оценка на «фото, похожих на обучающие» [R6].
Излишняя уверенность. Вероятность софтмакса 0.99 не означает «правильно в 99% случаев». Модель может выдавать высокую вероятность и тогда, когда ошибается, поэтому для важных решений нужно отдельно проверить (откалибровать), совпадают ли вероятности с реальной долей правильных ответов [R7].
Поэтому нужны данные, в которых достаточно легко путаемых пар, фото в разных условиях (фон·ракурс·освещение), достаточное разрешение, аугментация данных (4-3) и привычка проверять, на что смотрела модель, принимая решение.
| Пара | Сложность | Внешнее сходство | Решающее различие (признаки) | Где в основном различаются |
|---|---|---|---|---|
| Кошка vs человек | Легко | Лицо, два глаза | Текстура шерсти в центре морды, острые уши, полоски, форма носа | Уже с 1–2 слоя |
| Кошка vs собака | Средне | Шерсть, два глаза, стоячие уши | Длина морды, размер носа, контур головы | С 3 слоя (форма частей) |
| Чихуахуа vs маффин | Сложно | Коричневый круглый комочек, три чёрные точки | Блики в глазах, текстура шерсти vs выпечки, уши vs бумажная формочка, симметрия | Дальние слои (тонкая текстура + общее расположение) |
Чем сложнее пара, тем больше нужно: больше фото (особенно путаемых), достаточное разрешение, более дальние слои и аугментация данных вроде CutMix.
Q1. Какая причина лучше всего объясняет, почему пара «кошка vs человек» лёгкая?
Q2. Если в Attentive CutMix вставить кусок кошки из 10 клеток в рисунок собаки, каким будет ответ для смешанного рисунка?
Q3. Какое объяснение словами этой страницы лучше всего описывает, почему пара «чихуахуа vs маффин» сложная?
Эта пара различается, только если дойти до правого края послойной схемы — до этапа «решение по всему расположению». Для этого нужно много данных и глубокая модель, а значит, у модели больше и возможностей опереться на постороннюю подсказку. Вместе с метриками качества самому разглядывать фото, на которых модель ошиблась — важнейшая привычка в классификации изображений.
Связываем содержание четырёх выпусков в один поток. Нажмите на блок, чтобы перейти к пояснению в соответствующем выпуске.
| Понятие | Определение в одной строке | Ключевая формула | Что будет без этого |
|---|---|---|---|
| Матрица пикселей | Таблица, где каждая клетка фото записана числом 0~255 | X ∈ {0…255}H×W×3 | Компьютеру нечем считать фото |
| Признак · целевое значение | Строка таблицы = образец, столбец = признак, столбец ответа = целевое значение | (x, y), x ∈ ℝᵈ | Нельзя решить, на что смотреть и что угадывать |
| Линейный классификатор (перцептрон·линейный SVM) | Проводит одну плоскость в пространстве признаков | w · x + b > 0 | Нельзя задать границу. Но и с ним одним пиксельные фото плохо разделяются |
| Фильтр свёртки | Штамп — маленькая таблица чисел, которая ищет узор | Σ K·X + b | Пиксели рассматриваются по отдельности, и смысл не находится |
| Карта признаков | Новая матрица, где записано, где и насколько сильно есть узор | F = ReLU(X∗K) | Следующему слою нечего комбинировать |
| Пулинг | Оставляет только самую сильную реакцию и уменьшает размер | max(2×2) | Много вычислений, и сдвиг даже на одну клетку всё меняет |
| Полносвязный слой + софтмакс | Собирает признаки, выдаёт баллы и превращает их в вероятности | ezk/Σezj | Признаки найдены, но ответ выбрать нельзя |
| Аугментация данных | Меняет или смешивает фото, увеличивая число обучающих примеров | CutMix, отражение, обрезка | Угадывает только заученные фото и ошибается на новых |
В 4-1 мы разобрали правила и границы на осмысленных переменных, в 4-2 — то, что фото является матрицей чисел, а фильтры ищут узоры, в 4-3 — как складывать слои, менять координаты и учиться на смешанных данных, а в 4-4 — трудности и ограничения, которые остаются и после этого. Встретив другую задачу классификации, начните с вопроса: «Есть ли смысл в клетках этих данных? А если нет, какой паттерн создаёт смысл?»
Оба кода используют только библиотеки, предустановленные в Colab, и встроенные данные. Нажмите «Скачать ноутбук (.ipynb)» и откройте его в Colab через Файл → Загрузить блокнот или скопируйте код и вставьте в ячейку нового ноутбука.
Код рисует картинки 28 × 28 в стиле чихуахуа и в стиле маффина и сравнивает правило по одному пикселю, фильтр тёмных точек и два частичных паттерна. Чтобы перейти на свои данные, замените draw() загрузкой своих фото и подгоните области в pattern() под свои фото.
Уменьшаем рукописные цифры 8 × 8 до 4 × 4 и 2 × 2 и для каждого разрешения смотрим точность одного и того же классификатора и чаще всего путаемые пары цифр.
Промпты для вставки в ИИ-ассистента вроде ChatGPT, Qwen или Claude. При нажатии «Копировать» выбранный код добавляется после промпта. Замените текст в 〔 〕 на описание своей ситуации.
Ответ ИИ — лишь отправная точка. Предложенные статьи, числа и функции библиотек обязательно проверяйте по первоисточникам и официальной документации. Если вы пользовались помощью ИИ в конкурсной работе или статье, укажите факт и объём использования по правилам организаторов или журнала.
Тот же словарь, что и у жёлтых пунктирных подчёркиваний в тексте. Во всей серии используются одни и те же термины. Нажмите на название раздела, чтобы перейти к месту первого упоминания.
Аналогия — первый шаг к пониманию, но и семя заблуждения. Для аналогий с глазом и мозгом человека указана степень соответствия. Прямое есть данные, что там действительно происходит то же самое · Частичное похожи лишь некоторые свойства · Нет соответствие неизвестно
| Понятие | Бытовая аналогия | Аналогия с глазом·мозгом | Где аналогия не работает |
|---|---|---|---|
| Низкоуровневый признак | Силуэт, увиденный издалека | Отчасти человек тоже при беглом взгляде сначала судит по контурам и пятнам | Человек тут же подключает контекст (тарелка, поводок) и память. У модели, которая смотрит только первыми слоями, такой подстраховки нет |
| Высокоуровневый признак | Лицо, которое узнали, подойдя ближе | Отчасти в высших зрительных областях есть участки, реагирующие на сложные формы вроде лиц | Высокоуровневые признаки модели — не обязательно то, чему человек может дать имя, вроде «глаз» или «ушей» |
| Разрешение | Число клеток на миллиметровке | Отчасти глаз тоже детально видит только центр поля зрения | Глаз переводит взгляд туда, куда нужно, и рассматривает подробно, а модель видит одно фото, уменьшенное до заданного размера |
| Обучение коротким путём | Ученик, запомнивший ответы по пятнам в углу экзаменационного листа | Нет | Ученик знает, что заучил, а модель не знает, какой подсказкой пользуется |
| Излишняя уверенность | Начинающий водитель, который говорит: «Уверен на 99%!» | Нет | Вероятность модели — не чувство, а результат расчёта. Калибровкой её можно подогнать под реальную долю правильных ответов |
E-1 Об авторе · E-2 Научные источники · E-3 Источники иллюстраций·данных
Рекомендации для преподавателей, наставников OJT и репетиторов. Время указано ориентировочно — подстройте его под реальное занятие.
| Аудитория | Студенты и специалисты, прошедшие 4-1~4-3. Практики, которые перед внедрением ИИ для изображений в работу хотят знать, «где он ошибается» |
|---|---|
| Необходимые знания | Пиксельное расстояние·фильтры из 4-2, CNN·аугментация данных из 4-3 |
| Цели обучения | ① Объяснить на примере разницу между низкоуровневыми и высокоуровневыми признаками ② Объяснить по результатам экспериментов, как разрешение и пиксельные правила влияют на классификацию ③ Различать обучение коротким путём·сдвиг распределения·излишнюю уверенность и называть меры против них |
| Ориентировочное время | Чтение 40–50 мин · демонстрация практики 25 мин · практика в Colab 25 мин (код 1 — 15 мин, код 2 — 10 мин) |
Вступление 5 мин (раздел 1) → числа и низкоуровневые признаки, разделы 2·3 — 15 мин → разрешение, раздел 4 — 10 мин → ограничения, раздел 6 — 15 мин → вопросы «Проверь себя» — 5 мин.
Заменить раздел 1 поиском «легко путаемых пар» в нашей работе — 15 мин → обсудить, почему пиксельное правило в разделе 5 выбирает фон, — 15 мин → применить три вида сбоев из раздела 6 к нашим данным — 25 мин → переделать код 1 под композицию наших фото и запустить — 35 мин.
Начинающим — только разделы 1·2·3·6. Продвинутых попросите изменить pattern() в коде 1 и проверить, насколько хорошо различаются рисунки только по паттерну ушей, а также изучить калибровку (calibration) из раздела 6 и кратко изложить суть.
| Раздел | Вопрос, на котором стоит остановиться | Совет по работе с интерактивом |
|---|---|---|
| 1 Задача | «По каким подсказкам их различает человек?» | Выведите изображение крупно и покажите блики·уши·формочку |
| 2 В числах | «Кто ближайший друг чихуахуа?» | Найдите в таблице расстояний наименьшее значение в каждой строке |
| 3 Низкоуровневые признаки | «Если три точки одинаковы, по чему модель будет различать?» | В режиме «Тёмная точка» сравните положение пронумерованных точек |
| 4 Разрешение | «Что начинает проступать первым?» | Нажимайте по порядку 7 → 14 → 28 → 56 |
| 5 Правило vs паттерн | «Связана ли клетка, выбранная правилом, с чихуахуа?» | Нажмите «Автопоиск пиксельного правила» и посмотрите на отмеченную клетку |
| 6 Ограничения | «Если на тесте 95%, будет ли 95% и на практике?» | Выберите из трёх видов сбоев самый опасный для нашей работы |
| 7 Итоги серии | «Есть ли смысл в клетках этих данных?» | Нажимайте на блоки схемы, переходя между четырьмя выпусками |
| Заблуждение | Верное объяснение | Что показать |
|---|---|---|
| Модель путается, потому что она глупая | По числовым меркам они действительно похожи. Нужны данные и архитектура, позволяющие выучить высокоуровневые признаки | Таблица раздела 2 |
| Чем выше разрешение, тем всегда лучше | Растут вычисления·память, нужно больше данных. Подбирайте под размер подсказок, нужных в задаче | Раздел 4 и код 2 |
| Если точность высокая, модель смотрела на правильные подсказки | Высокий балл можно получить и по подсказкам «короткого пути» вроде фона | Пиксельное правило из раздела 5 |
| Вероятность 0.99 — значит, почти наверняка | Модель может выдавать высокую вероятность, даже когда ошибается. Нужна калибровка | Излишняя уверенность в разделе 6 |
| Соберём больше данных — и всё решится | Если добавлять только данные в тех же условиях, проблема незнакомых фото останется. Важно разнообразие | Сдвиг распределения в разделе 6 |
Чихуахуа 0.299×39 + 0.587×37 + 0.114×43 ≈ 38.3, черника 0.299×37 + 0.587×31 + 0.114×37 ≈ 33.5. Почти одинаково.
На обоих фото есть круглый комочек и три тёмные точки треугольником, поэтому реакции первых слоёв почти одинаковы.
8→1 (14 раз). Когда клеток остаётся 16, две петли восьмёрки и вертикальный штрих единицы дают похожее распределение яркости.
Обучение коротким путём. Модель ухватилась за простую подсказку, которая случайно появляется вместе с правильным ответом.
Сняты ли фото на месте в тех же условиях, что обучающие и тестовые (сдвиг распределения), и совпадают ли вероятности модели с реальной долей правильных ответов (калибровка). Нужно также самому посмотреть на фото, где модель ошиблась.
В коде 1 уберите складки формочки у рисунков в стиле маффина (удалите часть cup), запустите заново, посмотрите, как изменится точность частичных паттернов на новых рисунках, и объясните это в связи с обучением коротким путём из раздела 6.
Добавьте в код 2 вариант с размытием (гауссовым) при разрешении 8 × 8 и сравните, что сильнее снижает точность: «уменьшение числа клеток» или «размытие».
| Начинающим | Таблицу результатов кода в разделе 4 и ② в разделе 5 можно пропустить. Как следует разберитесь в разделах 2·3·6 |
|---|---|
| Углублённо | Пусть найдут и представят случаи обучения коротким путём (медицинские изображения, беспилотные автомобили и т. п.). Найденные статьи проверяют по оригиналам |
| Что изучать дальше | 4-1~4-3 · 3-3 Изображения и CNN · Сансун Ан, конспект лекций «Наука о данных для бизнеса (비즈니스를 위한 데이터 과학)» |
| Материалы для преподавателя | Критерии оценки вопросов «Проверь себя» и примеры ответов к заданиям — на странице ответов для преподавателей (4-4) |
Вы дочитали выпуск «4-4 Чихуахуа vs маффин» до конца. Обитатели лаборатории подведут итоги — каждый в одной фразе.