算法面经总结(13)激活函数

1、意义

        没有激活函数(非线性函数),输出都是输入的线性组合,网络逼近能力有限。数据的分布绝大多数是非线性的,而一般神经网络的计算是线性的,引入激活函数,是在神经网络中引入非线性,强化网络的学习能力。所以激活函数的最大特点就是非线性。

2、常见激活函数

(1)sigmoid函数

 应用:逻辑回归;二分类任务的输出层(概率预测);隐藏层

缺点:容易产生梯度消失;输出不是0均值,这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入,随着网络的加深,会改变数据的原始分布;收敛较慢(可以用batch缓解);含幂运算,耗时。

(2)tanh函数

应用:LSTM;二分类任务的输出层;隐藏层

优点:输出是0均值

缺点:梯度消失的问题仍存在,有幂运算

 (3)Relu函数

 应用:目前卷积网络常用;回归任务

优点:收敛速度快;计算快;解决梯度消失(在正区间)

缺点:输出不是0均值;某些神经元可能永不激活(可以Xavier初始化,lr不要设的太大)

 (4)Leaky Relu函数

 优点:解决某些神经元无法激活的问题

(5)softmax

   是为了解决sigmoid无法进行多分类而提出的

 2、Relu在零点可导吗,如何进行反向传播

不可导,间断点的求导按左导数计算,默认为0

3、softmax溢出怎么处理

上溢出:zi极大,导致分子计算时上溢出

下溢出:zj为负数,且zj的绝对值很大,分母极小,就会下溢出

解决:令M=max(zj),只需要把原来计算f(zj)的值改为计算f(zj-M)的值,就能解决。如此,分子最大值为0,不会发生上溢出,分母至少包含一个值为1的项,不会下溢出

 4、sigmoid和Relu的优缺点

Relu优点:在大于0的部分梯度为常数,所以不会产生梯度弥散,而对于sigmoid,在负饱和区间的梯度都接近于0,可能导致梯度消失现象。Relu函数的导数计算更快,所以使用梯度下降时比sigmoid收敛要快。

Relu缺点:死亡问题,当x小于0的时候,从此流过的神经元的梯度都变为0,在训练中参数无法更新,导致了数据多样化的缺失(因为数据不起作用)

sigmoid优点:具有很好的可解释性,将线性函数的组合输出为0,1之间的概率

sigmoid缺点:激活函数计算量大,反向传播求梯度时,求导涉及除法,反向传播时,在饱和区两边容易导致导数为0,即梯度消失。

5、softmax和sigmoid在多分类的选择

若多个类别之间时互斥的,就应该使用softmax,若不是就要使用sigmoid

 以上内容均来源于各个版主、牛客网总结

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值