Skip to content

Latest commit

 

History

History
79 lines (46 loc) · 12.1 KB

File metadata and controls

79 lines (46 loc) · 12.1 KB

Мультимодальні мережі

Після успіху моделей трансформерів у вирішенні завдань обробки природної мови (NLP), ті ж або схожі архітектури були застосовані до завдань комп'ютерного зору. Зростає інтерес до створення моделей, які б поєднували можливості зору та природної мови. Одним із таких підходів є моделі CLIP та DALL.E, розроблені OpenAI.

Контрастне попереднє навчання зображень (CLIP)

Основна ідея CLIP полягає в тому, щоб порівнювати текстові запити із зображеннями та визначати, наскільки добре зображення відповідає запиту.

Архітектура CLIP

Зображення з цього блогу

Модель тренується на зображеннях, отриманих з Інтернету, та їх підписах. Для кожного батчу ми беремо N пар (зображення, текст) і перетворюємо їх у векторні представлення I, ..., I / T, ..., T. Ці представлення потім зіставляються між собою. Функція втрат визначається таким чином, щоб максимізувати косинусну схожість між векторами, що відповідають одній парі (наприклад, I і T), і мінімізувати косинусну схожість між усіма іншими парами. Саме тому цей підхід називається контрастним.

Модель/бібліотека CLIP доступна на GitHub OpenAI. Підхід описаний у цьому блозі і детальніше в цій статті.

Після попереднього навчання моделі ми можемо надати їй батч зображень і текстових запитів, і вона поверне тензор із ймовірностями. CLIP можна використовувати для кількох завдань:

Класифікація зображень

Припустимо, нам потрібно класифікувати зображення, наприклад, між котами, собаками та людьми. У цьому випадку ми можемо надати моделі зображення та серію текстових запитів: "зображення кота", "зображення собаки", "зображення людини". У результатуючому векторі з 3 ймовірностей нам потрібно вибрати індекс із найвищим значенням.

CLIP для класифікації зображень

Зображення з цього блогу

Пошук зображень на основі тексту

Ми також можемо зробити навпаки. Якщо у нас є колекція зображень, ми можемо передати цю колекцію моделі та текстовий запит — це дасть нам зображення, яке найбільше відповідає заданому запиту.

Відкрийте Clip.ipynb, щоб побачити CLIP у дії.

Генерація зображень за допомогою VQGAN+CLIP

CLIP також можна використовувати для генерації зображень на основі текстового запиту. Для цього нам потрібна модель-генератор, яка зможе створювати зображення на основі деякого вхідного вектора. Однією з таких моделей є VQGAN (Vector-Quantized GAN).

Основні ідеї VQGAN, які відрізняють її від звичайного GAN, такі:

  • Використання авторегресивної архітектури трансформера для створення послідовності контекстно-збагачених візуальних частин, які складають зображення. Ці візуальні частини, у свою чергу, вивчаються за допомогою CNN.
  • Використання дискримінатора підзображень, який визначає, чи є частини зображення "реальними" чи "фейковими" (на відміну від підходу "все або нічого" у традиційних GAN).

Дізнайтеся більше про VQGAN на веб-сайті Taming Transformers.

Однією з важливих відмінностей між VQGAN і традиційним GAN є те, що останній може створити пристойне зображення з будь-якого вхідного вектора, тоді як VQGAN, ймовірно, створить зображення, яке не буде узгодженим. Тому нам потрібно додатково керувати процесом створення зображення, і це можна зробити за допомогою CLIP.

Архітектура VQGAN+CLIP

Щоб створити зображення, яке відповідає текстовому запиту, ми починаємо з випадкового вектора кодування, який передається через VQGAN для створення зображення. Потім CLIP використовується для створення функції втрат, яка показує, наскільки добре зображення відповідає текстовому запиту. Мета полягає в тому, щоб мінімізувати цю втрату, використовуючи зворотне поширення для коригування параметрів вхідного вектора.

Чудова бібліотека, яка реалізує VQGAN+CLIP, — це Pixray.

Зображення, створене Pixray Зображення, створене Pixray Зображення, створене Pixray
Зображення, створене за запитом акварельний портрет молодого чоловіка-вчителя літератури з книгою Зображення, створене за запитом масляний портрет молодої жінки-вчителя інформатики з комп'ютером Зображення, створене за запитом масляний портрет старого чоловіка-вчителя математики перед дошкою

Зображення з колекції Штучні вчителі від Дмитра Сошникова

DALL-E

DALL-E — це версія GPT-3, навчена створювати зображення на основі запитів. Вона була навчена на 12 мільярдах параметрів.

На відміну від CLIP, DALL-E отримує текст і зображення як єдиний потік токенів для обох типів даних. Таким чином, з кількох запитів можна створювати зображення на основі тексту.

Основна відмінність між DALL-E 1 і 2 полягає в тому, що друга версія генерує більш реалістичні зображення та мистецтво.

Приклади генерації зображень за допомогою DALL-E:

Зображення, створене DALL-E Зображення, створене DALL-E Зображення, створене DALL-E
Зображення, створене за запитом акварельний портрет молодого чоловіка-вчителя літератури з книгою Зображення, створене за запитом масляний портрет молодої жінки-вчителя інформатики з комп'ютером Зображення, створене за запитом масляний портрет старого чоловіка-вчителя математики перед дошкою

Джерела

Відмова від відповідальності:
Цей документ був перекладений за допомогою сервісу автоматичного перекладу Co-op Translator. Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ на його рідній мові слід вважати авторитетним джерелом. Для критичної інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникають внаслідок використання цього перекладу.