HetConv: Heterogeneous Kernel-Based Convolutions for Deep CNNs 論文解析——異構卷積訓練:提升效率而不損準確度

前言

HetConv: Heterogeneous Kernel-Based Convolutions for Deep CNNs CVPR2019的論文作者來自印度坎普爾理工學院,QS150左右,跟國內的哈爾濱工業大學差不多,這篇論是用一個卷積方法,在不損失準確度的前提下,提高效率。新穎程度不高,可解釋性不是很強,至於性能提高的理由作者並沒有給出很充分了證明。但是,其方法簡單,可以廣泛用於自己的模型上,對產業可能有些許作用,但是對於科研作用不大。
廢話不多說,開始正文:


Motivation

現有的Existing convolutional filters大致可以分爲三類:

  1. Depthwise Convolutional Filter (DWC)
  2. Pointwise Convolutional Filter(PWC)
  3. Groupwise Convolutional Filter(GWC)

現在大多數網絡都是使用上述三種的組合來提高網絡的效率

但是人爲的設計一個組合方案是 require a lot of work 的。而且,現有的提高model efficiency的方法大多是通過犧牲accuracy來提高FLOPs,所以作者希望找到一個通用的方法來解決在不犧牲accuracy前提下設計卷積方式的問題,,而且實驗表明在不減少accuracy的前提下,運算效率可以提高3倍到8倍。

Related Works

1 Efficient Convolutional Filter

新型卷積劃分如下:標準卷積、Depthwise 卷積、Pointwise 卷積。
(DWC PWC的解釋:鏈接
後三種卷積可以取代標準卷積,使用方式一般是 Depthwise + Pointwise 或者是 Group + Pointwise 這樣的兩層取代已有網絡架構中的標準卷積的一層,成功的在不損失精度的前提下實現了 FLOPs 提升,但是帶來副作用是提高了網絡延遲(latency)關於什麼叫latency可以這樣理解:將GPU中的並行計算想象成兩條賽道上的100米賽跑,兩位選手都完成才能算作都任務完成,而總的完成時間是跑得慢的那個。

關於latency論文中的解釋:
在這裏插入圖片描述
舉幾個例子:

GoogleNet [36] use the inception module and irregular stacking architecture. Inception module uses GWC and PWC to reduce FLOPs.


ResNet [8, 9] uses a bottleneck structure to design an efficient architecture with residual connection. They use PWC and the standard convolution that help to go deeper without increasing the model parameter and reduces the FLOPs explosion

以GoogleNet中的Inception爲例:
在這裏插入圖片描述
在這一步運算中:1、2、3、4 的運算很明顯是4部分要快一些,然而這一步的運算時間是以1、2、3、4中最慢的作爲最終的運算時間。

下面這兩圖在Filter的層面說明了爲什麼HetConv沒有latency
在這裏插入圖片描述
在這裏插入圖片描述

2 Model Compression

作者關於這部分的介紹很清楚,我不再贅述,簡單總結一下:模型壓縮的缺點是需要在訓練一個完整模型的技術上進行壓縮,過程繁瑣。
在這裏插入圖片描述

HetConv

原理介紹

很簡單,只需要瞭解如下幾點內容:

  1. 核心思想是通過KKK*K的kernel和111*1的kernel的組合來達到目的
  2. 使用超參數P來控制組合的方式
  3. 基本方法是在現有的模型下,將一定數量的333*3的kernel用111*1的kernel替換,P表示替換的程度,是一個權衡因子,P越表示越接近Standard Convolutional Filter

M 表示Standard Convolutional Filter的數量, 設置超參數P後,111*1kernerl的數量爲M(11/P)M*(1-1/P),如下圖。
在這裏插入圖片描述

性能分析

作者花了很大的篇幅來進行性能的分析,首先分析了,爲了HetConv能在不損失Accuracy的前提下提高efficiency(回答的很草率,而且計算方式也非常簡單明瞭):
在這裏插入圖片描述
對P對效率提升的作用看下圖:
在這裏插入圖片描述
在這裏插入圖片描述

個人評價:相信這個Simple 的方法能夠在不降低準確度的範圍內提高速度,說白了就是Resnet Googlenet方法的變種(雖然還是一篇CVPR2019)

實驗結果

VGG-16 on CIFAR-10在這裏插入圖片描述
論文中有Notaion,不好複製粘貼,所以我就沒貼上來。P就是HetConv中的超參數P

與模型壓縮相比
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章