Нейросети без лишней мишуры
Давайте поговорим о Технологии Нейронов и Диффузии для чайников, и как это работает на самом деле. Со всеми ссылками на научные работы и пояснениями на пальцах как полагается.
Процесс Диффузии кратко:
Вы удивитесь насколько это точная картинка отражающая процесс.
Но что бы в этом убедится - я расскажу как это технически реализовано.
Технология ШУМОПОДАВЛЕНИЯ
Техника диффузии была изобретена в 2015 году исследователями ИИ из Стэнфордского университета.
Диаграмма ниже, взятая из исследования команды Стэнфорда , описывает процесс работы нейросети.
Первый этап заключается в том что бы взять исходное изображение (как и любые другие данные) - постепенно добавлять к картинке шум - на каждом этапе.В это время AI учится понимать как добавление шума меняет исходное изображение.
В итоге в конце этапа обучения изображение оказывается разбавленно почти случайным шумом.
Потом общую обученную систему используют что бы из шума получить ИСХОДНОЕ изображение :
Как можно видеть именно так нейросеть обучают слову «Спираль».
В итоге красная спираль справа (красной она помечена для понимания) - оказывается БУКВАЛЬНОЙ копией Спирали Слева. Ее можно назвать «Копией». с некоторыми потерями битов данных. Это можно использовать для обучения нейросети любым типам цифровых данных хоть OBJ хоть MP3, хоть PNG.
За технологией «Diffusion» не скрывается никакой магии - это последовательный алгоритм
Алгоритм, который учится восстанавливать из шума исходное изображение, по текстовому запросу. То есть наша нейронка это не более чем формат архивирования.
С точки зрения авторских прав - в процессе обучения нейросети -внутри формируется сверх сжатая копия чужих картинок которая оседает на узлах нейросети. И значит дав нейросети весьма долгий шаг работы над картинкой - она сможет восстановить исходное сокрытое изображение.
Но как робот понять что ИМЕННО ему нужно восстановить из шума?
ТЕХНОЛОГИЯ ПОДСКАЗОК
Для этого исследователи из Мюнхена усовершенствовали метод диффузии . Эти исследователи, как направить процесс шумоподавления с помощью дополнительной информации.
Этот процесс называется ДРЕССИРОВКА ( conditioning ), когда добавляется дополнительный элемент для направления «восстановления» изображения.
Наиболее распространенным инструментом дрессировкиявляются краткие текстовые описания, также известные как текстовые подсказки/. PROMT
Подсказки которые которые описывают элементы изображения. Это привело к доминирующему интерфейсу Stable Diffusion и других генераторов изображений AI: преобразование текстовой подсказки в изображение.
Таким образом Диффузия получает дополнительную возможность это технически способ восстановить исходное изображение из «зашумленного источника» используя известный контекст , так называемого PROMT'a - то есть «подсказки»
Это хорошо показывать на примере Моно Лизы.Которое гарантировано пойдет в любую базу нейросети.
Вот Мона лиза из Миджоры - вы можете попытаться получить свои варианты в ней.
Что бы замаскировать это создатели нейросетей могут пойти на кучу ухищрений - что бы пользователь получал разные результаты - а не один. Суть этого заключается в ограничении шагов генерации из диффузного шума, и подмешиванием в ваш промт - дополнительных слов. Которые определяются компьютерным псевдорандомом.Будь то слова «цветы», «икона» или даже «кот»:
Но как это достигается чисто физически?
ТЕХНОЛОГИЯ НЕЛИНЕЙНОЙ ИНТЕРПОЛЯЦИИ
О, в 2020 году исследователи из Калифорнийского университета в Беркли улучшили метод диффузии двумя способами:
- Они показали, как диффузионная модель может хранить свои обучающие изображения в гораздо более сжатом формате, не влияя на ее способность реконструировать копии с высокой точностью. Эти сжатые копии обучающих изображений известны как скрытые изображения .
- Они обнаружили, что эти скрытые изображения можно перемешивать — то есть математически смешивать - создавать линейную интерполяцию между двумя и ли большим числом запросов — для создания новых производных изображений.
Пример выше взят из из исследования команды Беркли , показывает, как работает этот процесс.
Изображение в красной рамке - получается - если взять два исходных изображения и смешать их в фотошопе поставив на слоях по 50% .
Но изображение в зеленой рамке было сделано путем взятия «скрытых исходников» из нейросети и последующий реконструкцией через шумоподавление диффузии показаной на примере спирали выше. По сравнению с «брутфорсным» смешиванием - итог выглядит как убедительное человеческое лицо, а не наложение двух лиц.
По этому принципу работают такие нейросети как «ThisPersonNot Exist» :https://thispersondoesnotexist.com/ и тысячи их клонов(жмите F5/ обновить страницу что бы получать разный результат)
***STABLE DIFFUSION и его аналоги - реализованы все указанные технологии.
Как генерация из Промта и случайного шума
Так и технология работы с уже готовым изображением:
Но как и любая модель машинного обучения оно не буквально понимает текстовые данные.
Для этого используют CLIP (Контекстный язык предварительного обучения)
Чтобы любая модель понимала текстовые данные, нам необходимо преобразовать этот текст в числа, содержащие значение текста, называемые : embeddings (вложения). Процесс преобразования текста в число можно разбить на две части:
Токенизатор — разбивает каждое слово на подслова , а затем использует таблицу поиска для преобразования их в число смыслов, и получает матрицу.
Матрица которая изанчально создается за счет привязки изображений к подписям. Во время обучения на рандомных картинках скаченных Дата Саентистами с интернета:
После чего происходит МАТЕМАТИКА в смылсе МАГИЯ:
После чего имя матрицу «значений» и привязанные к ней «скрытые исходные картинки» внутри нейронки и генераторы шума - мы и получаем в итоге то что и называется «Diffusion» будь то Миджора, стебл диско и прочие …
Более подробно под капотом Стейбл Дифьюжен разобрана в следующих статьях:https://aayushmnit.com/posts/2022-11-05-StableDiffusionP2/2022-11-05-StableDiffusionP2.html
и
Что бы замаскировать что нейронка это банальный алгоритм - а не какая мега чудесная замена творчества- в ваш оцифрованый в таблицу ПРОМТ - создатели нейросетей подмешиват рандомные значения - в результате чего становиться труднее выманивать из нейросети очевидные копии обучающих изображений.
Как и меняют базовое зерно SEED базового шума при каждой генерации.
Сложно - но(!) отнюдь не невозможно: https://arxiv.org/pdf/2212.03860.pdf
Для примера исходный Диван справа вверху отсюда: https://ru.pinterest.com/pin/wall-view-002--863213453570261983/
Вот и выходит:
Как можно понять из всего текста выше - использовались только слова «шумоподавлене», «интерполяция» и «смешивание»- то как это может выдаваться за новую веху в творечстве?
Это же алгоритмы усреднения, работы с шумом и они создают нечто уже существующие и за пределы базы данных которую они набрали для обучения выйти за их пределы не могут. И даже если результат будет не плох, то:
это лишь означает что где то внутри нейронки скрыт не менее шедевральный оригинал - который слегка смешали с чем то еще.
***
Безопасно ли использовать нейросети ? Авторы Нейросетей отвечают : ДА.
Но в случае нарушения чужих авторских прав в коммерческих заказах вся ответственность будет только на ваших плечах :
Так что не удивительно что на создателей нейросеток готовится коллективная судебная тяжба: https://stablediffusionlitigation.com/ (так же часть материалов для данной статьи взята с этого сайта)
А чем это все это в итоге отличается от живого мозга который «тоже» работает с существующими изображениями - мы поговорим как нибудь в следующий раз…