Написанная / гостевая статья Чена Фэна, Терри Шэна, Джея Чжо, Чжию Ляна, Паркера Чжана и Лян Шэня из Qualcomm Technologies.
Источник | Публичный аккаунт TensorFlow
Вызов IEEE LPIRC
Low Power Image Recognition Challenge (LPIRC) — это ежегодное соревнование, в котором оцениваются технологии компьютерного зрения с точки зрения точности, времени выполнения и энергопотребления. Конкурс этого года, спонсируемый Google и Facebook, разделен на три трека, где трек 1 ставит задачу обработки 20 000 изображений в течение 10 минут с использованием смартфона Pixel 2 на базе мобильной платформы Qualcomm Snapdragon 835 с максимальной точностью. классификации изображений. В конкурсе используется большой набор данных примерно из 1,2 миллиона изображений в формате JPEG, охватывающих 1000 различных классов, в качестве обучающих данных и набор изображений Holdout в качестве тестовых данных.
Реальный мир требует моделей нейронных сетей, которые могут работать в режиме реального времени на мобильных устройствах и могут точно классифицировать изображения, и этот открытый конкурс был проведен для этой цели. Помимо точности, вычислительная эффективность также имеет решающее значение для устройств с батарейным питанием. В соревновании наша команда использовала удобную для количественной оценки архитектуру MobileNet V2 с усовершенствованной схемой постквантования и вышла на первое место благодаря превосходной скорости и точности. Мы вставляем узлы FakeQuantization с вычисленными минимальными и максимальными значениями для каждого слоя, чтобы изменить график в TensorFlow, и используем TensorFlow Lite, чтобы преобразовать график в файл .tflite для аппаратного развертывания.
Наша модель достигла наивысшей точности при распознавании 20 000 изображений за 28 мс на вывод на одном процессоре ARM.
«Эта задача идеально согласуется с нашей стратегией ИИ, и победа в этом конкурсе будет иметь большое значение для утверждения роли Qualcomm Technologies в машинном обучении и продвижении ИИ в устройствах», — сказал Микки Алексик, вице-президент по разработкам в Qualcomm Technologies, Inc. "
Реализуйте чрезвычайно быстрое распознавание изображений на устройстве
Для точного и быстрого распознавания изображений на периферийных устройствах необходимо выполнить следующие шаги:
-
Создайте и обучите модель нейронной сети для распознавания и классификации изображений в операциях с плавающей запятой.
-
Преобразование моделей с плавающей запятой в модели с фиксированной запятой, которые могут эффективно работать на периферийных устройствах без проблем с задержкой и точностью.
Модель нашей команды построена на MobileNet v2, но изменена таким образом, чтобы ее было «легко подсчитать». В то время как модель MobileNet от Google успешно уменьшает размер параметра и вычислительную задержку за счет использования разделяемой структуры свертки, прямое квантование предварительно обученной модели MobileNet v2 может привести к потере точности. Наша команда проанализировала и определила основную причину снижения точности из-за квантования в таких разделимых сверточных сетях и решила эту проблему без использования переобучения с учетом квантования. При обучении с учетом квантования модель достигает хорошей точности, и наш подход является альтернативой, которая позволяет модифицировать сетевую архитектуру для решения квантования без повторного обучения. Другой, более комплексный подход заключается в использовании платформы машинного обучения Google Learn2Compress для обучения эффективных моделей на устройстве непосредственно с нуля путем оптимизации нескольких сетевых архитектур и одновременного использования квантования и других методов (таких как уточнение, сокращение и совместное обучение). или существующая модель TensorFlow. Примечание: ссылка Learn2CompressЛюбовь. Google blog.com/2018/05/ Подсказка…
Архитектура модели
Наша команда предлагает легко поддающуюся количественной оценке эффективную отделимую сверточную архитектуру в качестве решения, которое полностью устраняет нелинейные операции (пакетная нормализация и ReLU6) между глубинными и точечными сверточными слоями, позволяя сети изучать соответствующие веса для непосредственной обработки пакетных преобразований нормализации. Кроме того, мы также заменяем ReLU6 на ReLU во всех точечных сверточных слоях. В многочисленных экспериментах с моделями MobileNet v1 и v2 эта архитектура продемонстрировала значительное повышение точности в 8-битном канале квантования.
технология постколичественного анализа
Как только структура модели определена, вы можете обучить модель с плавающей запятой на наборе данных. На этапе постквантования мы запускаем модель с различными входными данными и против одного изображения каждого класса в обучающих данных, чтобы собрать минимальные и максимальные значения и распределение гистограмм данных для каждого вывода слоя. Мы выбираем оптимальные значения Step и Offset (обозначаемые Δ) для линейного квантования, которые минимизируют общую сумму потерь квантования и потерь насыщения при жадном поиске. Основываясь на вычисленных минимальных и максимальных диапазонах, TensorFlow Lite предоставляет путь для преобразования графовых моделей в модели .tflite для развертывания на периферийных устройствах.
в заключении
Перенос вычислений на 8-битные вычисления с сохранением высокой точности — важный шаг для быстрого и эффективного запуска моделей на периферийных устройствах. Наша команда обнаружила эту проблему количественного определения, проанализировала и определила ее основную причину, а затем устранила ее. Впоследствии мы применили эти результаты к задаче классификации изображений и увидели, как наши теоретические результаты стали реальностью. Вы можете узнать больше в нашей статье «Удобная для квантования архитектура сепарабельной свертки для мобильных сетей» (АР Вест V.org/ABS/1803.08…).