关于激励函数的一些思考

在学习神经网络的时候,会发现神经网络中的各个神经元代表的其实就一种运算,这=这种运算就是激励函数,激励函数一般都是非线性的,为什么呢?

因为线性函数有一个特点,那就是线性函数的组合还是线性函数,这也就以为这不论你所设计的神经网络有多深,多么复杂,只要里面用到的激励函数是线性函数,那么这些层层之间都是线性函数的一个组合,最终整个网络依然是线性的,可以用一个矩阵来代替,跟只有一层网络是没有区别的,所以线性激励函数的表达能力是有限的,不能描述现实生活中存在的大部分的问题,故我们采用非线性的激励函数,以下是神经网络中常用的几种激励函数:

1、sigmod函数

   

sigmoid导数曲线:


sigmod函数有几个特点:将输入映射到区间(0,1),当输入偏离0附近的时候,输出的变化非常缓慢,达到饱和,从sigmo函数的导数是一个区间(0,1)上的抛物线,当sigmo函数的取值是1/2的时候,其导数达到最大值1/4.

根据这几个特性就可以总结出来sigmo作为激励函数的一些优缺点。

优点:1、将输入映射到(0,1)上,这在一些分类问题中作为输出,归一化后就可以表征被分为该类的概率,会带来一些计算上的方便。

           2、在整个定义域都是处处可导的,在梯度反向传播的时候求导比较方便

缺点:收敛速度比较慢,原因是因为当达到sigmoid的饱和区的时候,输入的变化不会对输出带来什么影响,反过来也就是说sigmo函数在饱和区的导数非常小,在梯度反向传播过程中会带来梯度的大量衰减,从其导数的曲线上可以看出,其反向传播过程中最多只能向前传递原梯度的1/4,那么再经过神经网络的前一层传递,梯度传递减少至原梯度的1/16,整个呈指数级降低,所以对于神经网络中前面几层的参数调整是非常有限的,这也就导致了整个神经网络的训练收敛速度非常慢。

2、tanh函数


tanh激励函数实际上与sigmoid函数没有本质上的区别,最大的区别是tanh函数将输入映射在了区间(-1,1)上,所以tanh作为激励函数的优点与缺点与sigmoid函数相同。

优点:1、将输入映射到(-1,1)上,在某些应用中是比较想要的输出

            2、在整个定义域都是处处可导的,在梯度反向传播的时候求导比较方便

缺点:收敛速度慢

但是tanh函数与sigmo函数相比,延迟了饱和区域,所以性能优于sigmoid函数

3、RELU函数


在实际的应用中使用最多的就是RELU函数作为激励函数,这要是因为RELU函数的较以上两种激励函数的一些优势:

        1、计算简单,只是一个阈值计算,不涉及指数运算

        2、梯度损失比较小,收敛速度快,显然当输入大于0时候,RELU的导数恒为1,整个梯度反向传播过程中不会引起梯度的损失,但是当输入小于0的时候,输出全部为0,这样其实相当于阻断了一些网络支路,其实也就相当于引起特征的丢失,但是一般情况下特征量足够多,所以影响并不大

        3、因为RELU使得输入小于0的所有神经元的输出为0这样就促进了整个网络的稀疏性,使得网络更加的简单,其实也就是与正则化的效果一直,从而延缓了网络过拟合的速度。

        4、更加符合生物意义上的神经元结构(虽然我并不懂啥意思。。。)

4、LeakyRELU函数:


leakyRELU函数实际上是对于RELU函数的一种优化,相比于RELU函数直接阻断了一些小于0的特征,LeakyRELU函数考虑了这部分特征。


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值