Создан алгоритм переноса деталей между изображениями, основанный на обучении без учителя, что облегчает сбор данных для его тренировки. Разработчики продемонстрировали его работу, превратив зимнюю запись поездки на автомобиле в летнюю, а также поменяв породу собак, сообщается в работе, представленной на конференции NIPS 2017. Код проекта и его описание опубликованы на GitHub.
Для переноса деталей между изображениями (image-to-image translation), как и в других применениях машинного обучения, применяются разные подходы, которые можно разделить на два больших типа: обучение с учителем и без учителя. В первом случае данные для тренировки представляют собой пары исходных и требуемых данных, благодаря чему алгоритм может на примерах довольно быстро научиться выполнять поставленную задачу. Проблема такого подхода заключается в том, что для обучения нужно составлять большие наборы из пар данных, к примеру, исходных и обработанных изображений. Во многих случаях это требует больших затрат времени и денег.
Специалисты из NVIDIA решили использовать второй подход, и использовали обучение без учителя для алгоритма переноса изображений. Он основан на генеративно-состязательных нейросетях. Такие сети состоят из двух конкурирующих сетей. В данном случае одна из них создает изображение, а вторая оценивает его и определяет, настоящее оно или поддельное. За счет того, что обе сети постоянно обучаются, после тренировки генеративно-состязательная нейросеть выдает гораздо более качественный результат.
В данном случае разработчики использовали шесть подсетей: две генеративно-состязательные сети, а также два вариационных автоэнкодера, которые кодируют исходное изображение в скрытое пространство. По сути, скрытое пространство — это сжатое представление изображения, достаточное для последующего максимально точного восстановления. Таким образом разработчики получили систему, которая одновременно учится переносить изображение в две стороны.
Исследователи оценили алгоритм на наборах изображений разных типов. Например, он научился превращать видеозапись зимней поездки на автомобиле в летнюю, причем алгоритм учитывал то, что летом на деревьях есть листья, на земле нет снега и другие тонкости. Также они научили алгоритм превращать дневные изображения поездки в ночные, хорошую погоду в дождь. Помимо этого авторы проверили перенос изображений домашних кошек в больших кошек, например, львов и пантер, перенос пород собак между изображениями и перенос частей лица.
Исследователи считают, что использованный ими подход позволит упростить тренировку алгоритмов, потому что для этого не придется, к примеру, проезжать один и тот же маршрут в разные времена года. Исходный код, наборы данных и подробности о проекте опубликованы под свободной лицензией на GitHub.
Недавно специалисты из NVIDIA создали нейросеть для генерации реалистичных изображений людей. В своей работе они также использовали генеративно-состязательную нейросеть, а также постепенное наращивание слоев, за счет чего добились создания изображений с большим количеством деталей и разрешением 1024 на 1024 пикселя.
Григорий Копиев