Компьютер видит не изображение, а таблицу чисел. Разбираем на знаменитом меме, как нейросеть слой за слоем собирает признаки, почему кекс и щенок дают почти одинаковый набор — и как объяснить это ребёнку за пятнадцать минут на кухне.
В 2016 году в интернете разошлась картинка: сетка из шестнадцати фотографий, на которых вперемешку кексы с шоколадной крошкой и щенки чихуахуа. Человек различает их за секунду. Компьютер — далеко не всегда.
Картинка стала мемом, но за ней стоит настоящий вопрос, который многое объясняет про то, как работает ИИ. И объяснить его ребёнку можно за пятнадцать минут — без формул.
Что компьютер видит вместо фотографии
Начнём с главного, потому что дальше всё следует отсюда.
Компьютер не видит кекс. И щенка не видит. Он получает таблицу чисел.
Каждая фотография разбита на пиксели — крошечные квадратики. В снимке с телефона их около двенадцати миллионов. Каждый пиксель описан тремя числами: сколько в нём красного, зелёного и синего. Всё. Никаких «глаз», «теста» и «шерсти» в этой таблице нет — есть только числа.
Хороший способ показать это ребёнку: откройте любую фотографию в редакторе и увеличивайте, пока картинка не рассыплется на цветные квадраты. Вот с этим компьютер и работает.
Как из чисел получается «щенок»
Дальше начинается интересное.
Нейросеть, которая распознаёт изображения, устроена слоями — как многоэтажный дом, где на каждом этаже занимаются своим делом.
Первый слой находит самое простое: где в таблице чисел резко меняется яркость. Это границы, линии, углы. Он ещё ничего не знает ни про кексы, ни про собак.
Слои посередине собирают из линий фрагменты покрупнее: круглые пятна, изогнутые контуры, участки с похожей текстурой.
Верхние слои складывают фрагменты в целое: два тёмных круга сверху, тёмное пятно посередине, вокруг неровная текстура — похоже на морду.
Никто не программировал эти признаки вручную. Сеть вывела их сама, посмотрев на тысячи примеров с подписями «это собака», «это кекс». Именно поэтому говорят, что ИИ учится на примерах, а не по правилам: правило «у собаки есть глаза» невозможно записать в виде инструкции для таблицы чисел.
Так почему же путает
Теперь ответ становится очевидным.
Кекс с шоколадной крошкой и морда чихуахуа дают очень похожие наборы признаков. Округлая форма. Два тёмных пятна примерно там, где ожидаются глаза. Ещё одно пятно ниже — на месте носа. Неровная текстура по краю: у одного крошка, у другого шерсть. На маленькой картинке, в неудачном ракурсе, при плохом освещении эти наборы почти совпадают.
Человек не путается не потому, что видит лучше. Он знает вещи, которых нет на фотографии: собака дышит, кекс лежит на тарелке, у собаки бывает хозяин, кекс пахнет ванилью. Всё это — знание о мире, а не о картинке. У нейросети такого знания нет. У неё есть только таблица чисел и признаки, выведенные из тысяч примеров.
Отсюда важная мысль, которую стоит проговорить ребёнку прямо: ИИ не понимает, что он смотрит. Он находит похожее.
Почему это не просто забавно
Тот же механизм даёт ошибки, которые уже не смешны.
Модель, обученную на снимках, сфотографированных с одного ракурса, легко сбить непривычным углом: черепаха, снятая сверху, для сети похожа на камень. Специально подобранный, невидимый глазу шум может заставить систему уверенно назвать панду гиббоном. Несколько наклеек на дорожном знаке способны изменить то, как его читает автопилот.
И ещё одно свойство, самое неприятное: сеть почти никогда не отвечает «я не знаю». Она выбирает наиболее подходящую из известных категорий и выдаёт уверенность в процентах. Девяносто девять процентов на неверном ответе — обычное дело. Уверенность здесь не то же самое, что правота.
Ребёнок, который это усвоил, иначе относится не только к распознаванию картинок, но и к текстам от чат-бота: за уверенным тоном не обязательно стоит правда.
Пятнадцать минут дома
Тема хорошо объясняется на кухонном столе. Вот последовательность, которая работает.
Покажите таблицу чисел. Увеличьте фото до квадратиков. Спросите: «Как ты думаешь, что видит компьютер?» Ответ «квадратики» — уже половина понимания.
Соберите свои признаки. Возьмите два предмета — например, яблоко и мячик — и вместе выпишите, чем они отличаются: цвет, блеск, форма, есть ли хвостик. Потом придумайте случай, когда признаки совпадут: зелёный мячик размером с яблоко. Так ребёнок сам приходит к тому, почему сеть ошибается.
Найдите ту самую картинку. Поищите «chihuahua or muffin» и попробуйте угадать сами. Пара ошибок гарантирована — и это лучший момент разговора: даже мы иногда путаемся, а у нас есть знание о мире.
Задайте главный вопрос. «Что нужно показать компьютеру, чтобы он перестал путать?» Правильный ответ — больше разных примеров: чихуахуа в разных позах, при разном свете, разных окрасов. Не больше одинаковых фотографий, а именно разных. Это и есть суть обучающей выборки, объяснённая ребёнком своими словами.
Коротко
Компьютер видит не изображение, а таблицу чисел. Нейросеть слой за слоем собирает из них признаки и находит наиболее похожую категорию. Кекс и чихуахуа дают почти одинаковый набор признаков — отсюда ошибка.
Главное, что стоит вынести из этой истории: ИИ не понимает, он сопоставляет. И отвечает уверенно даже когда ошибается.
Именно с этого начинается наш бесплатный первый курс: ребёнок сам обучает маленькую нейросеть отличать одно от другого, видит, где она промахивается, и добавляет примеры, пока не заработает. Формул нет, есть двенадцать занятий и понимание, которое остаётся.