机器学习笔记-有关ReLU非线性的理解

如果单独看一个ReLU激活函数,那它就是线性的,但是这种激活函数在多层的神经网络中却是非线性的。在简单的三层神经网络中,我们一般使用Sigmoid函数或者Tanh函数作为激活函数,这是因为当神经网络的层数较少时,少量的ReLU训练出来的网络拟合能力可能并没有Sigmoid函数好。但是在深度神经网络中,网络层的层数高达数百数千层,在这么多层的情况下再去使用Sigmoid函数作为激活函数就会大大减慢运行速率,并且还可能存在梯度消失的情况,所以在深度神经网络中使用ReLU函数要比Sigmoid函数好。
至于为什么ReLU函数是非线性函数?
ReLU函数的非线性能力是由负值带来的,如果ReLU的自变量全部都是正数,那么ReLU就没有意义了,所以可以片面的理解,输入的负数越多,ReLU的拟合非线性的能力就越大。很显然单个ReLU函数并没有非线性能力,然后很多个ReLU函数连接在一起就存在非线性能力,可以参考ReLU非线性能力
关于ReLU非线性能力更深层的解答,可以参考ReLU作为分段线性激活函数,如何在神经网络中引入非线性?

你可能感兴趣的:(机器学习笔记,机器学习,神经网络,深度学习)