Depthwise(DW)свертка сPointwise(PW)Свертка, известная под общим названием Depthwise Separable Convolution (см.Xception
), эта структура похожа на обычную операцию свертки и может использоваться для извлечения признаков, но по сравнению с обычной операцией свертки количество параметров и стоимость операции ниже. Поэтому такая структура, как MobileNet, будет встречаться в некоторых облегченных сетях.
Обычная операция свертки (см. операцию)
Для 5×5 пикселей входное трехканальное цветное изображение (форма 5×5×3). После слоя свертки ядра свертки 3 × 3 (при условии, что количество выходных каналов равно 4, форма ядра свертки равна 3 × 3 × 3 × 4), и, наконец, выводятся 4 карты признаков. размер такой же как и у входного слоя.тот же (5х5), если не размер становится 3х3.
Depthwise Separable Convolution
Глубинная разделимая свертка состоит в том, чтобы разложить полную операцию свертки на два этапа, а именноDepthwise Convolution
иPointwise Convolution
.
Depthwise Convolution
В отличие от обычных операций свертки, одно ядро свертки глубокой свертки отвечает за один канал, а один канал свертывается только одним ядром свертки. В упомянутой выше традиционной свертке каждое ядро свертки работает одновременно с каждым каналом входного изображения. Также для трехканального входного цветного изображения размером 5×5 пикселей (форма 5×5×3) глубинная свертка сначала подвергается первой операции свертки В отличие от обычной свертки, описанной выше, DW находится полностью в двух измерениях в плоскости. Количество ядер свертки такое же, как и количество каналов в предыдущем слое (однозначное соответствие между каналами и ядрами свертки). Таким образом, трехканальное изображение обрабатывается для создания трех карт объектов (при одинаковом отступе размер такой же, как у входного слоя, то есть 5 × 5), как показано на следующем рисунке.
Количество карт объектов после завершения глубинной свертки равно количеству каналов во входном слое, и карту объектов нельзя расширить. Кроме того, эта операция выполняет операцию свертки независимо для каждого канала входного слоя и неэффективно использует информацию о признаках разных каналов в одном и том же пространственном положении. Следовательно, для объединения этих карт объектов для создания новой карты объектов требуется точечная свертка.
Pointwise Convolution
Операция точечной свертки очень похожа на обычную операцию свертки, а размер ее ядра свертки равен1×1×M,M - количество каналов в предыдущем слое. Следовательно, операция свертки здесь будет выполнять взвешенную комбинацию предыдущей карты в направлении глубины для создания новой карты объектов. Существует несколько ядер свертки и несколько выходных карт функций. Как показано ниже.
Для двух приведенных выше случаев мое понимание заключается в следующем:
Регулярная свертка:Количество наших ядер - это количество каналов, которые мы окончательно выводим, а количество самих каналов - это количество каналов изображений. Предполагая, что изображение раскрашено 3 каналами, количество каналов, которые мы окончательно выводим после свертки, равно 100, тогда у нас есть 100 групп из 3 каналов Размер ядра свертки 3 * 3, 100 [3, 3, 3] конв [image_height, image_width, 3], при условии, что padding = «такой же», окончательный вывод [image_height, image_width , 100], это расчет обычного процесса свертки.
Отделимая по глубине свертка:
Мы назначаем ядро свертки каждому каналу.Предполагая, что изображение имеет [image_height, image_width, 100], у нас есть 100 ядер свертки, каждое из которых [3,3], предполагая, что padding="одинаковый", так что у нас все еще есть карта объектов [image_height, image_width, 100], эта часть завершается глубинной сверткой, а затем мы получаем 100 карт объектов, которые мы получаем, путем свертки K групп [1, 1, 100], первая карта One сгенерирует 100 промежуточных объектов A, вторая карта сгенерирует 100 промежуточных объектов B, а третья карта сгенерирует 100 промежуточных объектов C. Объединение ABC вместе сформирует промежуточный объект длиной 300. После того, как 300 промежуточных объектов перекроются с различных весов для создания новой карты объектов и т. д., в конечном итоге будет сформировано K различных карт объектов.