1.为什么使用Relu激活函数,作用是什么?
如不特别说明,激活函数一般是指非线性激活函数,使用激活函数的目的是为了提高网络的非线性建模能力,如果只是卷积和全连接操作,那么网络模型还只是在线性空间上的表达
1)sigmoid激活函数:处处可导,两侧接近于0.sigmoid函数的软饱和性限制了神经网络的发展,网络传导的时候,若节点调入饱和区,(sigmoid关于输入的导数)改点导数为0,也就表示为前一层向底层传递的梯度变得非常小(实际上我们可以认为前一层和后一层大致相同,梯度为0,我们称之为梯度消失),虽然sigmoid会导致梯度消失,但是他也有积极地一面。例如它在物理意义上最为接近生物神经元。 (0, 1) 的输出还可以被表示作概率,或用于输入的归一化,代表性的如Sigmoid交叉熵损失函数
2)ReLU:①单侧抑制 ②相对宽阔的兴奋边界 ③稀疏激活性。 在x<0 时硬饱和。由于 x>0时导数为 1,所以,ReLU 能够在x>0时保持梯度不衰减,从而缓解梯度消失问题。但随着训练的推进,部分输入会落入硬饱和区,导致对应权重无法更新。这种现象被称为“神经元死亡”。
针对这一题来说,可以认为Relu可以解决梯度消失问题,稀疏激活性,单侧抑制等
参考:
http://www.cnblogs.com/neopenx/p/4453161.html
深度学习大讲堂(权威):https://zhuanlan.zhihu.com/p/22142013
2)梯度弥散是什么?
随着网络深度的增加,整体的损失函数相对于最初几层的权值的导数变得很小,以至于对样本不能很好地学习。
解决方法:(DNN)隐层的激活函数使用了 ReLU,改善了“梯度弥散”,通过正则化+dropout 改善了过拟合的现象,在输出层 是softmax 作为激活函数。目标函数是交叉熵。CNN解决梯度弥散是使用的权值共享的策略。
参考:梯度弥散 - Losteng的博客 - CSDN博客 http://blog.csdn.net/losteng/article/details/51020552
3)dropout是怎么实现的
http://blog.csdn.net/hjimce/article/details/50413257