人工神经网络的驱动者:激活函数是什么?


全文共2282字,预计学习时长6分钟

图源:unsplash

激活函数是人工神经网络的驱动因素,其位于神经元之上,并管理着神经元行为,比如是否需要处理某个输入数据,若需要,又以何种程度处理等等。从技术上来讲,某个节点的激活函数将其在神经网络中前一个节点的数据输入,并输出一个确定值,这个值继而指导后续节点如何发动来响应特定输入信号。

 

本文剖析由激活函数组成的神经网络,以及神经网络的生物类似物,并简要介绍几种常用的激活函数。

 

神经网络的结构

 

 

作为一名数据科学爱好者,你一定见过上面的这张图片或者与之相似的图片。这张图片是对双层神经网络工作流程的经典描述。如图,该网络对猫或狗的图片进行分类,其中有两个隐藏层,每一层包含一行神经元,一行有16个。我们把图片局部放大,放大第二层的第一个神经元。

 

 

局部放大之后大致如此。注意,此神经元接受前16个神经元传递的信号。神经元将连接权值与信号相乘,并在乘积上加上一个偏差项,最后得到计算结果,并将其命名为v。此v可视为这个神经元对所输入图像的认知。

 

在识别到输入信号之后,神经元可产生相应的反应,在此激活函数发挥其作用。激活函数被命名为f(),作为由识别到反应的映射,产生值a,并将其传递到下一层神经元,作为前一层特定神经元对信号做出反应的标志。

 

生物学类比

 

假如将手放在逐渐升温的钢锅上,一旦温度超过某个阈值,你就会急切地要拿开手。把手移开时并不需要知道锅的确切温度,而是根据实际参数做出选择。这是神经元在放电,当神经元放电时,指令传递到外围(本例中的手)。

 

这就是激活函数的来源或者至少与之相似。在这里实际数据是冗余的,神经元只需判断其是否超过阈值。

 

就目前所知,生物神经元和人工神经元之间的一个显著差异是,前者要么被激活,要么不被激活,只有两种结果,而后者的激活程度是在一定范围内。

 

激活函数的种类

 

激活函数多种多样。让我们按照函数所解决问题的顺序,大致学习其中的几种:

 

·        问题1:学习问题

 

早期,神经网络的目标是学习自身,线性函数的处理效果相当好。之所以称为线性函数,是因为v = wa + b的近似值与直线方程y = mx + c极为相似。

 

·        问题2:非线性问题

 

 

虽然线性函数非常接近于右侧数据,但是左侧数据却效果不佳。由于非线性分布数据集主导着机器学习领域,而且激活函数是将非线性注入到网络中的唯一适用方法,所以函数就不能是线性的。能够解决这个问题的常见函数有:

 

Sigmoid函数:在函数内输入一个值,输出值的范围为(0,1)。输入的值越小,输出值越接近于0,输入的值越大,输出值则越接近于1,但都不会达到任一个极限值。

 

 

tanh函数:也称双曲正切函数。tanh函数与sigmoid函数非常相似,只是输出值范围为(-1,1)。右侧为sigmoid函数图像,左侧为tanh函数图像。

 

 

·        问题3:梯度消失问题

 

再次观察图表,sigmoid函数曲线越接近于极限值越平缓,也就是说,当输入绝对值非常大的值的时候,输出值的变化不明显。这大大降低了学习率。这就是所谓的梯度消失问题,随着进程推进,梯度(比如,学习)消失。ReLU函数解决了这个问题,实际上它也是现代神经网络的默认激活函数。

 

ReLU函数:ReLU函数是线性整流函数(Rectified Linear Unit)的简称,它可能是最有趣、最反直觉的函数。它几乎就是一个直线函数,只不过在原点处有个拐角,所以它是一个分段函数。

 

 

人们经常会问,一个近似线性的函数是如何解决这个问题的。从图中可以明显看出,它几乎可以完全避免梯度消失问题。单个ReLU函数会显得比较单调乏味,但是多个在一些就会变得无懈可击。

 

 

线性函数完全无法近似,而tanh函数试图画出平滑的类圆曲线,所以最终出现了六角形边状的ReLU函数。你可能会认为,这是两个直线的一端接在一起,如同钟表指针那样。

 

现在,假设有一百万条这样的直线,那么你可以用这种排列方法模拟任何非线性形状。ReLU的精妙之处就在于,它既近似线性,多个组在一起时又能通过改变拐角的角度模拟出几乎所有形状。

 

这引出了最后一个要解决的问题。

 

·        问题4:概率和问题

 

无论隐藏层的工作内容如何,最终的目标都是生成某种预测,而在这里,就是输出一个概率向量,其中包含输入对象为已标记对象概率表。比如,第一张图片中神经网络的结果可能是:

 

[dog, cow, cat, goat, lamb] = [0. 2, 0.05, 0.7,0.03, 0.01]

结果最有可能是猫,因为是猫的概率为0.7,概率最高。

 

为了将全连接层的最终输出值转换为正规化概率向量,需要一个函数接受一个向量,然后输出另一个向量,而且输出向量所有元素的和为1。毕竟,这才是概率向量。

 

Sigmoid函数非常接近于概率函数,因为它的输出值范围为0到1,但是不满足和等于1的情况。Softmax函数可以满足这一点。

 

Softmax函数:函数接受一个向量,并使用下列函数计算输出向量中每个元素的相应概率。

 

 

函数中分母为所有可能分子的和,避免输出值超过1。

 

关于激活函数,你了解了嘛?


推荐阅读专题

留言点赞发个朋友圈

我们一起分享AI学习与发展的干货

编译组:李东华、郭芳芳

相关链接:

https://safwan-du16.medium.com/what-are-activation-functions-d40a5f552c77

如转载,请后台留言,遵守转载规范

推荐文章阅读

ACL2018论文集50篇解读

EMNLP2017论文集28篇论文解读

2018年AI三大顶会中国学术成果全链接

ACL2017论文集:34篇解读干货全在这里

10篇AAAI2017经典论文回顾

长按识别二维码可添加关注

读芯君爱你

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值