В этой статье поговорим о недавнем горячем динозавре, созданном Facebook.
Глубокие мысли, спровоцированные неконтролируемым обучением DINO опубликовал Facebook
Эта статья является оригинальной статьей, и ее перепечатка без разрешения запрещена. Если вам необходимо перепечатать, пожалуйста, отправьте мне личное сообщение для получения разрешения.
Давно не обновлял статью, настолько занят работой, что некогда думать. Сегодня я запишу размышления о последней статье Facebook, Dino. На самом деле это бумага в системе трансформатора, но эта выглядит мощнее. Я как всегда не занимаюсь текстовым переводом диссертации, а только пишу свои мысли и конспекты, а то и неверные критические замечания.Приглашаю к вежливому обсуждению.
Соответствующая ссылка на код:
Причина, по которой я хочу написать эту статью, заключается в том, что ее название: «Новые свойства самоуправляемых преобразователей зрения». ) + Transformer, Меня точно заинтересует. На мой взгляд,Неконтролируемое обучение будет тенденцией в будущем, особенно специфический способ самоконтроля, и этот способ возможен только в качестве преобразователя (по крайней мере, на данный момент это осуществимо).Благодаря исследованиям в этом направлении можно будет строить в будущем. Придумать более впечатляющую систему ИИ, даже ГАИ, Это не так просто, как почистить список. Итак, давайте сегодня хорошо поболтаем.
Обзор некоторых недавних неконтролируемых работ
Как всегда, вывод моего блога очень мал, чтобы отразить качество, я буду вставлять каждыйВперемешку с большим количеством другого контента, продевание иглы, соединение точек в линию и сбор линий на поверхность., так что каждый читатель может иметь общее представление. Говоря об отсутствии надзора, следует упомянуть несколько недавних работ:
- Momentum Contrast для обучения визуальному представлению без учителя, 2019 г. (сборник 2020 г.)
- Improved Baselines with Momentum Contrastive Learning, 2020
- An Empirical Study of Training Self-Supervised Vision Transformers, 2021
Знакомые друзья могут с первого взгляда понять, что то, что я хочу сказать, на самом деле является серией Moco. Эти три документа на самом деле принадлежат Хэ Каймину. Давайте взглянем на хронологию этих трех статей.Предыстория первой статьи заключалась в том, что преобразователь в области НЛП был очень популярен в то время, и применение BERT к задаче неконтролируемого репрезентативного обучения произвело BERT, GPT, которые охватили различные задачи НЛП.Модель. Второй — это сравнение SimCLR с новой SOTA в отрасли, а последний, конечно же, является горячей темой в этом году: использование Transformer для неконтролируемых задач. Некоторые статьи о характере обзоров Transformer можно найти в моих предыдущих статьях:
zhuanlan.zhihu.com/p/342512339
(Для Мао я вернулся, чтобы прочитать статью, которую я написал, и всегда чувствовал, что она была слишком простой... Я смеюсь и великодушен, я сделаю несколько видео, чтобы подробно объяснить трансформатор позже, когда у меня будет возможность!)
Прежде всего, давайте ответим на эти вопросы:
- Какую проблему решает серия moco?
- Как это решить?
- Как эффект?
Я полагаю, что это также вопрос, который больше беспокоит читателей. Прежде чем я скажу это снова, давайте вернемся к теме этой статьи: мы говорим о динозавре, так как эта штука связана с динозавром? Не волнуйтесь, давайте сначала ответим на три вопроса выше.
Moco фактически использует самоконтроль для изучения таких задач, как классификация, а затем изученную основу можно также использовать для таких задач, как обнаружение и сегментация.Экспериментальные результаты показывают, что его эффект точной настройки лучше, чем контроль, идеально. разрыв между обучением с учителем и обучением без учителя.
mocov1
Мы не будем подробно обсуждать некоторые детали реализации, давайте сначала опубликуем псевдокод в статье и расскажем, как это сделать, подробности пока не будем подробно обсуждать:
Этот метод псевдокода поддерживает очередь.В этой очереди хранится ключ, выводимый моделью, то есть ключ.Тогда у нас будет другой набор переменных запроса, ключа и запроса.Сравнивая потери, очередь обновляется Ключ в ней также будет выплевывать ключ самой ранней партии.Благодаря этим операциям ключ в очереди становится более уникальным, и когда придут новые данные выборки, я буду обновлять его до тех пор, пока моя очередь не будет содержать все данные. , и каждая функция отличается для выполнения моей неконтролируемой задачи.
Одним из преимуществ этого является то, что длина очереди фактически контролируется, а это означает, что я могу увеличить размер словаря, чтобы повысить точность классификации и, таким образом, повысить производительность. Это похоже на работу с KNN с обратным распространением: вы можете контролировать эффект кластеризации, контролируя размер K.
Что касается того, как использовать потерю контраста, если вы знаете, что изменение импульса может заставить этот набор работать, и соответствующий вывод формулы, вы можете внимательно прочитать исходную статью,Ссылки на статьи в цитатах.
mocov2
На самом деле во второй статье говорить не о чем.Добавление каких-то хитростей делает эффект лучше.Потом посмотрим какие хитрости добавлены.Короче некоторые конструкции в SimCLR заимствованы,применены к системе Moco,а потом переплюнуты by SimCLR., немного кредитного плеча.
Заимствованные трки SimCLR включают в себя:
- большая партия;
- Финальный FC становится MLP (это тоже работает??)
- Более удивительная аугментация данных
Ну, этот кажется более водянистым
mocov3
Эта недавняя статья на самом деле применяет неконтролируемый к трансформаторам или берет трансформаторы и объединяет их в неконтролируемых задачах. Итак, какие еще изменения были внесены? Или это все-таки моко сет? Я не читаю газету, я думаю, что это не может быть тот же набор раньше, почему? Потому что трансформер - это натуральная очередь! А токен — ваш ключ!Так и вышла эта статья, на самом деле, очень логичная.
В документе уделено некоторое время описанию проблемы, с которой они столкнулись при использовании ViT в качестве основы для неконтролируемого обучения, которая становилась нестабильной по ходу обучения. Они не знали первопричины, поэтому попытались найти причину, контролируя переменные, и в ходе эксперимента пришли к некоторым интересным выводам.
Из эксперимента видно, что с увеличением партии или lr в точности kNN постепенно появляется провал, а степень провала постепенно увеличивается, демонстрируя периодическое появление. При использовании оптимизатора LAMB с увеличением lr, хотя точность kNN по-прежнему представляет собой гладкую кривую, средняя часть все равно будет снижаться.
В статье также упоминаются некоторые хитрости, как сделать тренировку более стабильной.
we explore freezing the patch projection layer during training. In other words, we use a fixed random patch projection layer to embed the patches, which is not learned. This can be easily done by applying a stop-gradient operation right after this layer.
Через патч свободного слоя проекции, другими словами, используйте фиксированный случайный патч для проецирования, и эта часть параметров не участвует в обучении.Это также относительно просто реализовать.Вы можете обратиться к коду moco чтобы увидеть, как это реализовано.
Как видно из рисунка, использование случайной проекции, похоже, решает проблему.
Наконец, эффект от mocov3 превосходит все предыдущие неконтролируемые архитектуры:
Пока это история моко, но это все еще не то же самое, что и DINO, к которому я стремлюсь. Потому что проблема, которую решит Дино:
Помимо классификации, может ли обучение без учителя + преобразователь решить проблему сегментации? Другими словами, знает ли он взаимосвязи между объектами без какой-либо информации о наблюдении?
DINO может достичь более иерархического визуального понимания
Если честно, с тех пор, как я разобрался в конкретной реализации в ViT, у меня вдруг появилось очень доброе чувство к трансформерам, как будто яКогда я увидел молодого человека, на первый взгляд, кости были четкими и странными, и ожидалось, что он родит в будущем великие дела., то что теперь делать, так это хорошо вложиться в это. На самом деле трансформатор дал мне такое ощущение, и после глубокого понимания DINO я, казалось, еще больше открыл для себя потенциал трансформатора,Итак, позвольте мне написать кое-что, чтобы поделиться с вами.
На протяжении многих лет, будь то активное развитие CNN или активное развитие трансформаторов, все фактически говорят модели моделировать данные, которые они видят в существующих задачах контроля. На самом деле это очень зависит от вашего определения данных, которое сильно отличается от НЛП. Например, у нас есть встраивание слов. Я не сообщаю модели задачи информацию, она может знать, что «Энди Лау» — это имя человека, и это может даже сказать Вам другие вещи как эти существительные, связанные существительные. Это эффект давнего прошлого, и теперь OpenAI может сказать вам, что модели, которые они создают, могут не только понимать слова, но также сообщать вам взаимосвязь между каждым словом и даже записывать ваши проблемы с поиском в базе данных на естественном языке в операторах SQL. Разве это не потрясающе? Более того, стыковка модели GPT3 с полем изображения реализует DALL-E. Скажите ему зеленые часы, и он может сгенерировать зеленые часы.По-видимому, он изучил функции более высокого порядка.
Так может ли Computer Vision сделать это?
Динозавр, о котором я собираюсь рассказать сегодня, действительно сделал это.Пожалуйста, поймите две вещи: сегментация реализации и сегментация неконтролируемой реализации - это две концепции.Конечно, есть и другие методы неконтролируемой семантической сегментации, что несложно, но DINO должен быть первым, кто сделает это с помощью трансформатора.
Это эффект ДИНО.
Следует отметить, что это AttentionMap,у дино нет ни семантической основы, ни какого-либо класса, чтобы сказать ему, что это обезьяна, но он может усвоить все свое внимание на нем.
Когда я говорю это, вы можете подумать: это все? Брат, не будь слишком наивен, это меняет правила игры!! Подумайте еще раз, похоже ли это на встраивание в НЛП? Подумайте еще раз, чего нам сейчас больше всего не хватает? Самое главное - это необработанные данные. Интернет генерирует так много фотографий и видео каждый день. Если этот преобразователь такой классный, если вы добавите все это, какой ИИ, по вашему мнению, он произведет? Сверхбольшая версия реснет101???
НЕТ, нет, нет, это не так просто. Вот почему я оптимистично отношусь к этому направлению и почему я написал этот анализ статьи. Конечно, мы пока не можем полностью сделать unsupervisor, но и self-supervisor достаточно!
Просто будьте готовы к тому, что Google AI или FAIR выпустят более крупные ходы, которые могут изменить правила игры.
Что еще это может сделать? Используя метод самоконтроля, модель, изученная DINO, может быть напрямую классифицирована.Проще говоря, вы бросаете ему изображение, которое хотите классифицировать, и он может автоматически анализировать различные характеристики каждого изображения и автоматически классифицировать его для вас. хотите, чтобы у нескольких категорий было несколько категорий,Это ИИ будущего.
Чтобы оставить это в прошлом, я могу чувствовать, что такого рода аргументы немного напыщенны, но то, что показывает DINO, — это не только эффект классификации, но также очень четкая карта интенсивности и карта внимания, изученная сетью. чтобы доказать, что DINO What может быть сделано, это не только классификация, включая сегментацию, обнаружение, и многие задачи CV в будущем можно ожидать в будущем, используя неконтролируемые методы.
Ниже приведен простой принцип системы DINO.
Принцип DINO на самом деле очень прост.Поскольку это обучение без учителя, ему не нужны ярлыки при обучении.Для достижения этой цели без учителя необходимо
По сути, обучающая сеть и обучающая сеть. Вход на самом деле является одним и тем же изображением, но после различных преобразований структура сети для них одинакова, и единственная разница заключается в параметрах. Градиент учительской сети передается в студенческую сеть. Параметры сети учителя будут обновляться по мере обновления параметров сети учеников.
Давайте посмотрим на блок-схему сети DINO:
Можно сказать, что эта блок-схема проста и понятна, подходит для всех возрастов. Точно так же, как шаги, которые я упомянул выше, и блок-схема.
Давайте посмотрим на эффект DINO:
Просто взгляните на линейный столбец, который представляет собой сравнение всех методов, в выходных данных фиксированной категории. Видно, что метод DINO имеет самую высокую точность, на основе архитектуры DeiT точность намного превосходит RN50, который является традиционной CNN.
Глядя на неконтролируемую линейку k-NN, хотя она и не так хороша, как фиксированная категория, разница невелика, особенно при использовании архитектуры трансформатора погрешность меньше.
Суммировать
На самом деле DINO - это статья о том, как пересечь реку, ощупывая камни. В ней много подробных исследований абляции. Я не буду подробно останавливаться на них по отдельности. Заинтересованные студенты могут прочитать статью внимательно. Нет сомнения, что DINO ведет всех к новому полю, которое создаст новую комбинацию Unsupervise и Transformer. Как я рассудил ранее, массивных данных, необходимых для обучения трансформатора, только обучения под наблюдением недостаточно, и если обучение без учителя может заставить трансформатор работать быстро, то нет сомнения, что это будет новое развитие CV в глава будущего.