Нейросети

Как нейросеть создает изображение?

Дмитрий, Оренбург 94 просм.

Пользуюсь генераторами картинок уже полгода, но так и не понимаю сам механизм: как из текстового запроса вообще получается готовое изображение? Хочется разобраться не на уровне "нажал кнопку", а что происходит внутри.

Дмитрий Волков инженер по машинному обучению

ответил

эксперт

Большинство современных генераторов изображений — это диффузионные модели, и работают они на первый взгляд контринтуитивно: не рисуют картинку с нуля, а наоборот, учатся убирать шум. При обучении модели показывают реальное изображение, постепенно добавляют к нему случайный шум до тех пор, пока от исходной картинки не останется одна серая рябь, и просят модель на каждом шаге угадать, какой шум был добавлен только что. Тысячи повторов на миллионах изображений — и модель начинает уверенно предсказывать, как убрать шум и получить обратно что-то похожее на исходную картинку.

Генерация новой картинки — это тот же процесс в обратную сторону. Модель стартует с чистого случайного шума и за 20-50 шагов постепенно его «счищает», каждый раз чуть приближая результат к чему-то осмысленному. Текстовый запрос при этом не добавляется в конце, а участвует на каждом шаге: отдельная языковая часть модели превращает ваши слова в числовое представление, и диффузионная часть на каждом шаге сверяется с ним, выбирая, в какую сторону убирать шум, чтобы результат соответствовал описанию.

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

Задать свой вопрос

Вопросы проходят модерацию. Ответ эксперта публикуется на сайте в течение пары дней.

Похожие вопросы

Все в теме