当前位置: 首页 > 科技观察

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

时间:2023-03-21 12:42:56 科技观察

本文转载自公众号《核心阅读》(ID:AI_Discovery)。激活函数是人工神经网络的驱动因素。它位于神经元之上,管理着神经元的行为,比如某个输入数据是否需要处理,如果需要,处理到什么程度。从技术上讲,一个节点的激活函数在神经网络中输入其前一个节点的数据,并输出一定的值,然后指示后续节点如何响应特定的输入信号进行激活。本文分析了由激活函数组成的神经网络,以及神经网络的生物类比,并简要介绍了几种常用的激活函数。神经网络的结构作为一个数据科学爱好者,你一定看过上面这张图或者类似的东西。这张图是两层神经网络工作流程的经典描述。如图所示,网络对猫或狗的图片进行分类。有两个隐藏层,每层包含一行神经元,一行有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函数是RectifiedLinearUnit的简称,它可能是最有趣也最反直觉的函数。它几乎是一个直线函数,但是在原点有一个角,所以它是一个分段函数。人们经常会问一个近似线性函数如何解决这个问题。从图中可以看出,它几乎完全避免了梯度消失问题。单个ReLU函数可能很乏味,但多个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。你了解激活函数吗?