Google, похоже, раздает свою корону. MobileNets — это небольшой набор моделей нейронных сетей, предварительно обученных для идентификации объектов. Теоретически это программное обеспечение должно иметь большую ценность, но Google делает его доступным бесплатно.
После обучения нейронная сеть — довольно простая вещь в использовании. Все, что вам нужно сделать, это умножить каждый из входных данных на веса в первом слое и применить к каждому выходную функцию. Повторите эти действия для каждого слоя, и когда вы дойдете до последнего слоя, у вас будет результат. Звучит так просто, что даже самый слабый процессор должен уметь рассчитать модель. Однако на самом деле это не принимая во внимание огромный размер сети. Возможно, мы улучшили использование нейронных сетей, но реальный прогресс заключается просто в том, насколько велика сеть, которую мы можем обучить — можно сказать, что сети стали больше, а не умнее. Современные нейронные сети имеют миллионы весов, поэтому для вычисления выходных данных обученной сети вам по-прежнему нужен достаточно мощный процессор.
Модели Google MobileNet — это полностью обученные модели, которые позволяют вам выбирать размер сети в соответствии с процессором, который вы собираетесь использовать. Идея состоит в том, что они позволят вычислять нейронные сети на мобильных устройствах, таких как телефоны. В настоящее время большинство мобильных приложений ИИ работают, загружая изображения или голосовые клипы в облако, где более мощные процессоры могут заниматься реализацией модели. Наличие нейронной сети, которую можно вычислить на мобильном устройстве, может быть быстрее, чем загрузка, и, конечно же, она работает, когда мобильный телефон отключен.
Все модели были обучены на наборе данных изображений ILSVRC-2012-CLS, поэтому они способны распознавать широкий спектр объектов. Они не только узнают, но и помещают ограничивающие рамки вокруг идентифицированных объектов.
Вы можете выбрать MobileNet, который хотите использовать, по количеству весов. Конечно, больше весов означает большую сеть, что означает больше вычислений, но большую точность. Вы можете увидеть, как работают сети разных размеров на диаграмме ниже. Горизонтальная шкала указана в MAC или необходимых операциях умножения и сложения:
Вы можете видеть, что мобильные сети в лучшем случае так же хороши, как и хорошо известные модели. С другой стороны, я не уверен, для чего могут быть использованы некоторые из сетей с очень низкой точностью — приложения, в которых объекты нужно обнаруживать только изредка?
В следующей таблице приведены подробные характеристики:
Точность Top1 — это когда правильная этикетка находится на первой позиции, а точность Top 5 — когда она входит в пятерку лучших этикеток.
Все эти модели работают на TensorFlow или TensorFlow Mobile. Все они имеют открытый исходный код и могут быть загружены с GitHub. Команда подготовила документ (приведенный в разделе «Дополнительная информация»), в котором объясняется, как они уменьшили количество весов, сохранив при этом высокую производительность.
По-прежнему возникает вопрос, почему Google раздает такое ценное программное обеспечение?
Закончится ли благотворительность, когда на горизонте появится настоящее приложение-убийца?