CReLU激活函数

版权声明:本文为博主原创文章,转载请注明出处 https://blog.csdn.net/shuzfan/article/details/77807550

一种改进ReLU激活函数的文章,来自ICML2016.

文章链接: 《Understanding and Improving Convolutional Neural Networks via Concatenated Rectified Linear Units》

1. 背景介绍

整个文章的出发点来自于下图的统计现象:

这里写图片描述

为了看懂上图。

(1)首先介绍一下余弦相似度(cos距离)的概念

cos距离的取值范围是 [-1,+1],距离越接近-1,表示两个向量的方向 越相反,即呈 负相关关系。

(2)再来介绍一下pair filter的定义

一个卷积层有 \(j=1,…,n\) 个卷积核(filter)。 一个卷积核 \(\phi_{i}\)
对应的pairing filter定义为 \(\overline{\phi_{i}} =
\mathop{\arg\min}_{\phi_j}cos<\phi_{i},\phi_{j}>\). 即从所有卷积核中选择一个cos相似度最小的卷积核。

我们再回头看上图。 对所有卷积核寻找其pair filter,并计算cos相似度得到蓝色的统计直方图。 红色的曲线,是假设随机高斯分布生成的卷积核得到的相似度统计。

现象:

网络的前部,参数的分布有更强的负相关性(类似于正负对立)。随着网络变深,这种负相关性逐步减弱。

结论:

网络的前部,网络倾向于同时捕获正负相位的信息,但ReLU会抹掉负响应。 这造成了卷积核会存在冗余。

2. CReLU

CReLU的定义很简单:

\(CReLU(x) = [ReLU(x),ReLU(-x)]\)

输出维度会自动加倍。 比如 \(-3 \rightarrow [0,3]\) \(\quad3 \rightarrow [3,0]\)

在网络中的实现也很简单,甚至不用修改代码(通过scale层取反再经过一次ReLU)

更多实验结果和讨论请参看原文。

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页