为什么要引入激活功能?
如果不使用激励函数 = x),这种情况下每一层的输出都是上层输入的线性函数,很容易验证。不管你的神经网络有多少层,输出都是输入的线性组合,相当于没有隐藏层的效果。这种情况是最原始的感知器。
由于上述原因,我们决定引入非线性函数作为激励函数,这样深度神经网络才有意义。最早的想法是sigmoid函数或tanh函数,它的输出是有界的,可以很容易地作为下一个输入。激活函数的作用是增加神经网络模型的非线性。否则你想想,每一层没有激活函数就相当于矩阵相乘。就算堆几层,也只是矩阵乘法。所以如果你没有非线性结构,那它根本就不是神经网络。
为什么要引入Relu?
第一,用sigmoid等函数计算激活函数时,计算量大。用反向传播计算误差梯度时,求导涉及除法,比较大。但是使用Relu激活功能,整个过程的计算量节省了不少。
第二,对于深度网络,当sigmoid函数向后传播时,容易使梯度消失。
当然,relu也有一些改进,比如prelu,random relu等。,并且在不同的数据集上训练速度或精度会有所提高。详见相关论文。
再补充一句,目前的主流做法会多走一步批量归一化,以保证每层网络的输入尽可能具有相同的分布。最新论文,在加入旁路连接后,发现改变批量归一化的位置会有更好的效果。有兴趣可以看看。
深度学习的基本原理是基于人工神经网络。信号从一个神经元进入,并通过非线性激活函数传递到下一个神经元。该层神经元激活后,继续向下传递,以此类推,直到到达输出层。正是由于这些非线性函数的重复叠加,神经网络才有足够的能力捕捉复杂的模式,获得各领域的最新成果。显然,激活函数在深度学习中起着重要的作用,也是活跃的研究领域之一。目前激活函数的选择不是能否模拟真实神经元,而是是否便于优化整个深层神经网络。先简单说一下各种函数的特点,为什么现在首选ReLU函数。
Sigmoid函数
ELU还提出要解决热路中存在的问题。显然,ELU拥有ReLU的所有基本优势,而且:
不会有交易记录问题
输出的平均值接近0,以零为中心
它的一个小问题是计算量有点大。类似于Leaky ReLU,虽然理论上比ReLU好,但没有很好的证据证明eLU在实践中总是比ReLU好。
总结
建议使用ReLU功能,但要注意初始化和学习率的设置;你可以尝试使用漏ReLU或eLU函数;不建议Tanh,尤其是sigmoid函数。
了解有关激活功能的更多信息
途经:https://www.zhihu.com/question/29021768
1.《tanh 神经网络中的激活函数具体是什么?为什么ReLu要好过于tanh和sigmoid function?》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《tanh 神经网络中的激活函数具体是什么?为什么ReLu要好过于tanh和sigmoid function?》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/shehui/1689470.html