首页 > 编程知识 正文

神经网络relu,relu函数作用

时间:2023-05-03 15:40:57 阅读:161604 作者:3510

目录1 .激活函数的作用2.SIG mod3. relu4. tan H5.leaky relu

1 .激活函数的作用

关于神经网络中激活函数的作用,一般情况下,如果不使用激活函数,神经网络的各层只是进行线性变换,即使多层的输入重叠也仍然保持线性变换。因为线性模型的表达能力通常不够,因此此时激活函数的作用正在显现。 激活函数可以引入非线性元素。

在我认为,通俗来说,比如说原先的线性变换能解释类似左图的分类,而无法进行类似右边图像的这种分类

2.sigmod表达式:

几何图像:

角色:

它能够把输入的连续实值变换为0和1之间的输出,特别是如果是非常大的负数,则输出为0; 如果是非常大的正数,则输出为1。

坏处:

1 )深度神经网络中梯度逆向传递会引起梯度爆炸和梯度消失,其中梯度爆炸发生的概率非常小,而梯度消失发生的概率比较大

2 )2:Sigmoid的输出不是0均值(即零中心)。 这是不可取的,因为后面一层的神经元输入从前一层输出的0均值以外的信号。 f(x )=wx b,x0,http://www.Sina.com /时,具有收敛变慢的束缚效果。 当然,如果按下batch进行训练,该batch可能会得到不同的信号,因此这个问题可以得到缓解。 因此,非0平均这个问题,虽然会产生一些不好的影响,但是与前述的斜率消失问题相比要好很多。

3: 导致对w求局部梯度则都为正,这样在反向传播的过程中w要么都往正方向更新,要么都往负方向更新

此处见https://blog.csdn.net/tyhj _ SF/article/details/79932893

代码:

frommatplotlibimportpyplotaspltimportnumpyasnpimportmathdefsigmoid _ function (x ) : FX=[ ] fornuminx 3360 FX.apppend (1math.exp(-num ) ) return fxx=NP.arange (-10,10,0.01 ) fx=sigmoid_function(x ) x ) PLT.title (sigmmm )

几何图像:

角色:

这将导致死亡ReLU问题,以解决坡度消失的问题,但在计算坡度时,大多数值都小于0,并且获得大量不更新的权重和偏移。 但死亡ReLU带来稀疏性,其解析式中含有幂运算,计算机求解时相对来讲比较耗时。对于规模比较大的深度网络,这会较大地增加训练时间。ReLU无法避免梯度爆炸问题****

代码:

importnumpyasnpimportmatplotlib.pylabaspltdefrelu (x ) :returnNP.maximum(0, x ) #从输入的数据中选择较大的输出x=NP.arange )-5.0 ) 0.1 ) y=Relu(x ) PLT.xlabel ) PLT.ylabel

几何图像:

作用:解决Sigmoid函数的不是zero-centered输出问题,但仍然存在梯度消失问题和幂运算问题。

代码:

importnumpyasnpimportmatplotlib.pylabaspltdeftanh (x ) :return(NP.exp ) x )-NP.exp(-x ) )/NP.exp ) (x ) ) ) ) 0.1 ) P1=PLT.subplot(311 ) y=tanh(x ) PLT.title (tanh ) PLT.xlabel ) ) PLT ) PLT ) ylaylat

几何图像:

=0.01,左半部分斜率接近0,在第三象限(阿尔法=0.01,左半部分的斜率接近0,在第三象限中=0.01,左半部分的斜率接近0,在第三象限中

角色:

leakyrelu激活函数是relu的派生版本,主要是为了解决relu输出为0的问题。 如该图所示,在输入小于0的情况下,输出值小但值不是0。

l缺点:因为它有点接近线性,所以在复杂的分类中没有效果。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。