Опубликовано 12 апреля 2025

Почему нейросеть путает кошек и собак: проблемы и решения в компьютерном зрении

«Мяу или Гав?» – Почему ваша «умная» нейросеть постоянно путает кошек с собаками

Разбираемся, почему сверхмощные нейросети с миллиардами параметров иногда не могут отличить мопса от британской короткошёрстной, и что это говорит о будущем ИИ.

Искусственный интеллект / Компьютерное зрение 6 – 8 минут чтения
Автор публикации: Ник Код 6 – 8 минут чтения

Привет, это снова я, Ник

Если вы впервые здесь, то позвольте представиться: я тот самый программист, который по выходным проводит время, издеваясь над нейросетями. Да, другие ходят на рыбалку или собирают марки, а я заставляю ChatGPT писать стихи в стиле Маяковского о квантовых компьютерах. Каждому своё.

Сегодня поговорим о том, что меня искренне веселит уже несколько лет. Почему, чёрт возьми, нейросети до сих пор иногда путают кошек и собак? Казалось бы, на дворе 2025-й, ИИ уже придумывает новые лекарства, пишет код лучше среднего программиста (не лучше меня, конечно, но я выше среднего) и даже генерирует такие реалистичные изображения, что фотографы начинают нервно курить в сторонке. И тут вдруг – бац! – и твоя супер-пупер нейросеть уверенно заявляет, что мопс с плоской мордой – это персидский кот.

Как нейросеть «видит» кошек и собак

«Видел одну кошку – видел их всех!» – Нейросеть, наверное

Давайте разберёмся по порядку. Компьютерное зрение – это не «зрение» в человеческом понимании. Когда мы смотрим на котика, мы видим... ну, котика! Нейросеть же видит массив пикселей, который она пытается классифицировать на основе того, чему её научили.

Представьте, что вы никогда в жизни не видели ни кошек, ни собак, и вам показывают тысячи фотографий, говоря: «Это кошка, а это собака». Через какое-то время вы начнёте выделять паттерны: «У кошек обычно треугольные уши, а у собак – более округлые», «Кошки часто меньше собак», «У собак языки обычно свисают изо рта» и т.д.

Вот примерно так же «учится» и нейросеть. Только вместо осознанных правил она создаёт математические модели на основе «признаков», которые сама выделяет из обучающих данных. И вот тут начинается самое интересное.

Проблема #1: Кривое зеркало обучающих данных для ИИ

Проблема #1: Кривое зеркало обучающих данных

ИИ – это зеркало. И иногда оно кривое. (Да, это моя коронная фраза, и я буду её повторять, пока она не станет мемом).

Когда мы тренируем нейросеть на распознавание объектов, мы кормим её обучающими данными. И качество этих данных определяет, насколько хорошо она будет работать. Вот типичные проблемы:

  1. Несбалансированные выборки – Представьте, что 80% фотографий кошек в вашем датасете – это снимки рыжих котов, лежащих на диване. Что произойдёт? Нейросеть может решить, что «быть рыжим и лежать на диване» – это ключевой признак кошачьей природы. И когда вы покажете ей чёрную кошку на дереве, она заколеблется: «Что это за странная кошко-не-кошка»?

  2. Предвзятость аннотаторов – Люди, размечающие данные, тоже делают ошибки. Я как-то участвовал в проекте, где один из аннотаторов упорно помечал чихуахуа как «крысы». Технически он был не так уж неправ (шутка!), но для нейросети это была катастрофа.

  3. Скрытые переменные – Иногда нейросеть находит корреляции, о которых мы даже не подозреваем. Классический пример: алгоритм учился распознавать волков и собак, но в итоге научился распознавать снег! Потому что большинство фотографий волков было снято на снежном фоне.

Проблема #2: Почему нейросеть может быть умной и глупой одновременно

Проблема #2: Когда твоя нейросеть слишком умная и слишком глупая одновременно

Современные архитектуры нейросетей для компьютерного зрения – это настоящие монстры. Возьмём, к примеру, Vision Transformer (ViT) или недавнюю SOTA-модель от NVIDIA (не буду уточнять какую именно, потому что к моменту выхода этой статьи она уже устареет – вот такая скорость в мире ИИ).

Эти модели имеют миллиарды параметров и могут обрабатывать сложнейшие зависимости в данных. Но парадоксальным образом, чем сложнее модель, тем более странные ошибки она может совершать. Почему?

  1. Переобучение – Когда у модели слишком много параметров относительно обучающих данных, она начинает «запоминать» примеры вместо того, чтобы выучивать общие правила. Это как студент, который вместо понимания физических законов просто запоминает ответы к задачам из учебника. На экзамене он провалится.

  2. Проблема распределений – В реальном мире данные часто выглядят иначе, чем в обучающей выборке. Представьте, что мы тренировали нейросеть только на фотографиях, сделанных при дневном свете. А потом показываем ей ночную фотографию кота... и она говорит, что это носорог. С человеческой точки зрения это абсурд, но для нейросети это логично: она никогда не видела таких тёмных кошек.

  3. Странные уверенности – Моя любимая особенность нейросетей: они часто ошибаются с вызывающей восхищение уверенностью. «Это собака, вероятность – 99,8%». И ты смотришь на фото, где явно изображён диван. Нет, серьёзно, это бывает.

Проблема #3: Сложности распознавания похожих кошек и собак

Проблема #3: Кошки и собаки, которые слишком похожи

Давайте будем честны: некоторые породы кошек и собак действительно похожи. Взгляните на сиамского кота и хаски – оба с голубыми глазами и контрастным окрасом. Или на сфинкса и китайскую хохлатую – обе породы практически лысые.

Но человек обычно не путается. Почему? Потому что мы не только смотрим на текстуру шерсти или цвет глаз. Мы интуитивно понимаем «кошачесть» и «собачесть» – это комплекс признаков, включающий манеру движения, пропорции тела, выражение морды и т.д.

Нейросети пытаются выучить эти признаки, но им сложнее, потому что:

  • Они обычно работают с одиночными кадрами, а не с видео
  • Они не имеют врождённого понимания физики и биологии
  • У них нет нашего эволюционного багажа (мы эволюционировали рядом с собаками и кошками миллионы лет)

Как нейросети научиться различать кошек и собак: практические советы

Решение: Как заставить вашу нейросеть отличать Мурзика от Шарика

Если вы разрабатываете систему компьютерного зрения и у вас есть проблемы с различением кошек и собак (или любых других похожих классов), вот несколько советов:

  1. Аугментация данных – Искусственно увеличьте разнообразие обучающей выборки, применяя различные преобразования: поворот, масштабирование, изменение яркости и контраста, добавление шума. Это поможет модели стать более устойчивой к вариациям во входных данных.

  2. Сбалансированные выборки – Убедитесь, что у вас примерно одинаковое количество примеров для каждого класса и подкласса. Если у вас 1000 фото лабрадоров и 10 фото догов, модель будет хуже распознавать догов.

  3. Контрастное обучение – Явно покажите модели пары похожих, но разных объектов (например, персидский кот vs мопс) и заставьте её научиться различать именно эти сложные случаи.

  4. Ансамбли моделей – Иногда несколько «средних» моделей работают лучше, чем одна «супер-модель». Попробуйте создать ансамбль из нескольких нейросетей с разной архитектурой и обученных на разных подмножествах данных.

  5. Не ждите чуда – Даже лучшие системы иногда ошибаются. Человек тоже может перепутать чихуахуа с крысой, если увидит её мельком и в темноте (я не про себя, конечно).

Чему нас учат ошибки распознавания кошек и собак нейросетями

Чему нас учат эти пушистые ошибки?

Тот факт, что современные нейросети всё ещё иногда путают кошек и собак, напоминает нам о важных вещах:

  1. ИИ не «видит» мир так, как мы – Для нас распознавание объектов – это нечто настолько естественное, что мы даже не задумываемся, как это происходит. Для машины это сложнейшая математическая задача.

  2. Данные решают всё – Качество, разнообразие и репрезентативность данных определяют качество модели. Garbage in – garbage out, как говорится.

  3. Разрыв между специализированным и общим интеллектом – Нейросеть может быть чемпионом мира по игре в го и при этом не понимать, что кошки обычно не лают. Различные аспекты интеллекта развиваются неравномерно.

ИИ и компьютерное зрение: будет ли будущее без ошибок?

Заключение: Будущее без ошибок?

Мы приближаемся к тому моменту, когда компьютерное зрение достигнет (и в некоторых задачах уже достигло) человеческого уровня. Но совершенства, вероятно, не будет никогда – как не бывает его и у людей.

У каждой технологии есть свои пределы. И это нормально. Важно понимать эти пределы и работать над их расширением, а не ожидать, что однажды утром мы проснёмся в мире, где алгоритмы никогда не ошибаются.

А пока что продолжайте показывать своим алгоритмам фотографии мопсов и спрашивать: «Это кот или собака»? И если алгоритм ответит, что это енот, не спешите его ругать. Может быть, он видит что-то, чего не видите вы.

Или, скорее всего, он просто глючит.

P.S. В процессе написания этой статьи я попросил GPT-4 классифицировать 100 случайных изображений кошек и собак. Он ошибся 7 раз. Когда я попросил свою племянницу (4 года) сделать то же самое, она ошибалась в 2% случаев. Так что... может быть, нам стоит начать обучать наши нейросети на четырёхлетних детях? Или это уже слишком далеко заходит?

Предыдущая статья Может ли ИИ стать новым Сократом? Следующая статья Почему тикток знает, что вы тайно любите видео с котиками?

Связанные публикации

Вам может быть интересно

Открыть НейроБлог

Тема редко существует в изоляции. Ниже – материалы, которые перекликаются по идеям, контексту или настроению.

НейроБлог

Почему люди верят в теории заговора?

Психология и общество Социология

Глубокий анализ психологических причин веры в теории заговора с личными примерами и советами по развитию критического мышления.

Марк Эллиот 3 апр 2025

От замысла к форме

Как создавался этот текст

Этот материал не был сгенерирован «одним запросом». Перед началом работы мы задали автору рамку: настроение, оптику, стиль мышления и дистанцию к теме. Эти параметры определяли не только форму текста, но и то, как именно он смотрит на предмет – что считает важным, на чём делает акценты и каким языком рассуждает.

Сарказм в коде

87%

Объясняет сложное просто

82%

Внимание к деталям

90%

Нейросети, участвовавшие в работе

Мы открыто показываем, какие модели использовались на разных этапах. Это не просто «генерация текста», а последовательность ролей – от автора до редактора и визуального интерпретатора. Такой подход помогает сохранить прозрачность и показать, как именно технологии участвовали в создании материала.

1.
Claude Sonnet 3.7 Anthropic Генерация текста на заданную тему Создание авторского текста по исходной идее

1. Генерация текста на заданную тему

Создание авторского текста по исходной идее

Claude Sonnet 3.7 Anthropic
2.
Flux Dev Black Forest Labs Создание иллюстрации Генерация изображения по подготовленному промпту

2. Создание иллюстрации

Генерация изображения по подготовленному промпту

Flux Dev Black Forest Labs

Не пропустите ни одного эксперимента!

Подпишитесь на Telegram-канал –
там мы регулярно публикуем анонсы новых книг, статей и интервью.

Подписаться