【吴恩达深度学习】【神经网络和深度学习】 第三章 第六节 激活函数

一、激活函数定义

我们在研究一个神经元的时候(这里指生物学中的神经元),我们知道其有轴突和树突,可以传导冲动,同时我们还知道,冲动在传导的时候有一个阈值,低于某个值的冲动无法被传导或者传道的时候减弱了,所以其实神经冲动的传导是一个非线性的过程,我们在这里引入激活函数,也就是为了模拟这个非线性的过程,使得我们最终得到的神经网络是一个非线性的网络。

我们常见的relu函数和这个过程基本一致,而别的sigmoid或者tanh与之有些区别,但是功能本质相同。

还记得在前文提到过,神经元的内部计算时是所有的输入先经过了一个加权的求和,然后经过一个激活函数,最终得到输出,这节课主要讨论的也就是这个激活函数。

讲了这么多,却还是没讲清楚激活函数究竟是一个什么东西。可是我查了许多资料,最终也没得到一个有关激活函数意义的定义,都是在说激活函数是什么,有什么用。但我在前面的blog中也提到过,所有的深度学习问题的学习中,经常会出现一些不知道具体的实际意义的东西,我们只要能都知道并且运用就行了。

二、四种激活函数

1、sigmoid函数

sigmoid函数也叫Logistic函数,用于隐层神经元输出,取值范围为(0,1),它可以将一个实数映射到(0,1)的区间,可以用来做二分类。在特征相差比较复杂或是相差不是特别大时效果比较好。Sigmoid作为激活函数有以下优缺点:

优点:平滑、易于求导。

缺点:激活函数计算量大,反向传播求误差梯度时,求导涉及除法;反向传播时,很容易就会出现梯度消失的情况,从而无法完成深层网络的训练。

Sigmoid函数由下列公式定义

其对x的导数可以用自身表示:

Sigmoid函数的图形如S曲线Sigmoid 曲线

2、tanh函数

tanh是双曲函数中的一个,tanh(x)为双曲正切。在数学中,双曲正切“tanh”是由基本双曲函数双曲正弦和双曲余弦推导而来。

y=tanh x是一个奇函数,其函数图像为过原点并且穿越Ⅰ、Ⅲ象限的严格单调递增曲线,其图像被限制在两水平渐近线y=1和y=-1之间。

640?wx_fmt=png

其实tanh(x)=2*sigmoid(2*x)-1

双曲正切函数的导数公式:

3、ReLU函数

y=max(0,x)

这个函数比上面的两个看起来都要简单,但据吴恩达所说,神经网络世界处理使用的时候使用最多的还是这个看似简单的函数。

这个函数是一个典型的非线性函数。

4、带泄露的ReLU

y=max(0.01x,x)

这里取了一个极小的系数0.01,这个可以让上面那个函数在小于零的部分有一个接近于0但不是零的斜率,这样可以让他的表现更好,但是不使用这种方法一般也没什么影响

 

三、激活函数的选择

一般来说我们倾向于使用relu函数,原因是在处理深度下降的时候,前两个函数在数据特别大的时候导数较小,下降的较慢,学习时间变长,在实际使用的时候表现不是很好。而ReLU函数的导数始终是0或者1,这样我们即使数据特别的大也可以有一个很好的学习效率,不会因为数据的大小而受到影响。

所以一般来说所有的神经网络的隐藏层中,我们一般使用ReLU函数。

对于输出层来说,一般也是使用ReLU函数,不过对于一些特殊的情况,也可能采取别的激活函数。

对于logitic回归问题,因为我们最终结果是一个0或者1,所有对输出采用sigmoid激活函数,

而对于一些比如房价等问题,最终输出的结果就是我们所需要的结果,所以也可以采用y=x恒等函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值