Ghost卷积
1. Ghost卷积的思想
在标准卷积操作中,大量的卷积核会生成丰富的特征,但许多特征之间存在高度的冗余性。也就是说,可以通过更少的计算生成具有相似表达能力的特征。它的关键思想是:使用较少的基础卷积生成一些特征图,然后使用简单的线性操作(如逐像素点乘)生成额外的特征图,最终将这些特征图组合成输出。这种方法保留了大部分的特征信息,同时减少了计算成本。
- 基础特征生成:首先使用标准卷积生成一部分核心特征图,但数量远小于传统卷积核生成的特征图数量。
- 稀疏特征扩展:通过一系列的线性变换(例如点卷积)生成这些核心特征的“Ghost特征”,从而生成更多的特征图。这些“Ghost特征”与原始特征共享较多信息。
2. Ghost卷积的计算过程
***假设传统卷积层会生成 n
张特征图,而Ghost卷积则会生成少于 n
的特征图(例如 m
张,其中 m < n
)。然后,它会将这 m
张基础特征图通过线性变换生成余下的特征图,使得总数达到 n
。***果然又是唬人的东西。
1. 输入图像
假设我们有一个5×5的灰度图像:
Image=[1234554321123455432112345] \text{Image} = \begin{bmatrix} 1 & 2 & 3 & 4 & 5 \\ 5 & 4 & 3 & 2 & 1 \\ 1 & 2 & 3 & 4 & 5 \\ 5 & 4 & 3 & 2 & 1 \\ 1 & 2 & 3 & 4 & 5 \\ \end{bmatrix} Image=
1515124242333334242451515
2. 基础卷积
假设我们只使用一个3×3的基础卷积核来生成少量的初始特征图。卷积核为:
Kernel=[10−110−110−1] \text{Kernel} = \begin{bmatrix} 1 & 0 & -1 \\ 1 & 0 & -1 \\ 1 & 0 & -1 \\ \end{bmatrix} Kernel=
111000−1−1−1
对图像进行基础卷积(步幅为1),我们会得到一个3×3的初始特征图。为了简化,假设我们仅生成一张初始特征图:
基础卷积结果(假设只有一张初始特征图)//玛德,GPT的卷积结果是错的,GPT连最基本的四则运算都是算错的,一定小心
Initial Feature Map=[20−200020−2] \text{Initial Feature Map} = \begin{bmatrix} 2 & 0 & -2 \\ 0 & 0 & 0 \\ 2 & 0 & -2 \\ \end{bmatrix} Initial Feature Map= 202000−20−2
3. Ghost特征生成
在Ghost卷积中,我们使用一些简单的操作(如逐像素点乘或加法)生成额外的特征图。比如,可以将上述初始特征图按位置加上或乘以一个固定系数。
假设我们生成2张额外特征图,每一张特征图通过在初始特征图上加上不同的常数生成:
Ghost特征图1
Ghost Feature Map 1=Initial Feature Map+1=[31−111131−1] \text{Ghost Feature Map 1} = \text{Initial Feature Map} + 1 = \begin{bmatrix} 3 & 1 & -1 \\ 1 & 1 & 1 \\ 3 & 1 & -1 \\ \end{bmatrix} Ghost Feature Map 1=Initial Feature Map+1= 313111−11−1
Ghost特征图2
Ghost Feature Map 2=Initial Feature Map−1=[1−1−3−1−1−11−1−3] \text{Ghost Feature Map 2} = \text{Initial Feature Map} - 1 = \begin{bmatrix} 1 & -1 & -3 \\ -1 & -1 & -1 \\ 1 & -1 & -3 \\ \end{bmatrix} Ghost Feature Map 2=Initial Feature Map−1= 1−11−