‘壹’ 如何理解ReLU activation function
作者:知乎用户
链接:https://www.hu.com/question/59031444/answer/177786603
来源:知乎
着作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
你可以看:最近流行的激活函数!
一般激活函数有如下一些性质:
非线性:
当激活函数是线性的,一个两层的神经网络就可以基本上逼近所有的函数。但如果激活函数是恒等激活函数的时候,即f(x)=x,就不满足这个性质,而且如果MLP使用的是恒等激活函数,那么其实整个网络跟单层神经网络是等价的;
可微性:
当优化方法是基于梯度的时候,就体现了该性质;
单调性:
当激活函数是单调的时候,单层网络能够保证是凸函数;
f(x)≈x:
当激活函数满足这个性质的时候,如果参数的初始化是随机的较小值,那么神经网络的训练将会很高效;如果不满足这个性质,那么就需要详细地去设置初始值;
输出值的范围:
当激活函数输出值是有限的时候,基于梯度的优化方法会更加稳定,因为特征的表示受有限权值的影响更显着;当激活函数的输出是无限的时候,模型的训练会更加高效,不过在这种情况小,一般需要更小的Learning Rate。
Sigmoid
常用的非线性的激活函数,数学形式如下:
http://mmbiz.qpic.cn/mmbiz_png/gHia5yMFD11waauyA/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1
Sigmoid 函数曾经被使用的很多,不过近年来,用它的人越来越少了。主要是因为它的缺点(输入较大或较小的时候,最后梯度会接近于0),最终导致网络学习困难。
所以,出现了另一种激活函数:ReLU
ReLU
f(x)=max(0,x)
优点:
使用 ReLU得到的SGD的收敛速度会比 sigmoid/tanh 快。这是因为它是linear,而且ReLU只需要一个阈值就可以得到激活值,不用去计算复杂的运算。
缺点: 训练过程该函数不适应较大梯度输入,因为在参数更新以后,ReLU的神经元不会再有激活的功能,导致梯度永远都是零。
为了针对以上的缺点,又出现Leaky-ReLU、P-ReLU、R-ReLU三种拓展激活函数。
Leaky ReLUs
该函数用来解决ReLU的缺点,不同的是:
f(x)=αx,(x<0)
f(x)=x,(x>=0)
这里的 α 是一个很小的常数。这样,即修正了数据分布,又保留了一些负轴的值,使得负轴信息不会全部丢失。
Parametric ReLU
对于 Leaky ReLU 中的α,通常都是通过先验知识人工赋值,可以观察到损失函数对α的导数是可以求得的,可以将它作为一个参数进行训练。
《Delving Deep into Rectifiers: Surpassing Human-Level Performance on
ImageNet Classification》
该文章指出其不仅可以训练,而且效果特别好。公式非常简单,其中对α的导数:
data:image/gif;base64,ABh6FO1AAAAABJRU5ErkJggg==
原文使用了Parametric ReLU后,最终效果比不用提高了1.03%。
Randomized ReLU
Randomized Leaky ReLU 是 Leaky ReLU 的随机版本(α 是随机选取)。 它首次是在NDSB 比赛中被提出。
核心思想就是,在训练过程中,α是从一个高斯分布U(l,u)中随机出来的,然后再测试过程中进行修正(与Dropout的用法相似)。
数学表示如下:
http://mmbiz.qpic.cn/mmbiz_png/SyQHYB0nGY4ibOSbYg/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1
在测试阶段,把训练过程中所有的αji取个平均值。NDSB冠军的α是从 U(3,8) 中随机出来的。在测试阶段,激活函数如下:
http://mmbiz.qpic.cn/mmbiz_png/njaAic1O4nFUCfl1Q/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1
‘贰’ 凸函数的定义是什么
凹函数:设函数f(x)在[a,b]上有定义,若[a,b]中任意不同两点x1,x2都成立:f[(x1 x2)/2]>=[f(x1) f(x2)]/2 则称f(x)在[a,b]上是凹的。
函数图形:弧段像∪形的,比如y=x^2的函数.
凸函数:设函数f(x)在[a,b]上有定义,若[a,b]中任意不同两点x1,x2都成立:f[(x1 x2)/2]<=[f(x1) f(x2)]/2 则称f(x)在[a,b]上是凸的。
函数图形:弧段像∩形的,比如y=-x^2的函数.
f(x)=lgx是凸函数,根据函数图象判断.一般开口向下的二次函数是凸函数,开口向上的二次函数是凹函数。
‘叁’ 简单的数学.什么是凸函数
凸函数:图象向上(或者斜向上)凸起的函数,就是凸函数。凸函数的二阶导数小于0;
凹函数:图象向上(或者斜向上)凹进的函数,就是凹函数。凹函数的二阶导数大于0。
‘肆’ 凹函数和凸函数的定义到底是什么
凹函数是一个定义在某个向量空间的凸集C(区间)上的实值函数f。设f为定义在区间I上的函数,若对I上的任意两点X1<X2和任意的实数λ∈(0,1),总有f(λx1+(1-λ)x2)≤λf(x1)+(1-λ)f(x2), 则f称为I上的凹函数。
凸函数是数学函数的一类特征。凸函数就是一个定义在某个向量空间的凸子集C(区间)上的实值函数。
凸函数是指一类定义在实线性空间上的函数。
(4)单层网络函数是凸函数什么意思扩展阅读
每一个在内取值的线性变换都是凸函数,但不是严格凸函数,因为如果f是线性函数,那么f(a + b) = f(a) + f(b)。如果我们把“凸”换为“凹”,那么该命题也成立。
每一个在内取值的仿射变换,也就是说,每一个形如f(x) = aTx + b的函数,既是凸函数又是凹函数。
每一个范数都是凸函数,这是由于三角不等式。
如果f是凸函数,那么当t > 0时,g(x,t) = tf(x / t)是凸函数。
单调递增但非凸的函数包括和g(x) = log(x)。
非单调递增的凸函数包括h(x) = x2和k(x) = − x。
函数f(x) = 1/x2,f(0)=+∞,在区间(0,+∞)内是凸函数,在区间(-∞,0)内也是凸函数,但是在区间(-∞,+∞)内不是凸函数,这是由于x = 0处的奇点。
‘伍’ 什么是凸函数什么是上凸函数什么是凸函数的中值特性
1.数学上定义凸函数是指在连续的函数上取两个点x1,x2,两个点分别对应的函数值f(x1),f(x2)满足f((x1+x2)/2)≥(f(x1)+f(x2))/2称为凸函数;如果是≤称为凹函数;
2.以前有上凸,上凹函数,下凸,下凹函数之分,但是为了区分,现在的教材统称为两种函数,即凹函数和凸函数;
3.定义中的不等式称为中值特性.