Начало, ResNet, MobileNet

Inception, ResNet и MobileNet - это сверточные нейронные сети, обычно используемые для задачи классификации изображений. Зачем нужно такое количество сетей? Будет объяснена проблема, стоящая за развитием сетей, и предложенные решения.

Мотивация

Inception создан для того, чтобы уменьшить вычислительную нагрузку на глубокие нейронные сети и добиться высочайшей производительности. По мере того, как сеть углубляется, эффективность вычислений также будет снижаться, поэтому авторы Inception были заинтересованы в поиске решения для масштабирования нейронных сетей без увеличения вычислительных затрат.

В то время как Inception фокусируется на вычислительных затратах, ResNet фокусируется на точности вычислений. Интуитивно более глубокие сети не должны работать хуже, чем более мелкие сети, но на практике более глубокие сети работают хуже, чем более мелкие сети, что вызвано не переоснащением, а проблемой оптимизации. Вкратце, чем глубже сеть, тем сложнее ее оптимизировать.

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

Решения

Модуль Inception вычисляет несколько различных преобразований по одной и той же входной карте параллельно, объединяя результаты в один выходной. Для каждого уровня он выполняет свертку 5x5, свертку 3x3 и максимальное объединение, каждый из которых несет разную информацию, что, конечно, требует больших вычислительных затрат. Поэтому авторы Inception решили преодолеть эту проблему, введя уменьшение размерности. Под уменьшением размерности понимается использование свертки 1x1 перед тем, как перейти к узким местам сверток 3x3 и 5x5. Следовательно, он имеет сжатую версию пространственной информации.

ResNet предложила решение использовать сетевые уровни для соответствия остаточному отображению вместо того, чтобы напрямую пытаться согласовать желаемое базовое отображение.

Другими словами, как показано на рисунке выше, вместо того, чтобы пытаться узнать H (x) напрямую, сеть пытается изучить F (x) + x. Это помогает решить проблему исчезающих градиентов, при которой сигналы градиента от функции ошибок уменьшаются экспоненциально по мере обратного распространения. К тому времени, когда сигналы ошибок достигли более раннего уровня, они были настолько малы и стали незначительными. В ResNet градиентный сигнал может возвращаться на ранние уровни с помощью этого «сокращенного» метода, поэтому многие уровни сети могут быть созданы без компромисса с точностью.

Идея MobileNet заключается в использовании разделимых по глубине сверток для построения более легких глубоких нейронных сетей. В обычном сверточном слое сверточное ядро ​​или фильтр применяется ко всем каналам входного изображения путем взвешенного суммирования входных пикселей с фильтром, а затем скользит к следующим входным пикселям по изображениям. MobileNet использует эту обычную свертку только на первом уровне. Следующие слои представляют собой разделимые по глубине свертки, которые представляют собой комбинацию глубинной и точечной свертки. Глубинная свертка выполняет свертку по каждому каналу отдельно. Следовательно, если изображение имеет три канала, выходное изображение также имеет три канала. Эта глубинная свертка используется для фильтрации входных каналов. Следующим шагом является точечная свертка, которая похожа на обычную свертку, но с фильтром 1x1. Целью точечной свертки является объединение выходных каналов глубинной свертки для создания новых функций. Таким образом, вычислительная работа, которую необходимо выполнить, будет меньше, чем при использовании обычных сверточных сетей.

Источники:

[1] К. Сегеди и др., «Углубляясь в извилины», Proc. IEEE Comput. Soc. Конф. Comput. Vis. Распознавание образов., т. 07–12 июня, 2015, стр. 1–9.

[2] К. Хе, «Глубокое остаточное обучение для распознавания изображений».

[3] А. Г. Ховард и др., «Мобильные сети: эффективные сверточные нейронные сети для приложений мобильного зрения», 2017 г.