Media is too big
VIEW IN TELEGRAM
Что будет, если обучить нейронку (StyleGAN-2) генеририть картинки под музыку? Будет очень красиво)
GitHub, модель
GitHub, модель
Text2image не стоит на месте!
Нашёл для вас целый набор ноутбуков (colab) для генерации картинок по тексту. Там всё сразу работает, нужно только вписать текст.
раз (VQGAN+CLIP),
два (FFT+CLIP),
три (bigGAN+CLIP)
Как это работает?
1. Берём случайный латентный вектор, генерим по нему картинку.
2. Итеративно оптимизируем вектор так, чтобы CLIP говорил, что картинка похожа на текстовое описание.
3. Не забываем про регуляризацию.
4. Готово :)
P.S. Текст в этом примере: "Overclocked nervous system" (разогнанная нервная система), ноутбук VQGAN+CLIP.
Нашёл для вас целый набор ноутбуков (colab) для генерации картинок по тексту. Там всё сразу работает, нужно только вписать текст.
раз (VQGAN+CLIP),
два (FFT+CLIP),
три (bigGAN+CLIP)
Как это работает?
1. Берём случайный латентный вектор, генерим по нему картинку.
2. Итеративно оптимизируем вектор так, чтобы CLIP говорил, что картинка похожа на текстовое описание.
3. Не забываем про регуляризацию.
4. Готово :)
P.S. Текст в этом примере: "Overclocked nervous system" (разогнанная нервная система), ноутбук VQGAN+CLIP.
Немножко ошибся в коде и получил такую красоту.
P.S. Кому интересно — это eigenface’ы, базис в пространстве человеческих лиц.
P.S. Кому интересно — это eigenface’ы, базис в пространстве человеческих лиц.
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Facebook research выпустил PyTorchVideo
Это как
GitHub, туториал
P.S. Чтобы получить всю эту радость, надо всего лишь три раза прошептать:
Это как
torchvision, только для видео. Тут есть эффективные инструменты для загрузки/обработки данных а также предобученные модели, включая оптимизированные для смартфонов.
GitHub, туториал
P.S. Чтобы получить всю эту радость, надо всего лишь три раза прошептать:
pip install pytorchvideo
🔥Unsupervised Speech Recognition — как распознавать речь совсем без разметки
Это совместная статья от Google и Facebook, где для обучения используются два никак не связанных между собой датасета аудио и текста.
Step-by-step:
1. Заранее учим self-supervised wav2vec выдавать эмбеддинги для аудио (что-то типа берта для звука).
2. Разбиваем аудио на фрагменты и на каждой итерации кластеризуем их эмбеддинги (потом окажется, что один кластер - это одна фонема).
3. Учим GAN по этим кластерам генерировать хоть какой-то текст, пока дискриминатор учится отличать этот текст от реального.
5. Накладываем diversity-loss (максимизируем энтропию генератора).
6. Обнаруживаем, что GAN переводит речь в текст!
В итоге у них лучший результат на unsupervised бенчмарках и почти лучший на supervised.
Статья, GitHub
P.S. Так можно даже инопланетную речь научиться распознавать 👽
Это совместная статья от Google и Facebook, где для обучения используются два никак не связанных между собой датасета аудио и текста.
Step-by-step:
1. Заранее учим self-supervised wav2vec выдавать эмбеддинги для аудио (что-то типа берта для звука).
2. Разбиваем аудио на фрагменты и на каждой итерации кластеризуем их эмбеддинги (потом окажется, что один кластер - это одна фонема).
3. Учим GAN по этим кластерам генерировать хоть какой-то текст, пока дискриминатор учится отличать этот текст от реального.
5. Накладываем diversity-loss (максимизируем энтропию генератора).
6. Обнаруживаем, что GAN переводит речь в текст!
В итоге у них лучший результат на unsupervised бенчмарках и почти лучший на supervised.
Статья, GitHub
P.S. Так можно даже инопланетную речь научиться распознавать 👽
CogView: Mastering Text-to-Image Generation via Transformers
Генерация картинок по тексту от Alibaba. Почти то же самое, что и DALL·E (OpenAI), но лучше (new sota), компактнее (4B vs 12B параметров) и стабильнее. Ещё они запустили сайт с демо, но только на китайском 😒
Step-by-step:
1. Заранее учим VQ-VAE автоэнкодить картинки. Их латентное представление будет использоваться как визуальные токены.
2. Токенизируем текстовое описание и конкатенируем к нему визуальные токены (см. схему).
3. Учим трансформер (GPT) последовательно предсказывать эти токены.
4. Декодим визуальные токены в картинку с помощью декодер-части VQ-VAE.
Статья, демо, GitHub (пока пустой)
Генерация картинок по тексту от Alibaba. Почти то же самое, что и DALL·E (OpenAI), но лучше (new sota), компактнее (4B vs 12B параметров) и стабильнее. Ещё они запустили сайт с демо, но только на китайском 😒
Step-by-step:
1. Заранее учим VQ-VAE автоэнкодить картинки. Их латентное представление будет использоваться как визуальные токены.
2. Токенизируем текстовое описание и конкатенируем к нему визуальные токены (см. схему).
3. Учим трансформер (GPT) последовательно предсказывать эти токены.
4. Декодим визуальные токены в картинку с помощью декодер-части VQ-VAE.
Статья, демо, GitHub (пока пустой)
Вот так выглядит Бог искусственного интеллекта по мнению text2image модели CogView.
P.S. Если, конечно, гугл перевёл мой запрос правильно: «人工智能之神»
P.S. Если, конечно, гугл перевёл мой запрос правильно: «人工智能之神»
This media is not supported in your browser
VIEW IN TELEGRAM
Environments for self-driving tasks
Свежая библиотека для обучения нейронок вождению (и парковке). Тут всё предельно упрощено – надо научить машину ехать как можно быстрее, двигаться по своей полосе и, главное, не врезаться.
Авторы предоставили несколько бэйзлайн решений (в основном RL) и ноутбуки с примерами.
Статья, GitHub, colab.
Свежая библиотека для обучения нейронок вождению (и парковке). Тут всё предельно упрощено – надо научить машину ехать как можно быстрее, двигаться по своей полосе и, главное, не врезаться.
Авторы предоставили несколько бэйзлайн решений (в основном RL) и ноутбуки с примерами.
Статья, GitHub, colab.
A Survey of Data Augmentation Approaches for NLP
Аугментировать картинки — изи, но что же делать с текстом? Оказывается, можно много всего делать, и всё это описано в одной статье.
Основные способы аугментации:
1. Token-level: случайные перестановки, замена на синонимы, удаление рандомных и не рандомных слов.
2. Text-level: paraphrasing (GPT-2), backtranslation c помощью предобученных моделей, замена пропущенных слов с помощью masked-LM (см. картинку).
3. (самое интересное) Activation-level: aугментация внутри модели — зашумлять или смешивать эмбеддинги слов и по-всякому двигать внутренние репрезентации текста и этеншны.
Статья
Аугментировать картинки — изи, но что же делать с текстом? Оказывается, можно много всего делать, и всё это описано в одной статье.
Основные способы аугментации:
1. Token-level: случайные перестановки, замена на синонимы, удаление рандомных и не рандомных слов.
2. Text-level: paraphrasing (GPT-2), backtranslation c помощью предобученных моделей, замена пропущенных слов с помощью masked-LM (см. картинку).
3. (самое интересное) Activation-level: aугментация внутри модели — зашумлять или смешивать эмбеддинги слов и по-всякому двигать внутренние репрезентации текста и этеншны.
Статья
This media is not supported in your browser
VIEW IN TELEGRAM
TextStyleBrush
Facebook AI представили модель для генерации стилизованного текста по единственной референсной картинке.
Выглядит довольно круто. Теперь будет проще подделывать документы, но ни код ни модель пока не опубликовали 🤷♂️
Зато опубликовали размеченный датасет из 135К фотографий с разнообразными прикольными шрифтами.
Статья, блог, датасет
Facebook AI представили модель для генерации стилизованного текста по единственной референсной картинке.
Выглядит довольно круто. Теперь будет проще подделывать документы, но ни код ни модель пока не опубликовали 🤷♂️
Зато опубликовали размеченный датасет из 135К фотографий с разнообразными прикольными шрифтами.
Статья, блог, датасет
Как устроен TextStyleBrush?
Полный фреймворк состоит из 7(!) моделей:
1. Style (image) encoder
2. Content (text) encoder
3. Style mapping model
4. Stylized text generator (StyleGAN2)
5. Pretrained typeface classifier (классификатор шрифтов)
6. Pre-trained OCR (распознавание текста)
7. Discriminator
Модели 1-4 используются для инференса, 5-7 для лоссов.
Обучение здесь вполне типичное для стайл трансфера: учится ган на нескольких лоссах, главные из которых — reconstruction и cycle loss, которые учат модель перегонять текст из одного стиля в другой и обратно.
Также, здесь используются пара дополнительных лоссов на основе моделей 5-6, контролирующих качество сгенерированных текстов на картинке.
Полный фреймворк состоит из 7(!) моделей:
1. Style (image) encoder
2. Content (text) encoder
3. Style mapping model
4. Stylized text generator (StyleGAN2)
5. Pretrained typeface classifier (классификатор шрифтов)
6. Pre-trained OCR (распознавание текста)
7. Discriminator
Модели 1-4 используются для инференса, 5-7 для лоссов.
Обучение здесь вполне типичное для стайл трансфера: учится ган на нескольких лоссах, главные из которых — reconstruction и cycle loss, которые учат модель перегонять текст из одного стиля в другой и обратно.
Также, здесь используются пара дополнительных лоссов на основе моделей 5-6, контролирующих качество сгенерированных текстов на картинке.
This media is not supported in your browser
VIEW IN TELEGRAM
Alias-Free Generative Adversarial Networks (by NVIDIA)
Несмотря на translation-инвариантность конволюций, генеративные модели этим свойством не обладают, и текстуры «приклеиваются» к определённым пикселям. Например, при движении лица волосы будто бы остаются на месте.
Оказывается, это следствие алиасинга (aliasing) — кривого смешивания дискретных сигналов (в этом виновата теорема Найквиста). NVIDIA предлагает простой трюк, который исправляет этот дефект, делая сеть пространственно и вращательно эквивариантной, что позволяет двигаться по латентному пространству ГАНов более реалистично. Говорят, что это открывает им путь в мультипликацию и редактирование видео.
Вся суть aliasing-free модификации — куча правильных фильтров низких частот в нужных местах, которые гарантируют, что условие Найквиста не нарушится (высокие частоты будут не слишком высокими).
Статья, GitHub, блог
Несмотря на translation-инвариантность конволюций, генеративные модели этим свойством не обладают, и текстуры «приклеиваются» к определённым пикселям. Например, при движении лица волосы будто бы остаются на месте.
Оказывается, это следствие алиасинга (aliasing) — кривого смешивания дискретных сигналов (в этом виновата теорема Найквиста). NVIDIA предлагает простой трюк, который исправляет этот дефект, делая сеть пространственно и вращательно эквивариантной, что позволяет двигаться по латентному пространству ГАНов более реалистично. Говорят, что это открывает им путь в мультипликацию и редактирование видео.
Вся суть aliasing-free модификации — куча правильных фильтров низких частот в нужных местах, которые гарантируют, что условие Найквиста не нарушится (высокие частоты будут не слишком высокими).
Статья, GitHub, блог
🔥 Сбербанк сделал ru-CLIP
SberDevices выложили в открытый доступ Русско-язычною версию CLIP — модели от OpenAI (тык), которая в начале этого года придала ОГРОМНЫЙ импульс исследованиям на стыке NLP и CV (прям как я люблю).
По-сути, CLIP состоит из двух моделей: image-encoder и text-encoder. Они эмбеддят картинки и тексты в одно пространство, позволяя делать кучу всего интересного, например zero-shot классификацию картинок, поиск изображений по описанию, image captioning и много другой магии (тык, тык).
Для того чтобы прикрутить поддержку русского языка они заменили text-encoder на RuGPT3Small и вставили пару линейных слоёв после обоих энкодеров. Дальше эти хитрюги обучили только эти линейные слои (забавно, но этого хватило).
Блог, GitHub, HuggingFace
P.S. Астрологи объявили неделю CLIP, поэтому ниже будут ещё посты про эту чудо-модель 😉
SberDevices выложили в открытый доступ Русско-язычною версию CLIP — модели от OpenAI (тык), которая в начале этого года придала ОГРОМНЫЙ импульс исследованиям на стыке NLP и CV (прям как я люблю).
По-сути, CLIP состоит из двух моделей: image-encoder и text-encoder. Они эмбеддят картинки и тексты в одно пространство, позволяя делать кучу всего интересного, например zero-shot классификацию картинок, поиск изображений по описанию, image captioning и много другой магии (тык, тык).
Для того чтобы прикрутить поддержку русского языка они заменили text-encoder на RuGPT3Small и вставили пару линейных слоёв после обоих энкодеров. Дальше эти хитрюги обучили только эти линейные слои (забавно, но этого хватило).
Блог, GitHub, HuggingFace
P.S. Астрологи объявили неделю CLIP, поэтому ниже будут ещё посты про эту чудо-модель 😉
Что такое CLIP и как он работает?
Почти полгода прошло с тех пор, как OpenAI представила CLIP: Contrastive Language–Image Pre-training. Это было то, чего мы так долго ждали — универсальная модель, которая одинаково классно понимает и картинки и текст, открывая возможности для исследований на стыке CV и NLP.
Если коротко, то эта штука энкодит картинки и их описания в близкие (в идеале — одинаковые) эмбеддинги. Но если копнуть глубже, то эта модель научилась выявлять «open-set visual concepts from natural language» и показывает удивительные способности к генерализации. Она понимает высокие уровни абстракции и неявные связи между ними.
CLIP состоит из двух моделей: image-encoder (ViT или resnet50) и text-encoder (transformer). Для обучения собрали огроменный датасет из 400M картинок с описаниями из интернета. Энкодеры одновременно учатся генерировать эмбеддинги для картинок и описаний, максимизируя косинус между правильными парами из батча и минимизирую между всеми остальными.
Статья, GitHub, блог
Почти полгода прошло с тех пор, как OpenAI представила CLIP: Contrastive Language–Image Pre-training. Это было то, чего мы так долго ждали — универсальная модель, которая одинаково классно понимает и картинки и текст, открывая возможности для исследований на стыке CV и NLP.
Если коротко, то эта штука энкодит картинки и их описания в близкие (в идеале — одинаковые) эмбеддинги. Но если копнуть глубже, то эта модель научилась выявлять «open-set visual concepts from natural language» и показывает удивительные способности к генерализации. Она понимает высокие уровни абстракции и неявные связи между ними.
CLIP состоит из двух моделей: image-encoder (ViT или resnet50) и text-encoder (transformer). Для обучения собрали огроменный датасет из 400M картинок с описаниями из интернета. Энкодеры одновременно учатся генерировать эмбеддинги для картинок и описаний, максимизируя косинус между правильными парами из батча и минимизирую между всеми остальными.
Статья, GitHub, блог
CLIP слишком сильно абстрагирует
Было обнаружено, что в мозгу человека есть мульти-модальные нейроны, которые реагируют на одну и ту же абстракцию в разных проявлениях. Такое же свойство было обнаружено и в нейронах CLIP 🤯
Оказалось, что эта модель, подобно человеку, оперирует абстрактными концептами. Кроме того, в пространстве таких концептов действует более-менее линейная алгебра! Например, концепт «копилка» = «игрушка» + «животное» + «деньги».
Но у такой линейной алгебры есть и свой недостаток — adversarial атаки. Особым образом комбинируя концепты можно заставлять модель неправильно интерпретировать увиденное, например, если на собаку приклеить значки доллара, то она распознается как «копилка», а если на яблоке написать «ipod», то оно превратится в Apple Ipod 💁♂️
Статья, GitHub, блог
P.S. Такую овергенерализацию кто-то принимает за недостаток, но я считаю, что это очередной шаг в сторону general AI.
Было обнаружено, что в мозгу человека есть мульти-модальные нейроны, которые реагируют на одну и ту же абстракцию в разных проявлениях. Такое же свойство было обнаружено и в нейронах CLIP 🤯
Оказалось, что эта модель, подобно человеку, оперирует абстрактными концептами. Кроме того, в пространстве таких концептов действует более-менее линейная алгебра! Например, концепт «копилка» = «игрушка» + «животное» + «деньги».
Но у такой линейной алгебры есть и свой недостаток — adversarial атаки. Особым образом комбинируя концепты можно заставлять модель неправильно интерпретировать увиденное, например, если на собаку приклеить значки доллара, то она распознается как «копилка», а если на яблоке написать «ipod», то оно превратится в Apple Ipod 💁♂️
Статья, GitHub, блог
P.S. Такую овергенерализацию кто-то принимает за недостаток, но я считаю, что это очередной шаг в сторону general AI.
Darker than Black-Box: Face Reconstruction from Similarity Queries
Препринт моей статьи про privacy уязвимость систем распознавания лиц.
Получилось осуществить атаку в самом тяжёлом сценарии, когда атакуемая модель (ArcFace) — это чёрный ящик, принимающий на вход фотографию и выдающий только одно число — насколько эта фотография похожа на человека с заданным id.
Обнаруженная уязвимость позволяет за несколько тысяч обращений к модели выяснить как выглядит человек всего лишь по его айдишнику.
Атака производится с помощью специально созданных синтетических изображений, которые последовательно посылаются в систему распознавания лиц, а затем, на основе её ответов, они комбинируются в узнаваемое лицо.
P.S. Теперь получается, что к персональным данным нужно относить не только фото человека, но и его id 🤷♂️
Статья, GitHub
Препринт моей статьи про privacy уязвимость систем распознавания лиц.
Получилось осуществить атаку в самом тяжёлом сценарии, когда атакуемая модель (ArcFace) — это чёрный ящик, принимающий на вход фотографию и выдающий только одно число — насколько эта фотография похожа на человека с заданным id.
Обнаруженная уязвимость позволяет за несколько тысяч обращений к модели выяснить как выглядит человек всего лишь по его айдишнику.
Атака производится с помощью специально созданных синтетических изображений, которые последовательно посылаются в систему распознавания лиц, а затем, на основе её ответов, они комбинируются в узнаваемое лицо.
P.S. Теперь получается, что к персональным данным нужно относить не только фото человека, но и его id 🤷♂️
Статья, GitHub