Чат-боты вроде Gemini или ChatGPT теперь умеют распознавать то, что изображено на фото, будь то человек, животное, предмет или текст. При этом они достаточно точно описывают изображение. Разберёмся, как это работает. Это интересно, потому что у нейросети нет глаз, и она не может видеть изображение, как человек.
КРАТКО◦ Что нейросеть «видит» на самом деле, когда мы даём ей изображение
◦ Как люди научили нейросети так хорошо различать изображения
◦ Ограничения и слабые места нейросетей
◦ Заключение
Что такое нейросеть и как её используют для работы с изображениями

Нейронная сеть или нейросеть — это программа, вдохновлённая принципами работы человеческого мозга. А нейронной она называется потому, что в ней есть искусственные нейроны — небольшие кусочки кода, которые выполняют определённые вычисления.
Такие чат-боты, как Gemini, ChatGPT, GigaChat и другие, работают на базе сразу нескольких нейросетей и других технологий. И сегодня такие модели умеют в том числе работать с изображениями.
Например, вы можете загрузить в чат-бота фото и попросить его изменить. Модель сгенерирует новое изображение с теми изменениями, которые вы опишете в промте (инструкции).
Также можно попросить нейросеть сделать описание изображения. Например, я попросила Gemini описать загруженное фото и получила такой результат:


Модель описала фотографию точно, без ошибок.
Потом я попросила другую модель — GigaChat, написать текст, изображённый на скриншоте, и получила следующий результат:


Модель не сделала ни одной ошибки.
Для работы с изображениями в основном используют особые виды нейросетей — свёрточные.
Что нейросеть «видит» на самом деле, когда мы даём ей изображение

Когда человек смотрит на картинку, мозг преобразует световые волны в понятные для него образы. Мы воспринимаем мир даже не задумываясь, ведь эта система формировалась у нас миллионы лет.
Но с нейросетью всё по-другому: у неё нет глаз, как и любых других органов чувств, и она работает только с числами. Это сложная технология, но если говорить очень упрощённо, то всё происходит так:
- Когда мы показываем нейросети картинку, например, изображение котика, она видит каждый пиксель в виде числа. И эти числа проходят через слои искусственных нейронов.
- Первый свёрточный слой распознаёт простые признаки: края, углы и цветовые градиенты.
- Второй и последующие свёрточные слои принимают информацию и обнаруживают более сложные закономерности: текстуры, формы, части объектов.
- После свёрточных есть и другие типы слоёв. Они уменьшают размер данных, помогая сохранить наиболее важные признаки, преобразовывают данные в вероятность.
Когда информация прошла через все слои, нейросеть определяет вероятность того, что именно изображено на картинке. Например, она может определить: с вероятностью 95% изображён котик.
С каждым годом свёрточные нейронки становятся всё более точными. Например, в научной статье на arXiv за 2023 год опубликованы следующие данные: современные свёрточные нейронные сети достигают высочайшей точности в распознавании изображений — до 88,9%. При этом точность продолжает расти.
Как люди научили нейросети так хорошо различать изображения

Разработчики обучали нейросети на огромном количестве картинок. Для этого они подготавливали миллионы разных изображений, каждое из которых помечали: это котик, собака, дерево и так далее.
Потом сети показывали эти размеченный изображения, а она делала предположения, что это такое.
Потом специальный алгоритм сравнивал предсказания сети с правильными метками и корректировал нейроны так, чтобы в следующий раз предсказание было более верным.
Так происходило до тех пор, пока модель не начинала отвечать в основном верно.
Скорее всего, вы тоже участвовали в обучении нейросетей, например, от Google. Когда система reCAPTCHA показывала вам сетку изображений и просила выбрать все светофоры (мотоциклы, автобусы, переходы или что-либо ещё), то в предложенной сетке были два типа плиток:
- на которых изображены запрашиваемые предметы;
- и на которых они не изображены.
Каждый раз, когда вы правильно кликали на светофор и не кликали на не-светофор, вы фактически маркировали изображения. А когда тысячи людей делали одинаковый выбор для одного и того же изображения, Google получал надёжный размеченный набор данных, который потом использовал для обучения свёрточных нейросетей.
Ограничения и слабые места нейросетей

При распознавании изображений нейросети могут ошибаться. Вот что увеличивает количество ошибок:
Недостаточность обучающих данных. Если при обучении модели было мало примеров определённых групп изображений, то в итоге нейросеть такие изображения будет хуже распознавать.
Качество изображения. Нейросети хуже работают с картинками низкого качества, например, сильно сжатыми, размытыми, засвеченными, слишком слабоосвещёнными или пикселизированными.
Необычные ракурсы. Если объект представлен в непривычном ракурсе, например, перевёрнут или частично скрыт другим объектом, нейросети могут его не распознать. При этом человек легко справится с такой задачей.
Заключение
Чат-боты на базе нейросетей хорошо распознают изображения, потому что учатся на огромном количестве примеров и находят в картинках повторяющиеся закономерности. Но, в отличие от человека, они не «видят» мир, а лишь анализируют цифры и делают вероятностные выводы.
3 комментария