转载自CSDN, CReLU激活函数
CReLU 一种改进 ReLU 激活函数的文章,来自ICML2016.
1. 背景介绍
整个文章的出发点来自于下图的统计现象:

为了看懂上图。
(1)首先介绍一下余弦相似度(cos距离)的概念

cos距离的取值范围是 [-1,+1],距离越接近-1,表示两个向量的方向越相反,即呈负相关关系。
(2)再来介绍一下 pair filter的定义
一个卷积层有 (j=1, cdots, n) 个卷积核(filter), 一个卷积核 (ϕ_i) 对应的 pairing filter 定义为
[ϕ_i = argmin_{ϕ_j}cos<ϕ_i, ϕ_j>
]
即从所有卷积核中选择一个cos相似度最小的卷积核。
我们再回头看上图。 对所有卷积核寻找其 pair filter,并计算cos相似度得到蓝色的统计直方图。 红色的曲线,是假设随机高斯分布生成的卷积核得到的相似度统计。
现象:网络的前部,参数的分布有更强的负相关性(类似于正负对立)。随着网络变深,这种负相关性逐步减弱。
结论:网络的前部,网络倾向于同时捕获正负相位的信息,但ReLU会抹掉负响应。 这造成了卷积核会存在冗余。
2. CReLU
CReLU的定义很简单:
[ ext{CReLU(x)= Concat[ ReLU(x), ReLU(−x) ]}
]
输出维度会自动加倍。 比如
[ [−3, 1]
ightarrow egin{matrix}
[[0&1], \ [3&0]] \
end{matrix}]
在网络中的实现也很简单,甚至不用修改代码(通过scale层取反再经过一次ReLU)