您的位置首页百科快答

神经网络中ReLU是线性还是非线性函数?如果是线性的话为什么还说它做激活函数比较好?

神经网络中ReLU是线性还是非线性函数?如果是线性的话为什么还说它做激活函数比较好?

的有关信息介绍如下:

神经网络中ReLU是线性还是非线性函数?如果是线性的话为什么还说它做激活函数比较好?

百度知道真是烂得可以,前面几个回答答非所问,实在看不过去了。

relu是非线性激活函数

题主的疑问在于,为什么relu这种“看似线性”(分段线性)的激活函数所形成的网络,居然能够增加非线性的表达能力。

1、首先什么是线性的网络,如果把线性网络看成一个大的矩阵M。那么输入样本A和B,则会经过同样的线性变换MA,MB(这里A和B经历的线性变换矩阵M是一样的)。

2、的确对于单一的样本A,经过由relu激活函数所构成神经网络,其过程确实可以等价是经过了一个线性变换M1,但是对于样本B,在经过同样的网络时,由于每个神经元是否激活(0或者Wx+b)与样本A经过时情形不同了(不同样本),因此B所经历的线性变换M2并不等于M1。因此,relu构成的神经网络虽然对每个样本都是线性变换,但是不同样本之间经历的线性变换M并不一样,所以整个样本空间在经过relu构成的网络时其实是经历了非线性变换的。

3、还有一种解释就是,不同样本的同一个feature,在通过relu构成的神经网络时,流经的路径不一样(relu激活值为0,则堵塞;激活值为本身,则通过),因此最终的输出空间其实是输入空间的非线性变换得来的。

4、更极端的,不管是tanh还是sigmoid,你都可以把它们近似看成是分段线性的函数(很多段),但依然能够有非线性表达能力;relu虽然只有两段,但同样也是非线性激活函数,道理与之是一样的。

5、relu的优势在于运算简单,网络学习速度快

1、严格来讲 ReLU函数算是分段线性函数。中间隐层激活函数选用线性函数(例如恒等函数)不好,是因为算下来多层网络和单层网络一个效果。其实激活函数的存在是为了神经网络更好的拟合目标函数;

2、ReLU比sigmoid或tanh好 是因为他的收敛速度比另外两个快很多(sigmoid自变量比较大时导数趋于零 采用梯度下降法 反应慢,多层网络更为明显),计算量也要小(ReLU只需要和阈值做比较,不需要带入函数计算)。

1、严格来说的话 ReLU算是分段线性函数。中间隐层激活函数采用线性函数(例如恒等变换)不好是因为,最后算下来多层网络跟单层网络一个效果。其实 激活函数的存在是为了神经网络更好的拟合目标函数而已。

2、ReLU比sigmoid和tanh好是因为它的收敛速度快(sigmoid、tanh函数在自变量比较大的时候 导数很小,采用梯度下降法 变化缓慢,特别是多层网络 就更慢了),计算量比较小(只需要一个阈值进行比较 而不需要做函数运算)。

relu导数不是常数,非线性的

神经元的广泛互联与并行工作必然使整个网络呈现出高度的非线性特点。在客观世界中,许多系统的输入与输出之间存在着复杂的非线性关系,对于这类系统,往往很难用传统的数理方法建立其数学模型。设计合理地神经网络通过对系统输入输出样本对进行自动学习,能够以任意精度逼近任何复杂的非线性映射。神经网络的这一优点能使其可以作为多维非线性函数的通用数学模型。该模型的表达式非解析的,输入输出数据之间的映射规则由神经网络在学习阶段自动抽取并分布式存储在网络的所有连接中。具有非线性映射功能的神经网络应用十分广阔,几乎涉及所有领域。