Яндекс научил нейросеть распознавать российские города по фотографиям

11 апреля 2019
81

Компания «Яндекс» обучила нейросеть распознавать по фотографии город, в котором она была сделана. Разработчики продемонстрировали работу алгоритма в виде игры, в которой пользователь соревнуется в точности распознавания городов с алгоритмом, сообщается в блоге Яндекса.

Машинное обучение совершило большой скачок в последние несколько лет, и особенно это заметно в области алгоритмов, работающих с изображениями. Нейросетевые алгоритмы умеют как создавать новые изображения «с нуля», так и анализировать уже существующие. Как и в других алгоритмах машинного обучения, нейросети для работы с изображениями имеют характерное преимущество — способность находить при обучении закономерности, которые зачастую незаметны человеку.

Программисты Яндекса решили продемонстрировать это на примере практической задачи по распознаванию города по фотографии. В качестве обучающей выборки разработчики взяли 400 тысяч фотографий 111 российских городов, которые пользователи загрузили на Яндекс.Карты. Для распознавания городов использовался алгоритм SE-ResNeXt-50, он представляет собой сверточную нейросеть, разработанную китайскими исследователями в 2017 году. Разработчики взяли уже используемую модель, обученную на 80 тысячах классов, и модифицировали ее для своей задачи, переобучив последние слои на фотографиях российских городов. Такой подход часто используется для сохранения выученных ранее генерализованных способностей распознавания образов и относительно быстрой адаптации сети под конкретную задачу. Датасет был разбит на две части, одну из которых разработчики использовали только для обучения, а вторую только для игры. Таким образом, во время игры алгоритм всегда получает незнакомые ему изображения и опирается при их оценке только на выученные визуальные признаки городов. В ответ на показываемый снимок алгоритм выдает список вероятностей, соответствующих каждому городу, и в качестве ответа от нейросети игра выбирает город с наибольшей вероятностью.

Во время игры пользователю дают 12 вопросов — снимок с Яндекс.Карт и четыре города, в котором он мог быть сделан. После выбора пользователь узнает правильный ответ, а также то, к какому городу снимок отнес алгоритм. Кроме того, он видит карту с расположением города. По итогам игры сервис показывает, сколько ответов набрали игрок и нейросеть, и распределение количества правильных ответов по всем игрокам, а также предлагает поиграть не с нейросетью, а с другом, которому можно передать специальную ссылку. Ранее нейросети уже применяли для распознавания не очевидных различий по снимкам из городов. К примеру, в 2017 году американские исследователи взяли 50 миллионов фотографий из сервиса Google Street View, а также данные переписи населения, и научили алгоритм предсказывать политические предпочтения жителей района по автомобилям, стоящим на его улицах.