Дифузійна модель

Матеріал з testwiki
Перейти до навігації Перейти до пошуку

У машинному навчанні дифузійні моделі, також відомі як ймовірнісні моделі дифузії, є класом моделей прихованих змінних. Це ланцюги Маркова, навчені за допомогою варіаційного висновку[1]. Метою дифузійних моделей є вивчення латентної структури набору даних шляхом моделювання того, як точки даних розсіюються в латентному просторі. У комп'ютерному зорі це означає, що нейронна мережа навчається зашумлювати зображення, розмиті гаусовим шумом, шляхом навчання зворотному процесу дифузії[2][3]. Три приклади загальних структур моделювання дифузії, що використовуються в комп'ютерному зорі, це імовірнісні моделі дифузії з усуненням шуму, мережі балів з умовою шуму та стохастичні диференціальні рівняння[4].

Дифузійні моделі були представлені у 2015 році мотивуючись нелінійною термодинамікою[5].

Дифузійні моделі можуть бути застосовані до різноманітних завдань, зокрема для усунення шумів зображення, розфарбовування, суперроздільності та генерації зображень. Наприклад, модель генерації зображення починається з зображення випадкового шуму, а потім, після навчання реверсу процесу дифузії на природних зображеннях, модель зможе генерувати нові природні зображення. Анонсована 13 квітня 2022 року модель DALL-E 2 OpenAI для перетворення тексту в зображення є недавнім прикладом. Він використовує дифузійні моделі як для попередньої моделі (яка створює вбудовування зображення з текстовим підписом), так і для декодера, який генерує остаточне зображення[6].

Математичні принципи

Створення зображення в просторі всіх зображень

Розглянемо задачу генерації зображень. Нехай 𝑥 — зображення, а 𝑝(𝑥) — розподіл ймовірності над усіма можливими зображеннями. Якщо у нас є саме 𝑝(𝑥), то ми можемо точно сказати, наскільки ймовірним є певне зображення. Однак, в загальному випадку це нерозв'язна задача.

Найчастіше ми не зацікавлені в тому, щоб знати абсолютну ймовірність того, що певне зображення є — коли, якщо взагалі, нас цікавить, наскільки ймовірним є зображення в просторі всіх можливих зображень? Замість цього ми зазвичай лише зацікавлені в тому, наскільки вірогідним є певне зображення порівняно з його безпосередніми сусідами — наскільки імовірніший це зображення кота порівняно з деякими його невеликими варіантами? Чи більш імовірно, якщо зображення містить два вуса, або три, або з додаванням шуму Гауса?

Отже, нас насправді зовсім не цікавить сам p(x)⁣, а радше, xlnp(x). Це забезпечує два ефекти

  • По-перше, нам більше не потрібно нормалізувати p(x), але ми можемо використовувати будь-який p~(x)=Cp(x), де C=p~(x)dx>0 це будь-яка невідома константа, яка нас не цікавить.
  • По-друге, ми порівнюємо p(x) сусідів p(x+dx), за p(x)p(x+dx)=exlnp,dx

Нехай функція оцінки є s(x):=xlnp(x), розглянемо, що ми можемо зробити з s(x).

Як виявляється, s(x) дозволяє нам брати зразки з p(x) використовуючи стохастичну градієнтну динаміку Ланжевена, яка, по суті, є нескінченно малою версією ланцюга Маркова Монте-Карло[2].

Вивчення функції оцінки

Функцію оцінки можна дізнатися за допомогою шумозаглушення[1].

Основні варіанти

Керівництво класифікатора

Припустимо, ми хочемо взяти вибірку не з усього розподілу зображень, а залежно від опису зображення. Ми не хочемо взяти зразок загального зображення, а зображення, яке відповідає опису «чорний кіт з червоними очима». Як правило, ми хочемо взяти вибірку з розподілу p(x|y), де діапазони зображень x, і y діапазони по класах зображень (опис «чорний кіт з червоними очима» — це лише дуже детальний клас, а клас «кіт» — це лише дуже розпливчастий опис).

Розглянувши модель шумового каналу, ми можемо зрозуміти процес таким чином: створити зображення x умовний за описом y, ми припускаємо, що запитувач дійсно мав на увазі зображення x, але зображення проходить через шумовий канал і виходить спотвореним, як y. Таким чином, генерація зображення є нічим іншим, як висновком про те, що є x що запитувач мав на увазі.

Іншими словами, генерація умовного зображення — це просто «переклад з мови тексту на мову зображення». Потім, як і в моделі шумового каналу, ми використовуємо теорему Баєса, щоб отриматиp(x|y)p(y|x)(x)Іншими словами, якщо у нас є хороша модель простору всіх зображень і хороший перекладач зображення-класу, ми отримуємо перекладач класу-зображення «безкоштовно». SGLD використовуєxlnp(x|y)=xlnp(y|x)+xlnp(x)де xlnp(x) це функція оцінки, навчена, як описано раніше, і xlnp(y|x) знайдено за допомогою класифікатора диференційованого зображення.

З температурою

Зразки моделі дифузії, керованої класифікатором p(x|y), яка зосереджена навколо максимальної апостеріорної оцінки argmaxxp(x|y). Якщо ми хочемо змусити модель рухатися до оцінки максимальної ймовірності argmaxxp(y|x), ми можемо використовуватиpβ(x|y)p(y|x)β(x)де β>0 інтерпретується як зворотна температура. У контексті дифузійних моделей її зазвичай називають керівною шкалою. Високий β змусить модель брати вибірку з розподілу, зосередженого навколо argmaxxp(y|x). Це часто покращує якість створених зображень[7]. Це можна зробити просто за допомогою SGLDxlnpβ(x|y)=βxlnp(y|x)+xlnp(x)

Керівництво без класифікатора

Якщо у нас немає класифікатора p(y|x), ми все одно можемо витягти один із самої моделі зображення[8]:xlnpβ(x|y)=(1β)xlnp(x)+βxlnp(x|y)Таку модель зазвичай тренують, пред'являючи її обома (x,y) і (x,None), що дає змогу моделювати обидва xlnp(x|y) і xlnp(x).

Це невід'ємна частина таких систем, як GLIDE[9], DALL-E[10] і Google Imagen[11].

Див. також

Список літератури

Шаблон:Reflist