[Front Front]: Когда я однажды общался с фанатами, я получил предложение:
Люди зажигают книгу навыков, а не разовую зарядку. Повторяющееся подбрасывание, повторная критика, многократное отрицание и утверждение углубляют ось памяти. --- болельщик
0 Предисловие
Я увидел эту статью, потому что я видел определенную статью о медицинских изображениях в Nature, в которой использовались эти алгоритмы, алгоритмы трехмерной свертки R3D, MC3 и R2+1D. Поскольку понимание алгоритма 3D-свертки относительно ограничено, я начал дополнять алгоритм в этой области.
1 R2D
Это делается для того, чтобы рассматривать видео как изображение. Если видео состоит из 10 кадров, оно обрабатывается как 10-канальное изображение. Если это 10-кадровое цветное изображение, то это 30-канальное изображение.
Обычно видео имеет четыре измерения:
Предположим, есть 10-кадровое цветное видео 1080x960, тогда видео, преобразованное в тензор, должно быть:
Но для алгоритма R2D тензор для этого видео:
В этом случае от информации о времени полностью отказываются. Конечно, подобно этому алгоритму 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-свертки по времени, как видно из рисунка выше.этот параметр. Этот параметр можно рассчитать:
Короче говоря, преимущества этого по сравнению с C3D в статье (не по сравнению с P3D):
- Во-первых, между двумя подсвертками есть дополнительная нелинейная операция, по сравнению с исходной трехмерной сверткой с тем же количеством параметров нелинейная операция удваивается, что повышает выразительную способность сети.
- Второе преимущество заключается в том, что пространственно-временная декомпозиция позволяет декомпозировать процесс оптимизации.На самом деле, ранее было обнаружено, что трехмерная пространственно-временная свертка скручивает пространственную информацию и динамическую информацию вместе, что нелегко оптимизировать. 2+1-мерную свертку легче оптимизировать и она имеет меньшие потери.
Последнее изображение:
Резюме: Вообще говоря, работы по 3D-свертке в основном представляют собой эксперименты, и результаты экспериментов используются для подсчета выводов. Максимально используйте параметры предварительно обученной 2D-модели.
Справочные документы:
- C3D: изучение пространственно-временных характеристик с помощью трехмерных сверточных сетей
- P3D: изучение пространственно-временного представления с псевдо-3D остаточными сетями
- R(2+1)D:A Closer Look at Spatiotemporal Convolutions for Action Recognition