14 июня 2013 г.

Как работает распознавание картинок в сервисах Google

Оригинал статьи: How Google’s Image Recognition Works

Для поиска по графическим файлам даже в том случае, когда к ним нет подписи, а имя файла не несёт полезной информации, в Google+ Photos, как и в Google Drive, используется технология распознавания изображения. «Эта технология базируется на компьютерном распознавании изображений и машинном самообучении, в результате на основании содержания картинки генерируются поисковые теги (searchable tags), что в сочетании с другими источниками, такими как текстовые теги и метаданные EXIF, делает возможным поиск таких обобщённых образов, как цветы, еда, автомобили, самолёты, черепахи…», объясняет Google.

Недавно Google приобрёл компанию DNNresearch, стартап, который создали профессор Джеффри Хинтон (Geoffrey Hinton) и два его дипломника из Университета Торонто. Они построили «систему, которая использует глубокое обучение и свёрточные нейронные сети и показала своё значительное превосходство по сравнению с традицонными подходами к распознаванию образов на конкурсе компьютерного распознавания ImageNet». Затем Google построил аналогичную модель большего масштаба, которая при испытаниях показала в среднем вдвое лучшую точность по сравнению с другими методами распознавания объектов. «Мы взяли исследование с переднего края науки прямо из исследовательской лаборатории и запустили его в жизнь — немногим более чем за шесть месяцев», говорит Чак Розенберг (Chuck Rosenberg) из команды сервиса Картинки (Google Image Search).

Доклад под названием «Классификация изображений с помощью глубоких свёрточных нейронных сетей» (PDF-файл) разъясняет принципы работы алгоритма. В нём используются контролируемое обучение, 7 скрытых весовых слоёв и особые биграфы, выстраиваемые на основании данных. «Наша нейронная сеть включает 60 млн оцениваемых параметров и 650 тыс. нейронов. Она обладает серьёзным запасом мощности. Мы обучаем её распознавать образцы размером 224×224 пикс., случайным образом получаемые из изображений размера 256×256, и их горизонтальные отражения».

Google сообщает, что общедоступная функция поиска по фотографиям распознаёт 1 100 тегов. «Мы довели набор визуальных классов до 2 000, отталкиваясь от популярных меток в Google+ Photos и выраженного визуального компонента (то есть человек должен легко идентифицировать класс, просто глядя на изображение), то есть значительно улучшили систему: на конкурсе ImageNet набор составлял 1 000 классов. Как и в прототипе, классы представляют собой не текстовые строки, а понятия, категории (entities); мы используем категории базы знаний Freebase, на основе которых создана наша Сеть знаний (Knowledge Graph), которая применяется в Поиске (Google Search). Категория — это способ уникальным образом определить нечто независимо от языка. <…> Поскольку мы хотели достичь высокой точности в присвоении меток, к запуску функции мы уточнили наш набор классов, сократив его с начальных двух тысяч до 1 100 высокоточных классов».

Вот несколько примеров распознаваемых классов: автомобиль, танец, поцелуй, гибискус, георгин, закат, белый медведь, медведь гризли. Система распознаёт общие понятия и конкретные объекты. «В отличие от других систем, с которыми мы экспериментировали, ошибки данной системы выглядят по-человечески обоснованными: они похожи на ошибки, которые делает человек, когда путает похожие вещи».

От переводчика

«Определить нечто независимо от языка» — это мечта мыслителя. Наука отвергла языковой экстремизм Э. Сепира и Б. Л. Ворфа, однако в смягчённом виде их гипотеза жива: язык и мышление неразрывны. И вряд ли эта неразрывность преодолима. Хотя…