人工神经网络中的激活函数和它们的不同类型

142 阅读8分钟

嘿,伙计们,在这篇博客中,我们将讨论人工神经网络中的激活函数和它们的不同类型。

在讨论之前,让我们先了解一下什么是人工神经网络?

人工神经网络(即ANN)

Architecture of Artificial Neural NetworkArchitecture of Artificial Neural Network

人工神经网络的结构

人工神经网络是指以大脑为模型的人工智能的一个生物启发子领域。

ANN是一种基于生物神经网络的计算网络,试图模仿人脑。

像人脑一样,ANN也有神经元,这些神经元在不同的网络层中相互连接。
ANN中的这些神经元被称为节点。

让我们来看看人工神经网络即ANN是如何受到我们人类大脑网络的启发的。

生物学神经网络

Biological Neural NetworkBiological Neural Network

  • 人脑中的神经网络是由一组化学连接或功能相关的神经元组成的。
  • 它的结构就像由反馈、神经元、树突树和突触组成的分层网络。
  • 神经回路是一个由神经元组成的群落,通过突触相互连接,在激活时执行一种特定的功能。
    神经回路相互连接,在大脑中形成一个大型生物神经网络。
  • 神经元是神经系统的基本功能单位。
    它们产生的电信号称为动作电位,这使它们能够快速地远距离传输信息。
  • 一个神经元由三个主要部分组成。
    • 细胞体(即躯干)
    • 树突
    • 轴突
  • 细胞体或Soma是细胞的生命支持中心。它处理输入的信息并产生输出。
  • 树突就像在不同方向上分支的纤维,与该集群中的许多细胞相连。
    它接收来自其他细胞的信息。
  • 轴突负责将信息从细胞体传递到其他神经元、肌肉或腺体。

人工神经网络

Artificial Neural Network recognising the input provided.Artificial Neural Network recognising the input provided.

  • ANN是一个计算系统,旨在模拟人脑分析和处理信息的方式。
  • 它是人工智能(AI)的开端,解决那些人类或统计标准难以解决或无法解决的问题。
  • 它具有自学能力,使它们能够产生更好的结果,因为更多的数据提供给它们进行训练。
  • ANN由三层组成。
    • 输入层
    • 隐藏层
    • 输出层
生物神经网络人工神经网络
树突输入
细胞体或躯干节点
突触砝码
轴突输出

表1 BNN Vs ANN

什么是激活函数?

A simple neural network depicting the role of Activation Function.A simple neural network depicting the role of Activation Function.

激活函数是神经网络中最重要的部分。
像物体检测、语言转换、人脸检测、物体检测等非常复杂的任务是在神经网络和激活函数的帮助下执行的。因此,如果没有它,这些任务处理起来就会非常复杂。

它通过计算加权和并进一步加入偏见来决定一个神经元是否会被激活。
激活函数的目标是为神经元的输出引入非线性。

对于任何输入,激活函数在-1到1的范围内使输出正常化。

所选的激活函数应该是有效的,必须减少计算时间,因为神经网络有时是在数百万个数据点上训练的。

激活函数基本上是检查神经网络中收到的输入是相关还是不相关。

在人工神经网络中,一个节点的激活函数定义了给定输入或输入集的该节点的输出。
例如,我们可以考虑一个标准的电路,它可以被看作是一个激活函数的数字网络,它可以根据输入而 "打开 "或 "关闭"。

激活函数的需要。

为了回答这个问题,我们在神经网络中需要一个激活函数,以便在神经元的输出中引入非线性。

如果神经网络中没有激活函数,那么,权重和偏置的总和将是一个线性方程,即只有一度的多项式,而且很容易解决,但在解决复杂问题或更高程度的多项式方面的能力有限。
这种类型的模型将与线性回归模型一样。

但另一方面,如果我们将激活函数引入我们的神经网络,它将拥有解决复杂问题的能力,如人脸识别图像分类,并将对提供给神经网络的输入执行非线性转换。

神经网络的神经元根据权重、偏置和各自的激活函数来工作。神经元的权重和偏置是根据输出端的误差来更新的。
这个过程被称为反向传播(back-propagation)。激活函数通过提供梯度与误差来更新权重和偏置,使这个过程成为可能。

对神经网络的数学知识有点迷惑。不要担心!!
点击这里

好了,让我们进一步了解激活函数的类型。

激活函数的类型

最常用的激活函数有以下几种。

  • 线性函数
  • 二进制步骤
  • 跃迁(ReLU)
  • 泄漏ReLU
  • 二次方
  • Tanh
  • 柔性最大值

直线激活函数

Curve of Linear Activation Function.Curve of Linear Activation Function.

一个简单的直线激活函数,我们的函数与输入的加权和成正比。

正斜率的线随着输入率的增加而增加发射率,线性激活函数给出了一个广泛的激活范围。

公式:f(x)=mx

范围:-INT到+INT

无论神经网络中有多少层,如果每层都有一个线性激活函数,那么输出层的最终激活函数将只是第一层输入的线性函数。

线性激活函数的问题在于它将线性函数分化为非线性,结果将不再依赖于输入"x",函数将成为常数,它不会给算法带来任何非常规的行为。

二进制步骤激活函数

Curve for Binary Step Activation FunctionCurve for Binary Step Activation Function

一个非常基本的激活函数,当我们试图约束我们的输出时,它每次都会出现在我们的头脑中。它基本上是一个分类器,根据阈值对输出进行分类。

在这个函数中,我们决定阈值。

输出大于阈值,神经元激活,否则停用。

公式:f(x) = 1 如果x > 0
如果x<0则为0

对于二进制分类器或问题,我们将阈值设为0。

ReLU 激活函数

Curve for Rectified Linear Unit Activation Function.Curve for Rectified Linear Unit Activation Function.

ReLU是指整流线性单元,是使用最广泛的激活函数。

主要用于人工神经网络的隐藏层。

公式:f(x) = max(0,x)

如果x是正值,它给出一个输出x,否则为0。

负值转换为零,而且转换速度非常快,既不能映射也不能正确适应数据,这就造成了一个问题。

非线性性质,这意味着错误很容易反向传播并激活多层神经元。

范围。[0, INT)

ReLU的计算成本相对低于Tanh和Sigmoid,因为它涉及Sigmoid,数学运算更简单。
每次只有几个神经元被激活,使网络变得稀疏、高效、易于计算。

Leaky ReLU激活函数。

Curve for Leaky Rectified Linear Unit Activation FunctionCurve for Leaky Rectified Linear Unit Activation Function

Leaky ReLU函数是ReLU激活函数的一个改进版本。
它对负值有一个小斜率,而不是一个平坦的斜率。

它解决了"垂死的ReLU "问题,因为所有的负输入值会迅速变成零,这将使该区域的神经元失去活性。
在Leaky ReLU中,我们不把所有的负输入转化为零,而是接近零,这解决了ReLU激活函数的主要问题。

公式:f(x) = max(0.01*x, x)

对于正的输入,它返回x,但对于负值的x,它返回一个非常小的值,即x的0.01倍。
,因此它对负值也给出一个输出。

西格玛激活函数

Curve for Sigmoid Activation FunctionCurve for Sigmoid Activation Function

最常用的激活函数,因为它以极大的效率完成其任务。
它是一种概率性的决策方法。

公式:f(x)=1/(1+e-x)

非线性性质,由于x值位于-2到2之间,y值非常陡峭,这意味着x的微小变化将带来y值的巨大变化。

范围。0到1

通常用于二元分类器的输出层,其结果是0或1。

当我们要做决定或预测输出时,我们使用sigmoid激活函数,因为它的范围最小,这使得预测更准确。

切线双曲激活函数(Tanh)

Curve for Tangent Hyperbolic Activation FunctionCurve for Tangent Hyperbolic Activation Function

Tanh代表切线双曲激活函数。
它的效果几乎比sigmoid函数更好。

公式:f(x) = tanh(x) = 2/(1+e-2x) - 1
或 tanh(x) = 2 * sigmoid(2x) - 1

范围:-1到1

像sigmoid激活函数一样,用于隐藏层,因为它的值在-1到1之间,因此隐藏层的平均值为0或非常接近它,因此它通过使平均值接近0来帮助集中数据。这使得下一层的学习更容易,预测或区分两类,但它只将负输入映射为负数。

软极限激活函数

Curve for Softmax activation functionCurve for Softmax activation function

softmax函数也是一种sigmoid函数,主要用于分类问题。

主要用于最后一层,即输出层的决策,就像sigmoid函数的作用。

sigmoid和softmax都被考虑用于二元分类问题,但当我们试图处理多类分类问题时。它将在0和1之间挤压每个类别的输出,并将在0和1之间挤压每个类别的输出,还将除以输出之和。

结论

因此,在这篇博客中,我们对生物神经网络和人工神经网络有了一个概念。我们讨论了激活函数和它的必要性。我们还讨论了主要使用的7种激活函数。所有这些激活函数,根据不同的条件,用于相同的目的。

参考资料