Are you sure you want to delete this access key?
1.Sigmoid
图像大致长这样
可以看出,会将所有数据映射到 (0,1) 区间上,若是正数,映射后的值大于0.5;若为负数,映射后的值小于0.5;若为0,则为0.5
可是,Sigmoid在DeepLearning的时候会随着层数的增加loss反而飙升
其实在input这边,gradient很小,参数几乎还是随机更新;而output这边,gradient很大,参数更新很快,几乎就收敛了(converge)。导致input这边参数还在随机更新的时候,output这边就已经根据random出来的参数找到了local minimum,然后你就会观察说糟糕了,loss下降的速度很慢
因为Sigmoid将负无穷到正无穷的数据硬压到(0,1),当input很大的时候,其实output的结果变化很小。本来影响就很小,你又叠了很多层,影响被迫衰减,就造成了input几乎对loss产生不了什么影响。
2.ReLu
为了解决上面的问题,应该将激活函数换成ReLu
图像大致长这样
当input小于等于0的时候,直接变成0。这就意味着有些神经元(neuron)会对整个神经网络没有任何的影响,所以这些神经元是可以被拿掉的
那些没用的神经元直接去掉
这些就不会存在很小的gradient,就有效地减免一开始Sigmoid中产生的问题
其实ReLu还有其他的形式
3.Maxout
其实ReLu是Maxout中的一种。
拿下图举个例子
你想如果在ReLu中,负的没有,输入是不是跟这个一样呢?
那我们再从理论解释一下这个,如果将输送给w2的权重和偏差全部设为0,得出的图像是不是就是x轴,将w1的权重设为1,偏差设为0,是不是就是ReLu了呢?
但是Maxout的权重和偏差不是固定的,它是可以通过不同的数据学出不同的曲线
综上所述,ReLu 和 Maxout 都是根据不同的自身的判别条件而自动剔除一些数据,从而产生瘦的神经网络,不同的数据会产生不同的神经网络架构
4.Tanh
图像大致长这样
tanh的特点:
1.梯度更新更快 由上图可以发现,当输入变化很大,原本的sigmoid输出变化很少,这不利于梯度更新。而tanh可以有效的解决这个问题
2.不变号 正就被映射成正的,负的被映射成负的,零就被映射成零。另外,它过原点。
5.Softplus
它相对于ReLu相对来说更加平滑,不过同样是单侧抑制
6.Swish
主要优点
1. 无界性有助于慢速训练期间,梯度逐渐接近0并导致饱和;
2. 导数恒大于0
3. 平滑度在优化和泛化有很大作用
7.Elu
Elu具有Relu的全部优点,没有Dead Relu问题,输出值的平均值接近于0,以0为中心
Elu通过减少偏置偏移的影响,使正常梯度更接近于单位自然梯度,从而使均值向零加速学习
Elu在较小的输入时会饱和至负值,从而减少前向传播的变异和信息
但它相对来说计算会麻烦一点,而且理论上ELU应该比RELU,实操上不一定都比RELU好
8.Softsign
9.Selu
10.Exponential
11.Softmax
softmax将输入映射成[-1,1]输出,可以视作为概率,但是当输入值很大的时候,softmax几乎是无动于衷的,即为梯度下降或者消失了。
参考文献:
https://www.youtube.com/watch?v=xki61j7z-30&list=PLJV_el3uVTsPy9oCRY30oBPNLCo89yu49&index=16
Press p or to see the previous file or, n or to see the next file
Are you sure you want to delete this access key?
Are you sure you want to delete this access key?
Are you sure you want to delete this access key?
Are you sure you want to delete this access key?