AI Для Всех
12.8K subscribers
1.17K photos
153 videos
10 files
1.38K links
Канал, в котором мы говорим про искусственный интеллект простыми словами

Главный редактор и по рекламе: @crimeacs

Иногда пишут в канал: @GingerSpacetail, @innovationitsme
Download Telegram
Красивые задачи (особенно первые две). Можно использовать на вступительных.

#Отборочные
Просто шикарный психодел. Чувак написал песню используя названия классов из ImageNet и сгенерировал к ней видиоклип используя CLIP и BigGan:

YouTube

#GAN #joke #text2image #CLIP
Оказывается любой GAN уже умеет отделять изображения от фона:

Project

#GAN #Separation
Forwarded from эйай ньюз
​​Итак, господа. Новый прорыв в self-supervised learning. Идея, как всегда, простая как апельсин.

До этого момента (почти) все тренили свои self-supervised модели на ImageNet и тестили там же. Фишка в том, что ImageNet — чистый датасет со сбалансированными классами и отцентрированными объектами. А если тренироваться на больших некурируемых датасетах как JFT-300M с 300-миллионами изображений (это внутряковый датасет Гугла) либо на YFCC100M с 95-миллионами, где распределение размера классов имеет тяжелый хвост, то точность SOTA моделей при тесте ImageNet существенно падает (с 74.3% до 65.3%). Все дело в том, что в таких больших датасетах очень много разных объектов, а иногда несколько на одной картинке, поэтому вероятность случайно выбрать сложные негативные примеры значительно ниже. То есть в среднем две случайные картинки слишком сильно отличаются => мало информации для обучения.

Авторы предлагают простой трюк. Разбиваем большой датасет на 5-10 кластеров и обучаем отдельные модели на каждом кластере, таким образом обучение отдельных моделей (экспертов) будет происходить на более близких картинках => негативные пары будут сложнее и более информативные. Далее фиксируем модели-эксперты и дистиллируем их в одну. Новая модель учится предсказывать фичи каждого эксперта с помощью L2 лосса. В итоге, офигенная точность на ImageNet при обучении без лейблов на JFT-300M: 77.3% Top1.

Подробнее в статье от DeepMind.
нашел хороший канал. В закрепе ам тоже очень крутая статья
Forwarded from Хроники ботки (Aleksei Shestov 𓆏)
Почему трансформеры сложнее обучать, почему обучение нестабильно в начале, и что с этим делать

Эмпирически известно, что архитектуру трансфорсеров обучить сложнее чем, например, сверточные сети. Они не обучаются SGD, а также, чтобы обучение вообще сошлось, почти всегда необходимо использовать прогрев лернинг рейта - линейное повышение лернинг рейта от 0 до используемого значения. Почему же так происходит, что необходим прогрев и можно ли обойтись без него или чем то заменить? На этот вопрос отвечает (пытается ответить) серия аж из трех статей. Каждая следующая говорит, что предыдущая статья не все учла/не решает всей проблемы/решение неудачное, и предлагает что то свое. Но в принципе в каждой написано что то полезное 😀

Конечный вывод такой (в статье Understanding the Difficulty of Training Transformers https://arxiv.org/abs/2004.08249 - у классической архитектуры трансформеров на начальном этапе обучения очень большая чувствительность выхода сети к небольшим изменениям параметров. Происходит это из-за Layer Normalization(LN) после каждого residual connection, из-за этого выход LN сильно зависит от residual branch (а не от skip connection). Предлагаемое решение - добавлять в residual connection веса, которые определенным образом инициализируются (таким образом, чтобы усилить зависимость от skip connection). Благодаря этим весам выход трансформера становится стабильнее, и можно обойтись даже без прогрева лернинг рейта.

Более подробный разбор каждой статьи в следующем посте.
Forwarded from Artemii
я не могу остановиться. a fox made of paper
Forwarded from Artemii
cartoon of a pink lama
Ещё вчера я развлекался с Big Sleep, как подъехала новая статья от гугла.

Ждём кооооод и веса!

#Text2Image #generative #multimodal
Оказывается что при аугментации надо было не одно изменение на картинку накидывать, а два.

Remarkably, we find that drawing multiple samples per image consistently enhances the test accuracy achieved for both small and large batch training, despite reducing the number of unique training examples in each mini-batch.

ArXiv

#Training #Augmentation
Крутой канал в целом, и хорошая заметка в частности

#SSL #images
[BYOL] Bootstrap your own latent: A new approach to self-supervised Learning
Jean-Bastien Grill, Florian Strub, Florent Altché, Corentin Tallec, Pierre H. Richemond, Elena Buchatskaya, Carl Doersch, Bernardo Avila Pires, Zhaohan Daniel Guo, Mohammad Gheshlaghi Azar, Bilal Piot, Koray Kavukcuoglu, Rémi Munos, Michal Valko
Статья: https://arxiv.org/abs/2006.07733
Код (на JAX и Haiku): https://github.com/deepmind/deepmind-research/tree/master/byol

Мы уже писали про разные интересные результаты в contrastive learning (CL), например, SimCLR (https://t.me/gonzo_ML/324), LoCo (https://t.me/gonzo_ML/342) или даже про применение этого подхода для работы с кодом (https://t.me/gonzo_ML/330). За последнее время появилось много новых интересных результатов, которые хочется разобрать. Но перед этим важно рассказать про некоторые вещи, ставшие уже классическими. BYOL от DeepMind и Imperial College как раз из таких.

Многие методы CL используют для обучения и позитивные и негативные примеры, и цель обучения — для позитивных примеров получить близкие репрезентации, а для пар позитивного и негативного — далёкие. BYOL интересен тем, что получает SoTA (на тот момент) без использования негативных пар. В этом смысле его, пожалуй, некорректно называть contrastive learning, а правильнее звать более широким термином self-supervised learning (SSL) .

Классические SSL методы часто строят фреймворк вокруг репрезентаций различных отображений одного и того же объекта (различные аугментированные представления [view] одной и той же картинки, например), и репрезентация одного представления должна быть способна предсказать репрезентацию другого представления того же самого изображения. Предсказание напрямую в пространстве репрезентаций может вести к коллапсу этих самых репрезентаций (например, к константе по всем представлениям), поэтому CL методы обходят это переформулированием проблемы предсказания проблемой разделения (discrimination) — по репрезентации аугментированного представления они учатся различать репрезентации других аугментированных представлений того же самого объекта от репрезентаций аугментированных представлений совсем других объектов (других картинок, например). Это спасает от коллапса репрезентаций.

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

BYOL использует две сети: онлайн (online) и целевую (target). Онлайн сеть состоит из трёх этапов: энкодер, проектор и предиктор. Целевая сеть имеет почти такую же архитектуру (нет предиктора), и свой набор весов. Между двумя сетями нет шаринга, но связь есть — веса целевой сети являются экспоненциальным скользящим средним весов онлайн сети.

Из интересного, авторы заметили, что целевая сеть может быть зафиксирована в рандомно инициализированном состоянии и онлайн сеть при обучении предсказывать её репрезентации даёт репрезентации сравнительно неплохого качества (18.8% top-1 acc на ImageNet, в то время как сама рандомная сеть лишь 1.4%, что кстати тоже многовато...). В этом в целом кроется суть метода: для некой целевой репрезентации мы можем, пытаясь её предсказать, выучить новую, потенциально улучшенную. А отсюда мы можем повторить процесс для новой репрезентации, итерируя процедуру и каждый раз делая целевой предыдущую онлайн репрезентацию. Такой вот собственно бутстрапинг.

BYOL генерирует два разных представления (v и v’) по исходной картинке (каждое со своими аугментациями, такими же как в SimCLR — случайный патч изображения + случайный горизонтальный флип + дисторсия цвета + гауссовское размытие + соляризация). Обе сети далее прогоняют это через свои энкодеры (ResNet-50 и больше/шире) и проекторы (MLP), онлайн сеть также прогоняет через предиктор (MLP), и здесь её цель — предсказать репрезентацию целевой сети.