«Несколько изображений» иллюстрируют 10 основных архитектур CNN.

глубокое обучение

Привет всем, яодноклассник К!

Следили ли вы за различными свёрточными нейронными сетями (CNN)? В последние годы мы стали свидетелями рождения бесчисленного количества CNN. Эти сети стали настолько глубокими, что трудно визуализировать всю модель. Вместо того, чтобы отслеживать их, мы рассматриваем их как модели черного ящика.

Этот пост представляет собой визуализацию 10 распространенных архитектур CNN. Эти иллюстрации обеспечивают более компактное представление всей модели без необходимости несколько раз прокручивать вниз, чтобы увидеть слои softmax. Вместе с изображениями я приложил некоторые заметки о том, как они «эволюционировали» с течением времени — от 5 до 50 сверточных слоев, от обычных сверточных слоев до модулей, от 2-3 башен до 32 башен, от 7⨉7 до 5⨉ 5 - но об этом позже.

将讨论的 10 种架构及其论文发表的年份。Здесь я хотел бы добавить, что большое количество архитектур CNN, которые мы видим в Интернете, являются результатом многих факторов - улучшение компьютерного оборудования, конкуренция ImageNet, решение конкретных задач, новые идеи и т. д. Об этом упомянул исследователь Google Кристиан Сегеди.

«[Большинство] достижений — это не просто результат более мощного оборудования, больших наборов данных и более крупных моделей, но в значительной степени результат новых идей, алгоритмов и улучшенных сетевых архитектур» (Segdi et al., 2014 год).

Несколько замечаний по визуализации: обратите внимание, что я исключил из иллюстрации такую ​​информацию, как количество сверточных фильтров, заполнение, шаг, отсев и сглаживание.

@toc

1. LeNet-5 (1998)

图 1:LeNet-5 架构

LeNet-5 — одна из самых простых архитектур. Он имеет 2 сверточных слоя и 3 полносвязных слоя (отсюда и «5» — название нейронных сетей обычно происходит от количества сверточных и полносвязных слоев, которые у них есть). Средний слой объединения, как мы его знаем сейчас, называется слоем подвыборки, и он имеет обучаемые веса (сегодня это не практикуется при разработке CNN). Эта архитектура имеет примерно60 000 параметров.

⭐️ Что такое роман?

Эта архитектура стала стандартным «шаблоном»: укладка сверток с функциями активации и объединением слоев, а также завершение сети одним или несколькими полносвязными слоями.

? Публикации

2. AlexNet (2012)

图 2:AlexNet 架构

60M параметров, AlexNet имеет 8 слоев — 5 слоев свертки и 3 слоя полносвязных. AlexNet — это еще несколько слоев, наложенных поверх LeNet-5. На момент публикации авторы отметили, что их архитектура является «одной из крупнейших сверточных нейронных сетей на сегодняшний день в подмножестве ImageNet».

⭐️ Что такое роман?

Они были первыми, кто реализовал выпрямленную линейную единицу (ReLU) в качестве функции активации.

? Публикации

3. VGG-16 (2014)

图 3:VGG-16 架构

К настоящему времени вы, возможно, заметили, что CNN начинают становиться все глубже и глубже. Это связано с тем, что самый простой способ повысить производительность глубоких нейронных сетей — увеличить их размер (Szegedy et al.). Ребята из Visual Geometry Group (VGG) изобрели VGG-16, который имеет 13 сверточных слоев и 3 полносвязных слоя, унаследовав традиции ReLU от AlexNet. Сеть накладывает больше слоев на AlexNet и использует меньшие фильтры (2×2 и 3×3). это состоит из138MОн занимает около 500 МБ дискового пространства?. Они также разработали более глубокий вариант VGG-19.

⭐️ Что такое роман?

Как упоминается в аннотации, вкладом этой статьи является проектирование более глубоких сетей (примерно в два раза больше, чем у AlexNet). Это делается путем укладки равномерных сверток.

? Публикации

? Примеры

4. Inception-v1 (2014)

图 4:Inception-v1 架构Эта 22-уровневая архитектура с параметрами 5M называется Inception-v1. Здесь активно используется подход «сеть в сети» (см. приложение), как описано в этой статье. Это делается через «Начальный модуль». Архитектурный проект модуля «Начало» является результатом исследования приближенных разреженных структур (чтобы узнать больше, прочтите статью!). Каждый модуль предлагает 3 идеи:

  1. Параллельные башни свертки с разными фильтрами, затем объединяются для захвата различных признаков в размерах 1×1, 3×3 и 5×5, тем самым «кластеризуя» их. Эта идея была мотивирована Arora et al. Некоторые глубокие представления, изученные в статье с доказуемыми границами, показывают, что слои структурированы слоями, где следует анализировать статистику корреляции последнего слоя и группировать их в группы с высокими единицами корреляции.
  2. Свертка 1×1 используется для уменьшения размерности, чтобы устранить вычислительные узкие места.
  3. Его добавление также увеличивает нелинейность из-за функции активации от свертки 1×1.
  4. Автор также вводит дваВспомогательный классификатор, поощрятьКлассификаторНижние этапы дифференциации увеличивают градиентный сигнал, который распространяется обратно, и обеспечивают дополнительную регуляризацию. сказалВспомогательная сеть(подключенные к вспомогательной ветви классификации) будут отброшены во время вывода.

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

Уведомление:

Названия модулей (Stem и Inception) не использовались для этой версии Inception до их более поздних версий (т. е. Inception-v4 и Inception-ResNets). Я добавил их сюда для удобства сравнения.

⭐️ Что такое роман?

Постройте сеть, используя плотные модули/блоки. Вместо укладки сверточных слоев мы укладываем модули или блоки, которые представляют собой сверточные слои. Отсюда и название «Начало» (отсылка к научно-фантастическому фильму «Начало» 2010 года с Леонардо Ди Каприо в главной роли).

? Публикации

  • бумага:Going Deeper with Convolutions
  • Кристиан Сегеди, Вей Лю, Янцин Цзя, Пьер Сермане, Скотт Рид, Драгомир Ангелов, Думитру Эрхан, Винсент Ванхуке, Эндрю Рабинович. Google, Мичиганский университет, Университет Северной Каролины
  • Опубликовано в: Конференция IEEE 2015 г. по компьютерному зрению и распознаванию образов (CVPR)

5. Inception-v3 (2015)

图 5:Inception-v3 架构

Inception-v3 является преемником Inception-v1, с24Mпараметр. Подожди, а где Inception-v2? Не беспокойтесь — это ранний прототип версии 3, поэтому он очень похож на версию 3, но используется редко. Когда авторы предложили Inception-v2, они провели с ним множество экспериментов и зафиксировали несколько успешных настроек. Inception-v3 — это сеть, которая содержит эти настройки (настройка оптимизатора, функция потерь и добавление пакетной нормализации к вспомогательным слоям во вспомогательной сети).

Inception-v2 и Inception-v3 мотивированы избегатьрепрезентативные узкие места(что означает резкое уменьшение входной размерности следующего слоя) и более эффективные вычисления с использованием методов факторизации.

Уведомление:

Названия модулей (Stem, Inception-A, Inception-B и т. д.) не используются для этой версии Inception до ее более поздних версий, а именно Inception-v4 и Inception-ResNets. Я добавил их сюда для удобства сравнения.

⭐️ Что такое роман?

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

✨Какие улучшения по сравнению с предыдущей версией Inception-v1?

  1. Разложить свертки n × n на асимметричные свертки: свертки 1 × n и n × 1
  2. Разложите свертку 5×5 на две операции свертки 3×3.
  3. Замените 7×7 серией сверток 3×3.

? Публикации

  • бумага:Rethinking the Inception Architecture for Computer Vision
  • Авторы: Кристиан Сегеди, Винсент Ванхуке, Сергей Иоффе, Джонатон Шленс, Збигнев Война. Google, Университетский колледж Лондона
  • Опубликовано в: Конференция IEEE 2016 г. по компьютерному зрению и распознаванию образов (CVPR)

? Примеры

6. ResNet-50 (2015)

图 6:ResNet-50 架构

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

ResNet был одним из первых, кто применил нормализацию пакетов (документ со спецификацией пакетов Иоффе и Сегеди был представлен в ICML в 2015 году). На картинке выше ResNet-50 с параметрами 26M.

Основными строительными блоками ResNets являются блоки conv и identity. Поскольку они выглядят одинаково, вы можете упростить ResNet-50 следующим образом (не цитируйте меня!): ⭐️ Что такое роман?

  1. Популяризировать пропущенные соединения (они не были первыми, кто использовал пропущенные соединения).
  2. Создавайте более глубокие CNN (до 152 слоев) без ущерба для возможности обобщения модели.
  3. Один из первых, кто начал использовать пакетную нормализацию.

? Публикации

  • бумага:Deep Residual Learning for Image Recognition
  • Авторы: Каймин Хэ, Сянюй Чжан, Шаоцин Рен, Цзянь Сунь, Microsoft
  • Опубликовано в: Конференция IEEE 2016 г. по компьютерному зрению и распознаванию образов (CVPR)

? Примеры

7. Xception (2016)

图 7:Xception 架构

Xception — это адаптация Inception, в которой модуль Inception был заменен разделяемыми по глубине извилинами. Он также имеет примерно такое же количество параметров, как Inception-v1 (23M).

  • Во-первых, корреляции между каналами (или картами между функциями) фиксируются свертками 1 × 1.
  • Следовательно, пространственная корреляция в каждом канале фиксируется обычной сверткой 3×3 или 5×5.

Доведение этой идеи до крайности означает выполнение 1×1 для каждого канала, затем 3×3 для каждого выхода. Это то же самое, что заменить модуль Inception на разделяемые по глубине свертки.

⭐️ Что такое роман?

  1. Представлена ​​CNN, полностью основанная на разделяемых по глубине сверточных слоях.

? Публикации

8. Inception-v4 (2016)

Google повторно запустил Inception-v4,43Mпараметр. Опять же, это улучшение по сравнению с Inception-v3. Основное отличие — небольшие изменения в группе Stem и модуле Inception-C. Авторы также «делают единый выбор начальных блоков для каждого размера сетки». Они также упоминают, что наличие «остаточных связей может значительно ускорить обучение».

В общем, обратите внимание, что было упомянуто, что Inception-v4 работает лучше из-за увеличенного размера модели.

✨Какие улучшения по сравнению с предыдущей версией Inception-v3?

  1. Изменения в модулях Stem.
  2. Добавьте больше начальных модулей.
  3. Единый выбор модулей Inception-v3 означает использование одинакового количества фильтров для каждого модуля.

? Публикации

9. Inception-ResNet-V2 (2016)

图 9:Inception-ResNet-V2 架构В той же статье, что и Inception-v4, те же авторы также представляют Inception-ResNets — серию Inception-ResNet-v1 и Inception-ResNet-v2. Последний член серии имеет 56M параметров.

✨Какие улучшения по сравнению с предыдущей версией Inception-v3?

  1. Преобразуйте начальный блок в остаточный начальный блок.
  2. Добавьте больше начальных модулей.
  3. Новый тип начального модуля (Inception-A) был добавлен после модуля Stem.

? Публикации

? Примеры

10. ResNeXt-50 (2017)

图 10:ResNeXt 架构Если вы рассматриваете ResNet, да, они связаны. ResNeXt-50 имеет 25 млн параметров (у ResNet-50 — 25,5 млн). ResNeXts отличается добавлением параллельных башен/ветвей/путей в каждом модуле, как показано выше, «всего 32 башни».

⭐️ Что такое роман?

  1. Увеличьте количество («мощность») параллельных башен внутри модуля (я имею в виду, что начальная сеть исследовала это, просто добавив сюда башни)

? Публикации

  • бумага:Aggregated Residual Transformations for Deep Neural Networks
  • Авторы: Сайнин Се, Росс Гиршик, Петр Доллар, Жуовен Ту, Кайминг Хе, Калифорнийский университет в Сан-Диего, Facebook Research
  • Опубликовано в: Конференция IEEE 2017 года по компьютерному зрению и распознаванию образов (CVPR)

Приложение: Сети внутри сетей (2014 г.)

Напомним, что в свертке значение пикселя представляет собой линейную комбинацию весов в фильтре и текущем скользящем окне. Авторы предлагают вместо этой линейной комбинации иметь мини-нейронную сеть с 1 скрытым слоем. Это то, что они создали Mlpconv. Итак, здесь мы имеем дело с сетью (простой 1 скрытый слой) внутри (сверточной нейронной) сети.

Эта идея Mlpconv была уподоблена свёртке 1×1 и стала главной особенностью архитектуры Inception.

⭐️ Что такое роман?

  1. Сверточный слой MLP, свертка 1×1
  2. Глобальный средний пул (взять среднее значение каждой карты объектов и передать полученный вектор в слой softmax)

? Публикации

  • бумага:Network In Network
  • Авторы: Мин Линь, Цян Чен, Шуичэн Янь, Национальный университет Сингапура.
  • Препринт arXiv, 2013 г.

Переведено с:исходный адрес, с некоторыми исключениями и дополнениями. Пожалуйста, свяжитесь со мной, если что-то не так.