Приглашаем вас ознакомиться с компьютерным видением серии статей — ResNet и ResNeXt.

искусственный интеллект компьютерное зрение

Приглашаем вас ознакомиться с компьютерным видением серии статей — ResNet и ResNeXt.

Реснет силен!

ResNet был выпущен в 2015 году, и до сих пор существует большое количество задач CV, которые используют его в качестве основы (особенно экспериментальное сравнение верхнего уровня), и многие сети в настоящее время используют остаточные модули.

Deep Residual Learning for Image Recognition

https://arxiv.org/abs/1512.03385

Код:

pytorch:https://github.com/fastai/fastai
tensorflow:https://github.com/tensorflow/models/tree/master/research/deeplab

Самое интересное из сети:

  • Сверхглубокая сетевая структура (прорыв через 1000 слоев)
  • Предложите остаточный модуль
  • Ускорьте обучение с помощью пакетной нормализации (отсева)

введение

В связи с важностью глубины для сети возникает проблема:Лучше изучить некоторые сети, которые больше похожи на стопку слоев, чем проще простого.? Одним из препятствий, чтобы ответить на этот вопросГрадиент исчезает/взрываетсяЭто известная проблема, она мешает конвергенции в первую очередь. Однако этот вопрос проходитнормализованная инициализация,Промежуточный уровень нормализации(промежуточные слои нормализации) ипакетная нормализация(BN) в значительной степени решена, что позволяет сетям с десятками слоев начать сходиться через стохастический градиентный спуск (SGD) с обратным распространением. (ResNet не решает проблему исчезновения/взрыва градиента)

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

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

Мы обнаружили, что: 1) нашу чрезвычайно глубокую остаточную сеть легко оптимизировать, но соответствующая «простая» сеть (простые стековые слои) демонстрирует более высокие ошибки обучения по мере увеличения глубины; 2) наша глубокая остаточная сеть может быть получена из большойЛегкий прирост точности при увеличении глубины, что дает значительно лучшие результаты, чем в предыдущих сетях.

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

В низкоуровневом зрении и компьютерной графике, чтобыРешение дифференциальных уравнений в частных производных (УЧП), широко используемый метод Multigrid реорганизует систему на подзадачи в нескольких масштабах, где каждая подзадача отвечает за остаточные решения более грубого и более мелкого масштаба. Альтернативой Multigrid является иерархическая базовая предварительная обработка, основанная наПеременная, представляющая вектор остатков между двумя шкалами. Было показано, что эти решатели сходятся быстрее, чем стандартные решатели, которые не знают остаточных свойств решения. Эти методы показывают, что хороший рефакторинг или предварительная обработка могут упростить оптимизацию..

остаточное обучение

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

В практической ситуации,Карты идентичности вряд ли будут оптимальными, но наш рефакторинг может помочь предварительно обработать проблему. Если оптимальная функция ближе к карте идентичности, чем к нулевой карте, решателю должно быть легче найти дрожание относительно карты идентичности, а не изучать функцию как новую функцию. Мы показываем опытным путемОбученная функция невязки обычно имеет меньший отклик, что указывает на то, что карта идентичности обеспечивает разумную предварительную обработку.

Отображение идентичности достаточно для решения вырожденной проблемы, поэтому Ws (свертка 1x1) используется только при сопоставлении размеров. Форма функции невязки переменная.

ResNet вводит остаточную сетевую структуру, то есть между входом и выходом вводится короткое соединение с прямой обратной связью (называемое стековым слоем), что чем-то похоже на «короткое замыкание» в схеме, и оно также упоминается в текст Отображение идентичности (карта идентичности y=x). Исходная сеть изучает отображение ввода-вывода H(x), а остаточная сеть изучает F(x)=H(x)−x. Структура остаточного обучения показана на следующем рисунке:Автор упомянул в статье: ошибка обучения глубоких сетей обычно выше, чем у мелких сетей, но для мелкой сети добавление нескольких слоевидентификационная карта(y=x) становится глубокой сетью, но такая глубокая сеть может получить ту же ошибку обучения, что и неглубокая сеть. Это показывает, что слои отображения идентичности лучше обучены.

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

Но почему остаточное обучение относительно проще? Интуитивно понятно, что остаточное обучение требует меньшего обучения, поскольку остаточные значения, как правило, относительно малы, а трудности обучения невелики. Кроме того, мы можем проанализировать эту проблему с математической точки зрения.Во-первых, остаточная единица может быть выражена как:Где x_{l} и x_{l+1} представляют вход и выход l-й остаточной единицы соответственно Обратите внимание, что каждая остаточная единица обычно содержит многослойную структуру. F — функция невязки, представляющая изученный остаток, h — карта идентичности, а f — функция активации ReLU. Основываясь на приведенной выше формуле, мы получаем функции обучения от мелкого слоя l к глубокому слою L как:Используя цепное правило, можно найти градиент обратного процесса:Функция потерь, представленная первым фактором формулы, достигает градиента L. 1 в скобках указывает, что механизм короткого замыкания может распространять градиент без потерь, в то время как другой остаточный градиент должен проходить через слой с весами, а градиент напрямую не передается. Остаточный градиент не так уж и случайно все -1, и даже если он небольшой, наличие 1 не приведет к исчезновению градиента. Так остаточное обучение будет легче.

Сетевая архитектура

простая сеть. Сверточные слои в основном имеют фильтры 3 × 3 и следуют двум простым правилам проектирования: (i) для одного и того же размера выходной карты объектов слои имеют одинаковое количество фильтров; (ii) если размер карты объектов уменьшен вдвое, тогда число фильтров удваивается, чтобы сохранить временную сложность каждого слоя. Мы выполняем понижающую дискретизацию непосредственно через сверточные слои с шагом 2.

По сравнению с сетью VGG наша модель,Имеет меньше фильтров и меньшую сложность. Наш 34-уровневый тест имеет 3,6 миллиарда FLOP (множественное сложение), что составляет всего 18% от VGG-19 (19,6 миллиарда FLOP).

После каждой свертки и перед активацией мы используем пакетную нормализацию (BN).Более глубокая функция невязки F для ImageNet. Слева: строительные блоки ResNet-34 (на карте объектов 56 × 56), как показано ниже. Справа: «узкое место» строительного блока ResNet-50/101/152.Размер изображения изменяется так, что его более короткие стороны выбираются случайным образом в [256,480] для масштабирования. Произвольно сэмплируйте кадр 224x224 из изображения или его горизонтального отражения, вычитая среднее значение на пиксель. Используются стандартные улучшения цвета. Мы используем пакетную нормализацию (BN) после каждой свертки и перед активацией. Инициализируйте веса и обучите все нормальные/остаточные сети с нуля. Мы используем SGD с размером мини-партии 256. Скорость обучения начинается с 0,1 и делится на 10, когда ошибка стационарна, и модель обучается до 4 итераций 60×10. Мы используем уменьшение веса 0,0001 и импульс 0,9. Мы не используем отсев.

При тестировании с целью сравнительных исследований мы использовали стандартный тест на 10 культур. Чтобы получить наилучшие результаты, мы берем полностью сверточную форму и усредняем оценки по нескольким шкалам (изображения изменяются с короткими сторонами на {224, 256, 384, 480, 640}).

Частота ошибок (%) для результатов одной модели в проверочном наборе ImageNet (за исключением тестового набора).Частота ошибок (%) для коллекции. По данным тестового сервера, первые 5 ошибок находятся в тестовом наборе ImageNet.Обучение на ЦИФАР-10. Пунктирная линия представляет собой ошибку обучения, а толстая линия представляет собой ошибку теста. Слева: обычная сеть. Погрешность обычного 110 выше 60%, что не показано. Середина: ResNets. Справа: ResNet со слоями 110 и 1202.Стандартное отклонение (станд.) отклика каждого слоя на CIFAR-10. Ответ — это выход каждого слоя 3×3 после BN и до нелинейности. Вверху: слои отображаются в исходном порядке. Внизу: ответы отсортированы в порядке убывания.Суммировать

1. Когда вход x и выход y слоя стека имеют разные размерности, то есть когда f является отображением малой размерности в многомерное, вы не можете просто добавить отображение идентичности в качестве быстрого соединения в это время, вам нужно добавить линейную проекцию Ws , равна матрице связи, и эта структура называется структурой проекции.

2. Остаточные сети можно применять не только к полносвязным слоям, но и к сверточным слоям.

3. Автор провел эксперимент, чтобы сравнить структуру проекции и структуру идентичности с экспериментальными результатами. Выяснилось, что проекционная структура имеет небольшое улучшение эффекта, но это следует отнести к дополнительным параметрам, добавляемым проекционным соединением.

4. Автор протестировал остаточную сеть с 1000 слоев, и результат теста был хуже, чем у 110 слоев, но ошибка обучения была аналогична ошибке 110 слоев.Это явление должно быть переобучением.Для небольших наборов данных 1000 слоев сеть Это относится к забою цыплят.Если вам действительно нужно использовать такую ​​​​глубокую сеть, вам может потребоваться более сильная регуляризация.

5. ResNet имеет очень хорошую производительность обобщения в классификации целей.Автор применяет его к области обнаружения целей.По сравнению с базовой сетью Faster R-CNN с VGG-16 и ResNet-101 производительность была значительно улучшена.

Приглашаем вас ознакомиться с компьютерным видением серии статей -- VGG Приглашаем вас ознакомиться с компьютерным видением серии статей -- AlexNet

ResNeXt

Aggregated Residual Transformations for Deep Neural Networks

https://arxiv.org/abs/1611.05431

Код и модели опубликованы в

https://github.com/facebookresearch/ResNeXt

Особенности1. Предложите краткую модульную сеть 2. Основная особенность — преобразование агрегации 3. Блоки все одинаковые, с небольшим количеством гиперпараметров 4. Кардинальность для измерения сложности модели 5. В ImageNet обнаружено, что увеличение количества элементов может улучшить производительность сети и является более эффективным, чем увеличение глубины и ширины. 6. ILSVRC второе место, 5K и COCO превосходят ResNet

предисловие

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

В первую очередь упоминается VGG.VGG в основном реализуется стековой сетью.Предыдущий ResNet также позаимствовал эту идею. Затем я упомянул сеть серии «Начало», которая представляет собой просто стратегию разделения-преобразования-слияния, но у сети серии «Начало» есть проблема:Настройка гиперпараметров сети более уместна, и многие параметры необходимо изменить при применении к другим наборам данных, поэтому масштабируемость является общей..

Сеть ResNeXt одновременно принимает идею стекирования VGG и идею разделения-преобразования-слияния Inception, но масштабируемость относительно сильна, и можно считать, что она в основном не меняет и не уменьшает сложность модели при повышении точности. . вот существительноеcardinality, пояснение к исходному тексту размер множества преобразований, как показано на рисунке ниже в правой части рис1 имеет мощность=32, обратите внимание сюдаКаждая агрегированная топология одинакова(Это также отличие от Inception, снижение нагрузки на дизайн).Прилагается основное предложение исходного текста, которое указывает на то, что увеличение количества элементов более эффективно, чем увеличение глубины и ширины. Экспериментальные результаты этого предложения показаны ниже:

Связанных с работой

1. Широко используются многоветвевые сети, ResNets можно рассматривать как сети с двумя ветвями, одна из которых — отображение идентичности. Глубокий нейронный лес решений представляет собой древовидную многоветвевую сеть с функцией разделения обучения; дерево решений глубокой сети также представляет собой многоветвевую структуру с множеством путей с массовым базисом.

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

3. Модель сжатия была широко изучена; этот документ отличается от моделей сжатия в том, что структура, разработанная в этой статье, имеет прочную производительность и низкую вычислительную стоимость.

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

сетевая структура

Перечислены внутренние структуры ResNet-50 и ResNeXt-50, и последние две строки показывают, что сложность параметров между ними не сильно отличается.Слева) РесНет-50. (Справа) ResNeXt-50 с шаблоном 32 × 4d (с использованием реконструкции на рис. 3(c)). Внутри скобок — форма заглушки, а вне скобок — количество блоков, уложенных на сцену. «C = 32» предполагает, что сгруппированная свертка имеет 32 группы. Количество параметров и FLOP одинаково для двух моделей.

Эти блоки имеют одинаковую топологию и связаны двумя простыми правилами, вдохновленными VGG/ResNet: (i) блоки имеют одни и те же гиперпараметры (ширину и размер фильтра), если они генерируют пространственный граф одинакового размера, и (ii) каждый раз, когда пространственная карта уменьшена в 2 раза, ширина блока увеличена в 2 раза. Второе правило гарантирует, что вычислительная сложность в FLOP (операции с плавающей запятой, умножение-сложение в #) примерно одинакова для всех блоков.

3 разныхResNeXt blocks Эквивалентный стандартный блок для ResNeXt. (а): Агрегированное остаточное преобразование, то же, что и правая часть рисунка 1. (b): блок, эквивалентный (a), реализованный как ранняя конкатенация. (c): Эквивалентно (a,b), реализовано как сгруппированная свертка. Жирные символы выделяют переформулированные изменения. Слой представлен как (количество входных каналов, размер фильтра, # выходных каналов).

рис.3.а: агрегированные остаточные преобразования; fig3.b: конкатенация после двух слоев свертки, а затем свертка, что похоже на Inception-ResNet, за исключением того, что все пути здесь имеют одинаковую топологию; рис. 3.c: используется более тонкая реализация,Групповая сверткаГрупповая свертка.

Автор четко указал в тексте, что эти три структуры строго эквивалентны, и результаты, полученные с этими тремя структурами, точно такие же.В этой статье показаны результаты рис.3.с, потому чтоСтруктура fig3.c проще и быстрее.

(Слева): преобразование для глубины агрегации = 2. (справа): эквивалентный блок, немного шире ResNeXt повышает точность без увеличения параметров и вычислений.

групповая свертка

Групповая свертка Групповая свертка, которая впервые появилась в AlexNet. Из-за ограниченных аппаратных ресурсов в то время операции свертки не могут быть обработаны на одном и том же графическом процессоре при обучении AlexNet. Поэтому автор разделяет карты функций на несколько графических процессоров для обработки, и, наконец, результаты с нескольких графических процессоров объединяются.

Интересно, что в то время групповая свертка, возможно, была инженерным компромиссом, поскольку сегодня AlexNet можно легко обучить. В то время было трудно тренироваться, а видеопамяти не хватало.Хинтону и его ученикам пришлось неделю разбивать сеть на две GTX590.Конечно, как наладить связь между двумя графическими процессорами довольно сложно.К счастью, сегодня В tensorflow они есть. Библиотека помогает нам решить проблемы со связью для обучения работе с несколькими графическими процессорами. Таким образом, Хинтон и его ученики изобрели групповую свертка Чего они не ожидали, так это того, что идея групповой свертки имеет далеко идущее влияние.Сеть SOTA (современная), все используют сгруппированные операции свертки для экономии вычислений.

Вопрос: Если сгруппированная свертка разделена на разные GPU, объем вычислений каждого GPU уменьшается до 1/группы, но если он все еще рассчитывается на том же GPU, останется ли окончательный общий объем вычислений неизменным?

На самом деле это не так, сама групповая свертка сильно уменьшает параметры, например, когда input_channel=256, output_channel=256, размер ядра=3x3: когда групповая свертка не выполняется, параметры групповой свертки составляют 256x256x3x3.

При групповой свертке, например group=2, input_channel и output_channel=128 каждой группы, количество параметров составляет 2x128x128x3x3, что составляет 1/2 от исходного.

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

Результаты экспериментов

Обучающие кривые для ImageNet-1K. (Слева): ResNet/ResNeXt-50, сохранение сложности (4,1 миллиарда FLOP, 25 миллионов параметров) (справа). Сохраняющий сложность ResNet/ResNeXt-101 (7,8 миллиарда FLOP, 44 миллиона параметров).Эксперименты по абляции на ImageNet-1K. (Вверху): ResNet-50, сохраняющий сложность (4,1 миллиарда FLOP); (внизу): ResNet-101, сохраняющий сложность (7,8 миллиарда FLOP). Коэффициенты ошибок оцениваются на одном кадре размером 224 × 224 пикселя.Сравнение с ImageNet-1K, когда количество FLOP увеличено в 2 раза по сравнению с ResNet-101. Коэффициенты ошибок оцениваются на одном кадре размером 224 × 224 пикселя. Выделенные факторы — это те, которые добавляют сложности.

Суммировать:

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

Справочная статья:

Woohoo.краткое описание.com/fear/11 отправить 1 аа 979 нет... Блог Woohoo.cn на.com/fly man JB/afraid/…