Когда учёные научили ИИ более-менее стабильно распознавать изображения, они захотели пойти дальше и начали эксперименты в стиле «а что если». Один из первых хитовых результатов — Neural Style Transfer. Внутри использовалась уже обученная нейросеть распознавания изображений. Идея была хитрой и очень красивой: взять две картинки, условно «что» и «как».
- Картинка № 1 — «что» (например, селфи или городская улица).
- Картинка № 2 — «как» (картина Ван Гога, пиксель-арт, комикс).
Сначала в уже обученную сеть отправляли картинку № 1 и запускали расчёты, но не доводили их до финала — обрывали, скажем, на 10-м шаге из 12. Все получившиеся к этому моменту промежуточные значения аккуратно записывали в память, после чего сеть возвращали в исходное состояние. Затем ей скармливали картинку № 2 и проделывали то же самое, только останавливали работу еще раньше, например на 5-м шаге. А дальше вступал в игру третий, отдельный алгоритм. Он начинал с пустой, «придуманной» картинки № 3 и постепенно подбирал её так, чтобы при прогоне через ту же сеть на 5-м шаге она давала те же внутренние значения, что картинка № 2, а на 10-м шаге — максимально совпадала по значениям с картинкой № 1. В результате получалось изображение, где общая композиция и крупные формы были похожи на картинку № 1, а мелкие детали и текстуры напоминали картинку № 2. И так стало можно превратить селфи в картину в стиле Ван Гога.
Чуть позже появился Deep Dream — эксперимент, где, наоборот, усиливались какие-то отдельные части изображений. Здесь тоже бралась готовая нейросеть, натренированная распознавать изображения, но вместо пары картинок использовалась только одна. Ключевым параметром был выбранный шаг вычислений, который нужно было искусственно подчеркнуть — например, 12-й из 15. Алгоритм доходил в сети до этого шага, фиксировал промежуточные значения и затем усиливал их, просто умножая на некоторую константу. После этого запускался процесс обратного подбора — генерировалась новая картинка, которая при прохождении через ту же сеть уже сама давала увеличенные значения на 12-м шаге, без дополнительного умножения. В итоге Deep Dream создавала изображения, где отдельные фрагменты исходного кадра вдруг становились ярче, выразительнее и порой фантастически преувеличенными.
То есть путь от «найти кота на фото» до «сгенерировать картинку по описанию» уже был наполовину пройден — нейросети научились не только понимать изображения, но и строить их.