此方法来源于:
ICML2016 Understanding and Improving Convolutional Neural Networks via Concatenated Rectified Linear Units.
这篇论文~~
实验代码 :https://github.com/albanie/CReLU
可以在理解原理的基础上撸一遍。
在tensorflow中也集成了这个CRelu,API为:tf.nn.crelu()
论文作者在 AlexNet 的模型上做了一个有趣的实验,发现:低层的卷积层中的一些滤波器核存在着负相关程度很高的滤波器核,而层次越高的卷积层,这一现象越不明显。作者把这一现象称为 pairing phenomenon。这是基础思想。
文中提到一个叫pair filter的概念,定义如下:
设网络的某层卷积层的滤波器组的卷积核组表示为
ϕ⃗ 1,ϕ⃗ 2,⋯,ϕ⃗ n
,定义的 pairing filter 为
ϕ⃗ ∗i=argminϕ⃗ j⟨ϕ⃗ i,ϕ⃗ j⟩
,其中
j=1,2,⋯,n
,
n
为该层卷积层的滤波器数目。滤波器
ϕ⃗ i
和
ϕ⃗ ∗i
之间的余弦相似度记为
μϕi
计算cos相似度得到统计直方图~~
CReLU是为了消除 ReLU 带来的冗余而提出,设 [⋅]+=max(⋅,0) ,则 CReLU 定义如下:
CReLU(x)=([-x]+,[x]+)
举个栗子,-1带入公式,则CReLU(-1)=(0,1)。
在实际中用的时候,需要注意,你要输入的特征图个数是ReLU时的一半即可。