TAPe‑дневник, день 7: первый уход от трансформеров и “почти бесплатная” сегментация. attention.. attention. COCO.. attention. COCO. self-supervised.. attention. COCO. self-supervised. детекция объектов.. attention. COCO. self-supervised. детекция объектов. Машинное обучение.. attention. COCO. self-supervised. детекция объектов. Машинное обучение. сегментация.. attention. COCO. self-supervised. детекция объектов. Машинное обучение. сегментация. синтетические данные.. attention. COCO. self-supervised. детекция объектов. Машинное обучение. сегментация. синтетические данные. трансформеры.. attention. COCO. self-supervised. детекция объектов. Машинное обучение. сегментация. синтетические данные. трансформеры. эмбеддинги.

В этом посте продолжаем дневник TAPe‑детекции и рассказываем, что получилось после отказа от трансформеров: насколько сократилось число параметров, как работают локальные ассоциации TAPe‑патчей и почему на лице человека у нас начинает “сам по себе” появляться зачаток сегментации.

Если вы тут впервые, сначала можно посмотреть:

Небольшое напоминание: что такое TAPe и зачем он нам

TAPe (Theory of Active Perception) — это математическая теория и технология, которая описывает (и моделирует) механизм активного восприятия: она разбивает изображение на устойчивые признаки и задаёт структуру связей между ними. В TAPe+ML мы используем эти элементы и далее работаем уже с ними, а не с сырыми пикселями.

В рамках TAPe+ML TAPe‑алгоритмы превращают изображение в элементы TAPe — структурированные “строительные блоки” с известными связями между ними, давая компактное векторное представление вместо сырых пикселей. На этих представлениях мы уже строим эксперименты: от self‑supervised задач в духе DINO/iBOT до классических ML‑методов (кластеризация, поиск, классификация) и детекции объектов на COCO, за которыми как раз следим в этом дневнике.

Почему мы смогли уйти от трансформеров

В экспериментах, как и планировали, ушли от трансформеров. Напомним: причина, по которой это возможно, в том, что TAPe-данные уже имеют такую структуру, что как таковое Global Attention не нужно – глобальность закрывается за счет того, что TAPe-данные стабильны и структурированы.

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

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

Локальные ассоциации TAPe‑патчей

Во-первых, играет роль некоторая локализация. То есть – если выбирать “ход” от некоего патча, то только некая окружность вокруг него будет ассоциирована с ним, потому что контекстуально, при дальнейшем росте, область выглядит по-другому.

Каждый патч может иметь ассоциации в своем локальном окружении с неким количеством других патчей, которые из тренировки:

  • на него похожи в том или ином смысле (например, на всех есть кожа); это следует из первичной тренировки эмбеддингов;

  • относятся к одному и тому же объекту; это следует уже конкретно из того, что мы тренируем ассоциации к объекту (то есть говорим, что все патчи в этой области принадлежат объекту типа “человек”).

При этом при попытке изменять такой патч дальше для решения задач проблем не возникает, просто это нужно немного гранулировать.

Пример с лицом: как выглядят ассоциации

Как хороший пример – изображение:

TAPe‑дневник, день 7: первый уход от трансформеров и “почти бесплатная” сегментация - 1

Это одно из изображений в базе COCO. Центровой патч обозначен жёлтым. Оранжевым – все патчи, которые ассоциируются как относящиеся к этому патчу. Как видно, все оранжевые патчи по смыслу ассоциируются с тем же самым, что и жёлтый патч, а именно с лицом человека.

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

В итоге мы можем в некотором роде классифицировать понятие “кожа”. Да, напрямую мы этого не делаем, но из обучения так выходит, потому что одежда – это натуральная граница внутри самого объекта “человек”, и эти сегменты мы находим, потому что полагаемся на самые контрастные патчи, чтобы собрать из них общее описание всего объекта.

TAPe‑дневник, день 7: первый уход от трансформеров и “почти бесплатная” сегментация - 2

Сдвиг центра и “зачаток” сегментации

Если сдвинуть жёлтый патч в сторону, то ассоциация остаётся прежней, с небольшими изменениями, потому что соотношение между патчами несимметричное (из принципов TAPe так и должно следовать).

TAPe‑дневник, день 7: первый уход от трансформеров и “почти бесплатная” сегментация - 3

Если начать передвигать центральный патч за пределы первой зоны, то новая и старая зоны начинают пересекаться – при этом сохраняя всё тот же контур самого “объекта” (человека в этом случае всё-таки). Фактически, мы “бесплатно” получаем модель сегментации.

Ограничения, будущее и скорость

Добавим пару вещей здесь:

  • Рост этих патчей до покрытия всего объекта также будет – просто сейчас для такого мини-демо это бессмысленно;

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

  • Сегментация – это будущее исследование, пока вся работа идёт в сторону детекции, к чему эти результаты подводят. Конечный результат очень близок.

  • Модель работает со скоростью 120 кадров в секунду на данный момент времени.

Автор: oopatow

Источник

Rambler's Top100