Введение в 3D свертки | Несколько бумажных заметок | R2D C3D P3D MCx R(2+1)D

искусственный интеллект

[Front Front]: Когда я однажды общался с фанатами, я получил предложение:

Люди зажигают книгу навыков, а не разовую зарядку. Повторяющееся подбрасывание, повторная критика, многократное отрицание и утверждение углубляют ось памяти. --- болельщик

0 Предисловие

Я увидел эту статью, потому что я видел определенную статью о медицинских изображениях в Nature, в которой использовались эти алгоритмы, алгоритмы трехмерной свертки R3D, MC3 и R2+1D. Поскольку понимание алгоритма 3D-свертки относительно ограничено, я начал дополнять алгоритм в этой области.

1 R2D

Это делается для того, чтобы рассматривать видео как изображение. Если видео состоит из 10 кадров, оно обрабатывается как 10-канальное изображение. Если это 10-кадровое цветное изображение, то это 30-канальное изображение.

Обычно видео имеет четыре измерения:channel×time×h×wchannel \times time \times h \times w

Предположим, есть 10-кадровое цветное видео 1080x960, тогда видео, преобразованное в тензор, должно быть:

3×10×960×10803\times 10 \times 960\times 1080

Но для алгоритма R2D тензор для этого видео:

30×960×108030 \times 960 \times 1080

В этом случае от информации о времени полностью отказываются. Конечно, подобно этому алгоритму R2D, существует также алгоритм, называемыйf-R2DАлгоритм f-R2D состоит в том, чтобы выполнять 2D-операции для каждого кадра, а затем объединять всю информацию в окончательный глобальный слой пула, который также жертвует непрерывной во времени информацией с определенной точки зрения.

  • f-R2D — это сокращение от R2D на основе кадров.

2 C3D

Это метод с использованием 3D-свертки.Для сети, построенной с помощью 3D-свертки, следует отметить, что при использовании слоя объединения параметры шага должны быть 3, не только размер шага w и h, но и время размерность размер шага.

Такая структура сети приведена в документе C3D:8 сверточных слоев и 2 полносвязных слоя с 5 объединяющими слоями (фильтр: 2×2×2, шаг: 2×2×2, кроме фильтра первого объединяющего слоя: 1×2×2, шаг: 1×2×2)

2.1 R3D

Мы все знаем о R2D и C3D, так что же такое R3D? На самом деле это C3D, который использует сеть Resnet.Видно, что значение R в этом R3D является значением сети Resnet.

3 P3D

Это похоже на концепцию, изначально предложенную googleNet в 2D-сети, которая разбивает ядро ​​свертки 7x7 на два: 1x7 и 7x1.

P3D — это значение псевдо-3D-псевдо-3D-свертки, которая разбивает ядро ​​свертки 3x3x3 на пространственную свертку 1x3x3 и временную свертку 3x1x1. Преимущества этого:

  • Уменьшить объем расчета, это точно
  • Параметры обучения классической модели свертки 2D-изображения можно использовать в качестве инициализации параметров слоя пространственной свертки 3D-модели.

Сеть P3D предлагает неиспользуемые блоки 3. Чтобы быть разумным, я думаю, что эти три не сильно отличаются:

Еще несколько слов, свертка P3D3D-свертка, разделенная на 2D-пространственную и 1D-временную свертки, что предотвращает внедрение трансферного обучения в остаточном модуле реснета:

Результаты также приведены в документе о влиянии трех стилей ABC на этот P3D:Наилучший эффект дает P3D Resnet, представляющий собой смесь трех модулей в следующем порядке:

P3D-A->P3D-B->P3D-C

Но я все еще думаю, что это немного избыточно и не имеет смысла.

4 MCx

Этот метод представляет собой комбинацию методов R2D и R3D (C3D), MC — это значение смешанной свертки Mixed Convolution. Давайте сначала посмотрим на сравнительную диаграмму структуры сети:

  • Структура этого MCx такова, что первые 3 слоя представляют собой 2D-свертки, за которыми следуют две 3D-свертки, потому что есть 3 слоя 2D-сверток, а затем они заменяются 3D-свертками, поэтому это называется MC3;
  • Последний rMCx противоположен MCx, это сначала 3D-свертка, затем 2D-свертка, здесь rMC3;

2D или 3D в первую очередь зависит от:Знаете ли вы, зависит ли обработка информации о времени от мелкой или глубокой сети?. Экспериментальные результаты, приведенные в статье, показывают, что информация о времени должна больше зависеть от глубокой сети, а эффект от MCx лучше.

5 R(2+1)D

Это и MCx относятся к одной и той же гибридной свертке, использующей 2D-свертку и 1D-свертку для аппроксимации 3D-свертки.На самом деле, судя по картинке, между этим и P3D-A нет никакой разницы, на самом деле я не думаю, что есть какая-то разница. Тяжело сказать:

  • То есть первый слой P3D представляет собой 2D-свертку, за которым следует модуль P3D, а сеть R(2+1)D представляет собой такой модуль с самого начала;
  • Модуль R(2+1)D вычисляет гиперпараметры, и за счет увеличения количества каналов разложенная модель R(2+1)D имеет то же количество параметров, что и предыдущая 3D-модель. Где здесь контролируется количество каналов? После 2D-свертки количество каналов карты объектов, которые необходимо ввести для 1D-свертки по времени, как видно из рисунка выше.MiM_iэтот параметр. Этот параметр можно рассчитать:

Mi=floor(td2Ni1Nid2Ni1+tNi)M_i=floor(\frac{td^2N_{i-1}N_i}{d^2N_{i-1}+tN_i})

Короче говоря, преимущества этого по сравнению с C3D в статье (не по сравнению с P3D):

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

Последнее изображение:


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

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

  1. C3D: изучение пространственно-временных характеристик с помощью трехмерных сверточных сетей
  2. P3D: изучение пространственно-временного представления с псевдо-3D остаточными сетями
  3. R(2+1)D:A Closer Look at Spatiotemporal Convolutions for Action Recognition