Резюме эволюции структуры CNN (1) Классическая модель

компьютерное зрение

Введение:

С тех пор, как AlexNet выиграла конкурс ImageNet в 2012 году, сверточные нейронные сети постепенно заменили традиционные алгоритмы в качестве ядра обработки задач компьютерного зрения.

В последние годы исследователи улучшили возможность извлечения признаков, улучшили эффект обновления транзитного градиента, сократили время обучения, визуализировали внутреннюю структуру, уменьшили количество параметров сети, облегчили модель и автоматически разработали структуру сети. был значительно улучшен и постепенно разработан ряд классических моделей, таких как серии AlexNet, ZFNet, VGG, NIN, GoogLeNet и Inception, ResNet, WRN и DenseNet, серия MobileNet, серия ShuffleNet, SqueezeNet и Xception и другие облегченные модели.

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

Обратите внимание и обновляйте две статьи о компьютерном зрении каждый день.

Краткое изложение эволюции структуры CNN

В этой серии статей эволюция архитектуры CNN будет обобщена в следующих трех частях.

1. Классические модели, обобщающие части структурного дизайна таких моделей, как AlexNet, VGG, NIN, GoogLeNet и серии Inception, ResNet, WRN и DenseNet.

2. Облегченные модели, обобщить и представить принципы и принципы проектирования облегченных моделей, таких как серия MobileNet, серия ShuffleNet, SqueezeNet и Xception.

3. Обобщить некоторые классические конструкции в предыдущих классических моделях и облегченных моделях. Например, роль свертки 1x1, применение двух типов объединения, метод уменьшения переобучения, метод нормализации, принцип проектирования размера слоя свертки и роль ядра свертки.

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

Подробную интерпретацию этих моделей, включая эксперименты, фактические эффекты и полные конструкции, можно найти в разделе «Интерпретация моделей» официального технического руководства по учетным записям, а интерпретация некоторых моделей будет обновлена ​​в будущем. Оригинальные документы связанных моделей и сводку всех интерпретаций моделей в формате PDF можно получить, обратив внимание на техническое руководство CV общедоступной учетной записи и ответив на «Модель CNN».

LeNet

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

LeNet был предложен в другой статье того же автора LeCun для распознавания рукописных цифр. Его структурная схема выглядит следующим образом:

图片

AlexNet(2012)

AlexNet — первая глубокая нейронная сеть, схема структуры выглядит следующим образом:

图片

Нововведений пять:

1. Используйте ReLU в качестве функции активации.

2. Предлагается использовать Dropout в полносвязном слое, чтобы избежать переобучения. Примечание. Когда был предложен BN, Dropout был заменен на BN.

3. Поскольку памяти графического процессора слишком мало, используются два графических процессора путем группировки на канале. Это не совсем инновационно, это написано здесь, потому что именно отсюда пришла идея ShuffleNet_v1 об использовании сгруппированных сверток. Что касается ShuffleNet_v1, есть подробная интерпретация в интерпретации модели технического руководства CV общедоступной учетной записи.

4. При использовании нормализации локального ответа (LRN) в биологии существует латеральное торможение, то есть активированные нейроны подавляют окружающие нейроны. Цель здесь состоит в том, чтобы сделать локальное значение отклика большим относительно большим и подавить другие ядра свертки с относительно меньшими значениями отклика. Например, если значение отклика признака в этом ядре свертки относительно велико, значение отклика в других смежных ядрах свертки будет подавлено, так что корреляция между ядрами свертки станет меньше. LRN в сочетании с ReLU улучшает модель чуть более чем на процентный пункт.

Примечание: LRN не используется с момента появления Batch-Normalization, я помню, что он использовался только один раз в FstCN в 2015 году (распознавание поведения с помощью декомпозированной пространственно-временной свертки), поэтому читателям не нужно это понимать.

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

NiN(2014)

图片

Нововведений два:

1. Используйте MLPconv, который позже превратился в свертку 1x1 в других моделях.

2. Предложите глобальный средний пул вместо полносвязных слоев.

Преимущества этого заключаются в следующем:

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

2. Сопоставьте карту объектов непосредственно с информацией о категории, которая больше соответствует структуре сверточной сети.

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

Есть и недостаток: размер ввода должен быть фиксированным.

VGG(2014)

图片

Нововведений два:

1. Вместо большого ядра свертки используется стек из нескольких ядер свертки небольшого размера, так что параметров меньше, а рецептивное поле такое же. Все используют размер 3x3, объединение 2x2 и шаг 2.

2. Удален LRN. Авторы сочли его неэффективным.

GoogLeNet(2014)

GoogLeNet также называется Inception_V1, и в последующем есть три улучшенные версии, которые вместе называются серией Inception.Интерпретация этой серии подробно объясняется в разделе интерпретации модели.Здесь представлены только новинки.

Нововведений два:

1. Предложите начальный модуль. Мы обнаружили, что чем глубже и шире сеть, тем лучше эффект, но это принесет следующие проблемы:

1) Количество параметров и объем вычислений становится все больше и больше, и приложение будет сложнее реализовать на устройствах с ограниченной памятью и вычислительной мощностью.

2) Для некоторых сценариев с небольшим количеством наборов данных слишком большую модель легко переобучить, но слишком маленькая модель имеет недостаточную способность к обобщению.

3) Часто возникает проблема исчезновения градиента.

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

图片

图片

Есть еще одна проблема при использовании вышеописанной структуры, из-за метода сращивания на канал количество каналов велико, поэтому для уменьшения количества каналов используется метод свертки 1х1 в NiN. В итоге было решено использовать структуру, показанную справа.

2. Используется вспомогательная функция классификации, как показано на рисунке ниже, имеется 3 позиции вывода softmax, а две находятся в средней позиции, что удобно для вывода классификации в среднем слое, и добавления к итоговой классификации по результаты взвешивания (средние 0,3). Автор считает, что это может увеличить градиентный сигнал обратного распространения к модели, облегчить проблему исчезновения градиента, а также в определенной степени иметь эффект регуляризации. На этапе вывода эти два softmax будут удалены.

Примечание. Эта вещь окажется бесполезной в следующих статьях InceptionV2-V3, но читатели могут попробовать ее в своем направлении, она может оказаться полезной.

Полная структурная схема выглядит следующим образом:

图片

Начало_v2 и Начало_v3

Оба появляются в одной и той же статье, и автор предлагает множество улучшенных методов, некоторые из которых называются V2, а все они — V3.

Нововведений четыре:

1. Предложите декомпозированную свертку. Например, ядро ​​свертки 5x5 разбивается на асимметричные стеки свертки 1x5 и 5x1.

图片

Наконец, был получен следующий гибридный модуль. (Лично я не считаю нужным это делать, особого смысла нет)

图片

2. Пакетная нормализация Используется пакетная нормализация (BN). Что касается BN, полное введение содержится в другой статье, а в техническом руководстве CV публичного аккаунта также есть его полная интерпретация. Заинтересованные читатели могут интерпретировать его в модели. Видно в " Начало_v2 из серии «Начало». Примечание. Когда был предложен BN, Dropout был заменен на BN.

3. Предложите эффективный метод уменьшения размера карт объектов.

При уменьшении размера карты признаков, если она спроектирована следующими двумя способами, узким местом будет первый из них, что нарушает принцип построения модели. (Об этих принципах проектирования будет рассказано в третьей части «Краткого обзора эволюции структуры CNN»), второй метод имеет огромное количество параметров.

图片

Отсюда следующее

图片

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

Способ сглаживания заключается в том, чтобы сделать значение метки меньше 1, а другие значения больше 0, например 5 классов, чтобы значение метки было {0,05, 0,05, 0,8, 0,05, 0,05}. В частности, это реализуется функцией Дирака. Заинтересованные могут посмотреть трактовку статьи.

Полная структура выглядит следующим образом:

图片

Inception_v4, Inception_ResNet_v1 и v2

В четвертой статье серии «Начало» предлагаются три структуры, которые не являются инновационными, и автор не объясняет, почему они разработаны в статье.

Если уж говорить, что нововведения есть, то в основном они основаны на вышеприведенных Inception_v2-v3.В первом Inception_v4 изменены некоторые параметры на модуле Inception, и предложено несколько блоков Inception с другими параметрами, которые существенно отличаются от v2 и v3. . Вторая и третья структуры добавляют к модулю Inception остаточные соединения, которые также не имеют существенных изменений и относительно редки и полезны в качестве сетей извлечения признаков, поэтому я не буду их здесь представлять. Интересно увидеть интерпретацию статьи, которая имеет законченную структуру.

ResNet(2015)

Вообще говоря, чем глубже и шире сеть, тем лучше будет возможность извлечения признаков.Однако, когда сеть достигает определенного количества слоев, по мере увеличения количества слоев точность будет снижаться, а скорость сходимости сети будет быть медленнее.

В ответ на эту проблему в ResNet есть два новшества:

1. Предложите короткое соединение, и часть, непосредственно связанная справа, называется отображением идентичности. Этот метод вдохновлен Highway Networks.

图片

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

2. Предложите блокировку узкого места. Этот модуль узкого места применяется и адаптируется в MobileNet v2.

图片

Использование модуля узкого места для построения ResNet34, ResNet50, ResNet101, ResNet152 и других глубоких уровней

Нейронные сети.

WRN(2017)

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

Нововведений два:

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

2. Предложить использование Dropout в остаточном блоке. В предыдущих исследованиях отбрасывание было вставлено в идентификационное соединение в остаточной сети, что приводило к снижению производительности. WRN предложила вставлять отсев между сверточными слоями для повышения производительности.

图片

DenseNet(2018)

Традиционные сверточные сети имеют только одно соединение на уровень в прямом процессе, а ResNet добавляет остаточные соединения для увеличения потока информации с одного уровня на другой. FractalNets многократно комбинирует несколько последовательностей параллельных слоев с разным количеством сверточных блоков, увеличивая номинальную глубину, сохраняя при этом короткий прямой путь распространения сети. Аналогичные операции включают Stochastic depth и Highway Networks.

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

В зависимости от способа передачи информации в DenseNet есть одно нововведение:

1. Традиционная сеть L-уровня имеет только L соединений, а соединения L(L+1)/2 используются в DenseNet. У этого есть несколько явных преимуществ: он позволяет избежать проблемы исчезающего градиента, улучшает распространение признаков, позволяет повторно использовать признаки и существенно уменьшает количество параметров.

图片

Плотный блок построен с использованием этого плотного соединения

图片

Резюме: В этой статье обобщаются структурные инновации некоторых из более классических моделей, чтобы читатели могли получить более полное представление о текущей сети извлечения признаков Механизм действия сети извлечения четко понятен.

Ответьте на «модель CNN» в техническом руководстве официального аккаунта CV, чтобы получить подробную интерпретацию приведенной выше модели в формате pdf и исходный текст статьи.Примечание: небольшое количество моделей не было интерпретировано.

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

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

Эта статья взята из серии технических сводок Технического руководства CV для общедоступных аккаунтов.

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

Ответьте на ключевое слово «Техническое резюме» в официальном аккаунте, чтобы получить резюме следующих статей в формате pdf.

Другие статьи

Четкое обнаружение границ с использованием Dice loss

PVT — многофункциональная основа для плотного прогнозирования без свертки

CVPR2021 | Обнаружение объектов в открытом мире

Siamese networkСводка

Визуальное обнаружение и распознавание объектов Прошлое, настоящее и возможное

Какие концепции или методы вы освоили за свою карьеру инженера-алгоритма, которые заставляют вас чувствовать, что вы выросли как на дрожжах?

Краткое изложение терминологии компьютерного зрения (1) Создание системы знаний для компьютерного зрения

Краткое изложение методов недообучения и переобучения

Резюме методов нормализации

Краткое изложение общих идей бумажных инноваций

Резюме методов эффективного чтения англоязычной литературы по направлению CV

Обзор непродолжительного обучения компьютерному зрению

Краткий обзор дистилляции знаний

Оптимизировать скорость чтения видео OpenCV

Сводка NMS

Краткое изложение методов функции потерь

Техническое резюме механизма внимания

Краткое изложение технологии пирамиды функций

Краткое изложение технологии объединения

Краткое изложение методов увеличения данных

Резюме эволюции структуры CNN (1) Классическая модель

Резюме эволюции структуры CNN (2) Облегченная модель

Резюме эволюции структуры CNN (3) Принципы проектирования

Как увидеть будущее направление компьютерного зрения

Краткое изложение технологии визуализации CNN (1) Визуализация карты объектов

Краткое описание технологии визуализации CNN (2) Визуализация ядра свертки

Краткое изложение технологии визуализации CNN (три) визуализации

Краткое описание технологии визуализации CNN (4) инструменты и проекты визуализации

Справочные документы

Gradient-based learning applied to document recognition

ImageNet Classification with Deep Convolutional Neural Networks

Network In Network

Very Deep Convolutional Networks For Large-scale Image Recognition

Going Deeper with Convolutions

Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

Rethinking the Inception Architecture for Computer Vision

Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning

Deep Residual Learning for Image Recognition

Wide Residual Networks

Densely Connected Convolutional Networks

Training very deep networks

Aggregated Residual Transformations for Deep Neural Networks

FractalNet: Ultra-Deep Neural Networks without Residuals