理解激活函数在神经网络模型构建中的作用

什么是激活函数

在生物学家研究大脑神经元工作机理时,发现如果一个神经元开始工作时,该神经元是一种被激活的状态,我想着大概就是为什么神经网络模型中有一个单元叫做激活函数。
这里写图片描述
那么什么是激活函数呢,我们可以从逻辑回归模型开始理解它,下图是一个Logistic回归分类器:
这里写图片描述
在上图中我们发现,Logistic回归分类器在对所有的输入做了线性相加(Net ipt function)之后,其结果经过了一个激活函数(Activation function),此时的输出:
这里写图片描述
而在Logistic回归分类器中去除误差的回传(Error)和单位阶跃函数(Unit step function)之后,其实剩下的东西就是一个神经元。
神经网络是由多个神经元在宽度和深度上链接而成的,通俗点理解,**激活函数就是神经网络中每个神经元的输出后乘起来的那个函数。**比如在下图中:
这里写图片描述
所有的隐层的神经元(a)和输出层的神经元(Y)后面其实都会经过一个激活函数,那么为什么输入层(x)没有呢,因为虽然在神经网络中,输入层,隐含层和输出层都用上图所示的“圆圈”表示,但是输入层不是神经元!!!
那么在神经网络中,激活函数(Activation function)一般选择什么样的函数呢:
这里写图片描述

除此之外,在深层神经网络中,比较常用的是ReLu(Rectified Linear Units)函数,这个我们会在最后一部分介绍它。

激活函数的作用

我们继续说上面的3层的神经网络模型,并用这里写图片描述表示第一层权系数(比如这里写图片描述表示输入层x1与隐层a1的权系数);用这里写图片描述表示第二层权系数(比如这里写图片描述表示隐层a1与输出层Y1的权系数),那么如果神经网络模型去掉了激活函数(Activation function),各个神经元的输出可以表示为:
这里写图片描述
将其带入后可以得到Y与x的关系:
这里写图片描述
最终的输出:
这里写图片描述

可以看到,如果没有激活函数的话,无论我们如何训练神经网络的参数,得到都将是一个线性的模型,在二维空间下是一条线,在三维空间下是一个平面。而线性模型是有非常大的局限性的,比如下面的问题:
这里写图片描述
我们永远不可能用一个线性的模型取区分橙色和蓝色的点,而当我们加入激活函数后,用上面的网络结构是可以解决线性不可分问题的。(注意下图中的网络与上图公式推导的网络只是输入不同而已)
这里写图片描述

所以,最后总结一下:激活函数在神经网络中的功能即通过对加权的输入进行非线性组合产生非线性决策边界(non-linear decision boundary)。

深层神经网络中的激活函数

最后一个部分,在说明一下深层神经网络中的激活函数,它的作用与浅层网络是相同的—增加非线性,但是使用的是ReLu(Rectified Linear Units)函数,主要是为了解决Sigmoid函数带来的梯度消失问题(这个不是本文的重点,我们不详细说明它)。下面这张图就是ReLu函数:
这里写图片描述
可以看到它是一个分段线性函数,对于所有小于等于0的数,f(x)=0;对于所有大于0的数,f(x)=x。这个函数可以作为神经网络的激活函数关在在于,在多维空间下任何一个曲面都可以分解为多段平面,这个曲面就是最后的决策面,而深层神经网络依靠复杂的网络结果和深度取用多个平面拟合决策面,最后达到满意的效果。
这里写图片描述

参考:
《Machine Learning》Tom M.Mitchell
《TensorFlow 实战Google深度学习框架》
《神经网络中激活函数的作用》
《 通俗理解神经网络之激励函数(Activation Function)》

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值