首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >理解激活函数在神经网络模型构建中的作用

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

作者头像
chaibubble
发布2018-01-02 10:36:08
2K0
发布2018-01-02 10:36:08
举报

什么是激活函数

在生物学家研究大脑神经元工作机理时,发现如果一个神经元开始工作时,该神经元是一种被激活的状态,我想着大概就是为什么神经网络模型中有一个单元叫做激活函数。

这里写图片描述
这里写图片描述

那么什么是激活函数呢,我们可以从逻辑回归模型开始理解它,下图是一个Logistic回归分类器:

这里写图片描述
这里写图片描述

在上图中我们发现,Logistic回归分类器在对所有的输入做了线性相加(Net ipt function)之后,其结果经过了一个激活函数(Activation function),此时的输出:

这里写图片描述
这里写图片描述

而在Logistic回归分类器中去除误差的回传(Error)和单位阶跃函数(Unit step function)之后,其实剩下的东西就是一个神经元。 神经网络是由多个神经元在宽度和深度上链接而成的,通俗点理解,激活函数就是神经网络中每个神经元的输出后乘起来的那个函数。比如在下图中:

这里写图片描述
这里写图片描述

所有的隐层的神经元(a)和输出层的神经元(Y)后面其实都会经过一个激活函数,那么为什么输入层(x)没有呢,因为虽然在神经网络中,输入层,隐含层和输出层都用上图所示的“圆圈”表示,但是输入层不是神经元!!! 那么在神经网络中,激活函数(Activation function)一般选择什么样的函数呢:

这里写图片描述
这里写图片描述

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

激活函数的作用

这里写图片描述
这里写图片描述

将其带入后可以得到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)》

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-06-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是激活函数
  • 激活函数的作用
  • 深层神经网络中的激活函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档