神经网络中的激活函数

2025 年 4 月 1 日 | 阅读 7 分钟

人工神经网络 (ANN) 是一种受大脑启发的用于信息处理的范式。ANN 像人类一样通过模仿学习。通过学习过程,ANN 针对特定目的进行调整,例如模式分类或数据分类。学习会改变神经元之间存在的突触互连。

在创建神经网络时,您需要做出的决定之一是:在隐藏层和网络输入层使用什么输入层。本文讨论了一些替代方案。

神经生理学中的神经冲动是计算机科学中激活函数的模型。如果神经元内部和外部的感应电压超过一个称为动作电位的阈值,链式反应将允许神经元“放电”并向附近的神经元发送信号。接下来的一系列激活,称为“尖峰序列”,使运动神经元能够将命令从大脑传输到四肢,并使感觉神经元能够将感觉从手指传输到大脑。

神经网络组件

层是构成神经网络的垂直堆叠部分。图像中的虚线分别表示一个层。一个神经网络有三种不同类型的层。

输入层

首先是输入层。该层将接收数据并将其转发到网络的其余部分。该层允许特征输入。它从外部世界向网络输入数据;这里不进行计算;相反,节点只是将信息(特征)传输到隐藏单元。

隐藏层

由于它们是任何神经网络提供的抽象的组成部分,因此此层中的节点对于外部世界是不可见的。通过输入层输入的任何特征都由隐藏层以任何方式处理,结果被发送到输出层。第二种层称为隐藏层。对于神经网络,有一个或多个隐藏层。上面示例中的数量是 1。实际上,隐藏层正是神经网络具有卓越性能和复杂性的原因。它们同时执行多项任务,包括数据转换和自动特征生成。

输出层

该层将网络获得的知识呈现给外部世界。输出层是最后一种层。输出层包含问题的答案。我们将原始图像传递给输入层后,会从输出层接收输出。

数据科学广泛使用修正线性单元 (ReLU) 函数或 sigmoid 过程类别,其中还包括逻辑回归模型、逻辑双曲正切和反正切函数。

激活函数

定义

在人工神经网络中,激活函数是一种在输入较小时输出较小值,在输入大于阈值时输出较大值的函数。如果输入足够大,激活函数就会“激活”;否则,什么都不会发生。因此,激活函数是一个门,用于验证传入值是否高于阈值。

由于激活函数在神经网络中引入了非线性,并使神经网络能够学习强大的操作,因此它们很有用。如果确实去除了激活函数,前馈神经网络可能会被重构为对其输入的简单线性函数或矩阵变换。

通过生成加权和然后将其与偏差相加,激活函数确定神经元是否应该被激活。激活函数旨在增强神经元输出的非线性。

解释:我们知道,神经网络中的神经元根据权重、偏差及其相应的激活函数进行操作。根据误差,神经网络内部神经元的值将被修改。这个过程称为反向传播。激活函数使反向传播成为可能,因为它们提供了改变偏差和权重所需的梯度和误差。

非线性激活函数的必要性

没有激活函数的互连回归模型就是神经网络。激活函数对输入进行非线性转换,从而使系统能够学习和执行更具挑战性的任务。

它只是一个用于获取节点输出的程序。它也被称为传递函数。

两个线性函数的组合会产生一个线性函数,所以无论我们在神经网络中添加多少个隐藏层,它们都会以相同的方式运行。如果神经元只有线性模型,它就无法学习。它将能够根据与误差的差异进行学习,使用非线性激活函数。

两个线性函数的组合本身就会产生一个线性函数,因此无论我们在神经网络中添加多少个隐藏层,它们都会以相同的方式运行。如果神经元只有线性模型,它就无法学习。

激活函数主要分为两类

  • 线性激活函数
  • 非线性激活函数

线性激活函数

如所见,该函数是线性的。因此,不会使用任何区域来限制函数的输出。

Activation Functions in Neural Networks

正常数据输入到神经网络不受复杂性或其他因素的影响。

非线性激活函数

正常数据输入到神经网络不受复杂性或其他因素的影响。

激活函数

  • 线性函数

方程:线性函数的方程,即 y = x,类似于单一方向的方程。

无论我们有多少个层,如果它们都是线性的,那么最后一层的最终激活函数只不过是第一层输入的线性函数。范围是 -inf 到 +inf。

用途:激活函数的功能仅应用于输出层。

如果我们分离一个线性函数以增加非线性,结果将不再取决于输入“x”,函数将变为固定,并且我们的算法将不会表现出任何新颖的行为。

一个好的回归问题例子是确定房屋成本。我们可以在输出层使用线性激活,因为房屋价格可以有任何大或小的值。即使在这种情况下,神经网络的隐藏层也必须执行某种非线性函数。

  • Sigmoid 函数

它是一个以“S”形绘制的函数。

A 等于 1/(1 + e-x)。

本质上是非线性的。请注意,虽然 Y 值相当陡峭,但 X 值范围从 -2 到 2。换句话说,X 的微小变化也会导致 Y 值发生显著变化。范围从 0 到 1。

用途:Sigmoid 函数通常用于分类的输出节点,其中结果只能是 0 或 1。由于 sigmoid 函数的值仅在 0 到 1 之间,因此如果值大于 0.5 则结果很容易预测为 1,否则为 0。

  • Tanh 函数

始终优于 sigmoid 函数的激活函数被称为双曲正切函数。它实际上是一个经过数学调整的 sigmoid 函数。两者彼此相似且可以相互推导。

Activation Functions in Neural Networks

值范围:-1 到 +1。非线性性质

用途:- 由于其值通常在 -1 到 1 之间,因此神经网络隐藏层的平均值将为 0 或非常接近 0。这有助于通过使平均值接近 0 来使数据居中。这极大地促进了下一层的学习。

方程

max A(x) (0, x)。如果 x 为正,则输出 x;否则,输出 0。

值区间:[0, inf]

性质:非线性,这使我们能够简单地反向传播错误,并使 ReLU 函数激活多层神经元。

用途:由于 ReLu 包含比 tanh 和 sigmoid 更简单的数学过程,因此它需要的计算机时间更少。由于在任何给定时间只有有限数量的神经元被激活,因此系统稀疏且计算效率高。

简而言之,RELU 比 sigmoid 和 Tanh 函数学习信息要快得多。

  • ReLU(修正线性单元)激活函数

目前,ReLU 是全球使用最广泛的激活函数。因为几乎所有的卷积神经网络和深度学习系统都使用它。

导数和函数都是单调的。

然而,问题是所有负值立即变为零,这降低了模型有效拟合或从数据中学习的能力。这意味着对 ReLU 激活函数的任何负输入在图中立即变为零,这会通过不正确地映射负值来影响最终图。

  • Softmax 函数

尽管它是 sigmoid 函数的一个子类,但 softmax 函数在处理多类分类问题时非常有用。

在管理多个类时经常使用。在图像分类问题的输出节点中,通常存在 softmax。softmax 函数会将每个类别的所有输出除以总和,并将其压缩在 0 和 1 之间。

softmax 函数最适合应用于分类器的输出单元,我们在那里实际上试图获取概率以确定每个输入的类别。

经验法则是,如果我们不确定要应用哪种编码器,那么使用 RELU,它在隐藏层中是常见的感知器,并且现在在大多数情况下都使用它。

如果您的输入用于二元分类,那么 sigmoid 函数是输出层的一个非常合乎逻辑的选择。如果我们的输出涉及多个类,Softmax 在预测每个类的概率方面会非常有用。