В НИУ ВШЭ ускорили работу нейросети по распознаванию изображений

Профессор НИУ в Нижнем Новгороде Андрей Савченко разработал алгоритм, работающий на 40 процентов быстрее аналогов. При этом потери в точности составили не более 0,5-1 процента. Это позволит ускорить работу систем видеонаблюдения в режиме реального времени.

Результаты исследования опубликованы в журнале Information Sciences. Для распознавания изображений используются сверточные нейронные сети, которые представляют собой последовательность слоев. В каждом слое есть вход и выход. На вход первого слоя поступает цифровое описание изображения, которое преобразуется в другой набор чисел на выход.

Новое описание поступает на вход следующего слоя и так далее, до тех пор, пока в последнем слое не будет предсказан класс объекта, изображенного на снимке: например, человек, кошка или стул. Для этого нейросеть обучается на изображениях, класс которых заранее известен. Чем больше различных изображений каждого класса в наборе данных, тем точнее будет работать обученная сеть.

Если примеров мало, используется так называемый алгоритм дообучения (fine-tuning) нейросети. Сеть предварительно обучается распознавать изображения из похожего большого набора данных, решающего исходную задачу. Например, при обучении распознаванию лиц или их атрибутов (эмоции, пол, возраст) сеть предварительно обучают идентифицировать знаменитостей по их фотографиям.

Затем полученная нейросеть дообучается распознавать изображения из доступного небольшого набора данных, например, идентифицировать лица членов семьи или родственников в домашних системах видеонаблюдения. Чем больше глубина (число) слоев в нейронной сети, тем точнее она работает, то есть правильнее предсказывает тип объекта на изображении. Но с увеличением числа слоев нейросеть распознает объекты дольше.

Автору исследования, профессору НИУ ВШЭ в Нижнем Новгороде Андрею Савченко удалось до 40 процентов ускорить работу дообученных глубоких сверточных нейросетей произвольного вида, состоящих из 90-780 слоев, при этом контролируя потери в точности — не более 0,5-1 процента. Ученый опирался на статистические методы последовательного анализа и множественных сравнений (множественной проверки гипотез).



«Решение в задаче распознавания изображений принимает классификатор — специальный математический алгоритм, который получает на вход массив чисел (характерные признаки изображения), а на выходе выдает предсказание о том, к какому классу относится изображенный объект. Классификатор можно применять, подавая ему на вход выходы любого слоя нейронной сети. Для распознавания «простых» изображений классификатору достаточно проанализировать данные (выходы) из первых слоев нейронной сети.

Не нужно дальше терять время, если мы уже уверены в надежности принятого решения. Для «сложных» картинок первых слоев явно недостаточно — нужно переходить к следующим. Поэтому в нейронную сеть были добавлены классификаторы на несколько промежуточных слоев. Они в зависимости от сложности входного изображения решали, продолжать распознавание или завершить. Так как в такой процедуре важно контролировать ошибки, я применил теорию  множественных сравнений: ввел много гипотез, на каком промежуточном слое остановиться, и последовательно проверял эти гипотезы», — объяснил Андрей Савченко.

Если уже первый классификатор выдавал решение, которое считалось процедурой множественной проверки гипотез надежным, алгоритм останавливался. Если же решение объявлялось не надежным, вычисления в нейросети продолжались до следующего промежуточного слоя, и проверка надежности повторялась.