Галлюцинации, слабоумие и путаница объектов — то, чем грешат большинство нейросетей для генерации картинок. Несмотря на хейт, мы нашли ИИ-модель, которая безошибочно определяет объекты на фотографиях и видеороликах.

Архитектура появилась в 2015 году и сразу добралась до повседневной жизни, но нейроэнтузиасты не замечают технологию в упор. Большинство инфы по теме ResNet написана для гиков, кишит непонятные терминами и полотнами с кодом. Редакция CPAMonsto исправит эту ситуацию: рассказываем, что такое архитектура Resnet, как обучаются и работают такие нейросети.
Что такое ResNet-архитектура и как работают эти модели
ResNet или остаточные связи — сверточная нейронная сеть, которая заточена под классификацию изображений. Модели ResNet прогоняют картинку или видео через набор блоков, постепенно определяя конкретные признаки через сопоставление с образцом.
ResNet относится к категории глубоких нейросетей, которым свойственны 2 проблемы:
- затухание градиента: чем больше слоев, тем «тупее» становится нейросеть;
- взрыв градиента: ответы становятся непредсказуемыми.
В декабре 2015 года разработчики из команды Microsoft решили эту проблему за счет остаточных связей. Модель ResNet снабдили модель остаточными блоками, которые передают информацию напрямую, минуя близлежащие слои — так импульс градиента не распыляется на лишние блоки.
Градиент — вектор, который показывает, как скорректировать веса, чтобы искусственный интеллект не ошибался. Направление градиента показывает, в какую сторону менять веса, а длина указывает на объемы. |
Если сказать проще, нейросеть учится новому, не забывая предыдущих шагов — изучая материал, ИИ откатывается назад, чтобы убедиться в правоте.
Как устроена архитектура ResNet и чем отличается от других нейронных сетей
Чтобы со старта не пугать читателей терминами и схемами, рассмотрим, как выглядели модели глубоких сверточных сетей до появления архитектуры ResNet.
Обычные нейросети глубокого обучения выстраивают пирамиду: слои лежат друг на друге. Например, чтобы передать сигнал от блока №1 к блоку №5, модель пройдет через 2-4 слои.
Представим, что слоев не 5, а 1000. Пройдя через тысячу ступеней, импульс градиента затухнет: это скажется на точности ответов.

Встречается и противоположная проблема, когда градиента не затухает, а наоборот взрывается. Разработчики добавляют больше весов, чем нужно, чтобы градиент затухал: ИИ умнее настолько, что сходит с ума и галлюцинирует.
ResNet — многослойная нейросеть с рекуррентной структурой: разработчики разместили остаточные связи между блоками. Входной сигнал ResNet перепрыгивает через N-слоев, не растрачивая силы импульса: затухание градиента в ResNet-моделях исключено.

Добавлять веса в ResNet нет никакого смысла, так как импульс не гаснет. За счет нелинейности эта архитектура решает две проблемы одновременно: ИИ не «тупят» и не галлюцинируют.
Количество блоков зависит от версии нейронной сети ResNet. На момент написания статьи разработчики выкатили 5 версий:
- ResNet-18;
- ResNet-34;
- ResNet-50;
- ResNet-101;
- ResNet-150.
Цифра после аббревиатуры «ResNet» показывает количество блоков. Чем больше блоков внутри модели, тем умнее ИИ: чем больше блоков, тем больше вычислительных мощностей нужно для запуска.
Как обучают нейросети, написанные на архитектуре ResNet
Чтобы ResNet-модель не тупила, нужно натренировать ИИ на конкретную задачу. Схема обучения этих моделей схожа с нейросетями для генерации текста и графического контента. Не будем размениваться на размытые формулировки, а перейдем к конкретике: для удобства стратегия учебы поделена на этапы, а формулировки упрощены.
Этап №1: собираем базу картинок или видео. Представим ситуацию: иллюстратор планирует натаскать Resnet-модель на поиск картинок, где встречаются логотипы компании N. Это нужно, чтобы не просматривать +100 картинок вручную. Алгоритм здесь такой:
- собираем пачку картинок или видеороликов;
- вычищаем базу: удаляем дубли, неподходящие и размытые картинки;
- вручную или через ПО отмечаем логотип, который станет ориентиром для нейросети;
- распределяем собранные картинки на тренировочную и контрольную группу: тренировочную группу используем для учебы, а контрольную для оценки сформированных навыков.
Если нейросеть справится с тестом, усложняем задачу — берем те же картинки и расставляем «препятствия»: отзеркаливаем, поворачиваем или меняем контрастность.
Этап №2: переходим к практике. Разработчики скачивают «голую» модель или прописывают с нуля. Вопрос упирается в уровень навыков программирования. Скачать предобученные Resnet-модель можно на PyTorch и GitHub и других сайтах-репозиториях.
Схема обучения Resnet-модели сводится к прогону тестовой группы картинок или видеороликов через ИИ.
Этап №3: тестируем и оптимизируем модель. Когда нейросеть «впитает» информацию и паттерны, переходим к тестированию и корректировкам. Этот этап подразумевает:
- прогон контрольную группы картинок или видео через ИИ;
- сравнение ответов нейросети с референсами, где отмечены ориентиры: чем ближе модель приблизилась к исходникам, тем лучше;
- вычисление градиента: это нужно, чтобы понять, в каком направлении корректировать веса;
- оптимизацию и нормализацию модели: прибавляем или убавляем веса, опираясь на высчитанный градиент.
Разработчики повторяют алгоритм, пока ответы нейросети не сравняются с референсами-образцами.
Веса — метрика, которая отражает, как входной сигнал влияет на конечный результат. Здесь важен баланс: если веса не хватает, ИИ не научится улавливать паттерны. Если вес в избытке, нейросеть не справится с новыми картинками, которые не видела раньше. |
Этап №4: дообучаем модель. После тестирования и корректировки ИИ научится справляться с конкретными картинками. Если попросить такую модель классифицировать инфу, которая не попадалась раньше, начнутся факапы и галлюцинации.
Галлюцинация нейросети — неточная или ложная инфа. |
Чтобы устранить этот пробел, разработчики:
- замораживают веса стартовых блоков ИИ: это нужно, чтобы нейросеть не забыла заученные паттерны;
- загружают пачку новых видеороликов или картинок в последние слои.
По итогу нейросеть учится классифицировать незнакомый контент, но не забывает заученных паттернов.
На этом учеба заканчивается. Чтобы настраивать модель самому, нужны скилы в областях Data Science и машинного обучения. Плюсом к навыкам, учеба «многовесовых» моделей требует мощного железа. Проще и дешевле, пользоваться готовой ResNet-нейросетью, но об этом позже.
В каких сферах применятся ResNet
Архитектура Resnet заточена под классификацию объектов. Если говорить проще, технология нужна для обнаружения объектов на видео или картинки. Resnet применяется в:
- медицине: МРТ, КТ, рентген;
- правоохранении: камеры, фиксирующие нарушителей ПДД и разыскиваемых преступников;
- сельском хозяйстве: сканеры для состояния здоровья растений;
- робототехнике: датчики для навигации;
- технике: смартфоны, домофоны и другие гаджеты с системой распознавания лиц.
Например, юзер Хабра под ником New Tech Audit пользовался Resnet, чтобы найти картинки с сайта DomClick, где изображены кухонные ножи.

Чтобы перечислить все сферы применения Resnet, понадобится отдельная статья: эта архитектура пригодится везде, где нужно распознавать объекты в промышленных масштабах.
Технология пригодится в партнерском маркетинге и бизнесе. Например, для поиска креативов, где запечатлены конкретные детали. Это проще и быстрее, чем вручную.
Заключение
ResNet — разработка, которая упростила обучение глубоких нейросетей и вписалась в повседневность. Если ищете ИИ-модель, которая поможет с классификацией графического контента, не проходите ResNet: эти нейронки не тупят и не галлюцинируют.