Изменения

Перейти к: навигация, поиск

Машинное обучение на мобильных телефонах

1212 байт добавлено, 23:59, 22 января 2021
Нет описания правки
Машинное обучение, как известно, очень тесно связано с нашей жизнью. Буквально каждая область жизни человека нашла в себе нишу для машинного обучения. Конечно же, модели нужно где то запускать и сохранять. Самый простой выход из ситуации {{---}} сервер, на котором будет находиться наша модель, и который будет приниматься наши принимать запросы. Однако, что, если мы находимся в глухом лесу и у нас нет доступа к Интернету? Что, если мы не хотим хранить свои данные на чужих серверах? У нас нет своих серверов для машинного обучения, но мобильные телефоны есть почти у каждого. Давайте рассмотрим машинное обучение на телефонах.
== Задачи машинного обучения на телефонах ==
Навигационные приложения можно значительно улучшить, если интегрировать в них алгоритмы по распознаванию фото и видео. К примеру, если приложение подключается к камере в автомобиле, оно может анализировать ситуацию на дороге и предупреждать водителя в случае возможной опасности. Так можно распознавать пробки, дорожные знаки по ограничению скорости, агрессивное поведение окружающих водителей и другие характеристики дорожного движения.
== Запуск моделей машинного обучения на мобильных телефонах ==
Для запуска [[Глубокое_обучение|глубоких моделей]] необходимо наличием мощных вычислительных ресурсов и большого объема учебных данных. Поэтому построение модели может осуществляться с помощью высокопроизводительных центральных (англ. central processing unit, CPU<ref>[https://en.wikipedia.org/wiki/Central_processing_unit Central processing unit]</ref>) и графических (англ. graphics processing unit, GPU<ref>[https://en.wikipedia.org/wiki/Graphics_processing_unit Graphics processing unit]</ref>) процессоров, а после построения ее можно запустить на мобильном устройстве с гораздо меньшей вычислительной мощностью на CPU, интегральных схем специального назначения (англ. [https://en.wikipedia.org/wiki/Application-specific_integrated_circuit Application specific integrated circuit, ASIC]), программируемых пользователем вентильных матриц(англ. [https://en.wikipedia.org/wiki/Field-programmable_gate_array Field programmable gate array, FPGA]) или мобильных GPU. На рисунках 1-4 представлены модели взаимодействия с соответcтвующими вычислительными устройствами.
CPU более энергозатратны. ASIC могут быть гораздо более энергоэффективными, так как аппаратное обеспечение изготовлено специально для
некоторых вычислений. Тем не менее, проектирование и разработка микросхем ASIC может занять очень много времени. Таким образом, ASIC используется только тогда, когда модель фиксирована и требуются низкие затраты энергии. FPGA предлагает компромисс между энергопотреблением, точностью прогнозирования и скоростью разработки системы.
 
== Вес современных нейронных сетей ==
 
В нынешних реалиях глубокие нейронные сети могут весить порядка сотен мегабайт, в то же время современные фреймворки например MobileNet позволяют строить нейросети значительно меньшего размера при небольшой потере точности, такие сети отлично подходят для мобильных устройств. Результаты использования MobileNet приведены в сравнении с другими нейросетями приведены в таблице ниже.
 
{| class="wikitable" style="width=50%"
! model || input size || param memory || future memory
|-
| rfcn-res50-pascal || 600 x 850 || 122 MB || 1 GB
|-
| rfcn-res101-pascal || 600 x 850 || 194 MB || 2 GB
|-
| ssd-pascal-vggvd-300 || 300 x 300 || 100 MB || 116 MB
|-
| ssd-pascal-vggvd-512 || 512 x 512 || 104 MB || 337 MB
|-
| ssd-pascal-mobilenet-ft|| 300 x 300 || 22 MB || 37 MB
|-
| aster-rcnn-vggvd-pascal || 600 x 850 || 523 MB || 600 MB
|-
|}
== Процессоры ==
# [https://habr.com/ru/company/dataart/blog/500956/ habr.com] - железо и процессоры.
# [https://www.researchgate.net/publication/331533064_Deep_Learning_on_Mobile_Devices-A_Review researchgate.net] - Deep Learning on Mobile Devices, Yunbin Deng
# [https://habr.com/ru/post/455353/s habr.com] - аппаратное ускорение нейронных сетей
# [https://habr.com/ru/company/mobileup/blog/332500/ habr.com] - краткий обзор и пример на CoreML.
# [https://habr.com/ru/post/345268/ habr.com] - распознавание изображений.
Анонимный участник

Навигация