Студент МФТИ о компьютерном зрении и красоте
Мало какой термин вызывает больше недоумения, чем компьютерное зрение. Что видит компьютер, как, что он при этом понимает? Применение этой области огромно, от отмечания на фотографиях ваших друзей и родных до реалистичной графики в видеоиграх и реставрации поврежденных изображений. Карим Искаков учится на втором курсе магистратуры кафедры Анализа данных МФТИ, за плечами у него Школа анализа данных и две стажировки в Яндексе. В этом году ему предстоит защитить магистерский диплом. Мы решили расспросить Карима о возможностях компьютерного зрения, и его исследовательской работе.
Одна случайность
Я узнал про машинное обучение всего два с половиной года назад. До этого интересовался системным программированием и радиотехникой. Свой путь начал с прохождения курса «Введение в машинное обучение» на Coursera, который читают специалисты из ВШЭ и Яндекса. Получилось это очень случайно, и я этой случайности безумно рад.
Эта область поразила мое сознание. С одной стороны, это для меня идеальное сочетание: программирование плюс математика. С другой, есть большой шанс, что именно машинное обучение позволит людям создать сравнимый по мощности с интеллектом человека общий искусственный интеллект (AGI), который сильно изменит наш мир. Я очень надеюсь, что в лучшую сторону. И если AGI захочет жить в нашем физическом мире, ему просто необходимо будет уметь «видеть». Это одна из причин, почему меня так вдохновляет компьютерное зрение.
Тренировки нейросетей
Помимо учебы я работаю исследователем в Samsung AI Center. Среди прочего мы занимаемся генерацией изображений с помощью нейронных сетей и определением расположения объекта в кадре. Тема моей магистерской также связана с компьютерным зрением.
Сначала я занимался задачей super-resolution — превращением маленьких и плохих изображений в большие и хорошие. Часть моих исследований была использована в технологии Яндекса Deep HD. Сейчас я занимаюсь image inpainting. По сути это восстановление изображений, на которых недостает некоторых участков. Например, на картинах, открытках или старых бумажных фотографиях часто появляются трещины, сгибы и другие артефакты времени, которые портят впечатление от изображений. В своей работе я исследую методы, которые помогли бы машине «догадаться», что же было на этом недостающем участке изображения. Делаю я это с помощью нейронных сетей.
Обычно нейронные сети, которые решают задачу image inpainting, обучаются следующим образом: берется неиспорченное изображение, на нем случайным образом закрашиваются некоторые области и далее это изображение пропускается через нейронную сеть, которая должна угадать, что же находится за закрашенными областями. Благодаря исходнику, мы знаем правильный ответ и таким образом обучаем сеть.
Одним из недостатков существующих методов является то, что всё знание о том, как выглядят реальные изображения, нейронная сеть сохраняет в своих внутренних параметрах. В своем исследовании я предлагаю помочь сети и в качестве дополнительного входа подать похожие изображения, чтобы у нее было на что опереться. Представьте, что вам дали фотографию человека, у которого закрашен рот, и попросили его дорисовать. Вы можете обратиться к своей памяти, вспомнить, как обычно выглядит человеческий рот, и, скорее всего, у вас неплохо получится. Однако, если бы перед вами положили парочку фотографий людей, похожих на того, кого надо дорисовать, я уверен, у вас получилось бы дорисовать точнее и детальнее. Эксперименты в моих исследованиях подтвердили, что такие подсказки могут помочь не только белковым нейронным сетям (в нашей голове), но и искусственным. Об этом можно прочитать в статье на arXiv.
Красота искусственного интеллекта
Также компьютерное зрение — это очень красиво. Я всегда стараюсь найти какую-то «эстетику» в своей работе. Как бы странно это ни звучало, красота сильно мотивирует. Например, среди этих бургеров есть один, сгенерированный нейронной сетью. Какой?
Этой осенью вышла научная статья, авторы которой как раз научились генерировать такие картинки. В этой области происходят настоящие прорывы, взять хотя бы первого в мире искусственного репортера. Я собираю всю эту AI-красоту в своем Телеграм-канале.
Также виден большой прогресс в области «понимания» (perception) мира. Во многом он связан с популярностью беспилотников. Можно посмотреть красивую гифку, где показано, как люди научились по одному только изображению с высокой точностью понимать, где в пространстве находятся автомобили.
А в компании NVIDIA вообще сделали видеоигру, в которой весь рендеринг происходит с помощью нейронной сети. Верю в то, что в будущем фотореалистичность в видеоиграх будет достигаться с помощью нейросеток. Пока же сети могут генерировать мемы.