Bootstrap

【深度学习基础|知识概述】神经网络基础中的神经元结构是怎么样的?以及常用的激活函数有哪些?各有什么优缺点和应用场景。附公式及代码。(二)

【深度学习基础|知识概述】神经网络基础中的神经元结构是怎么样的?以及常用的激活函数有哪些?各有什么优缺点和应用场景。附公式及代码。(二)

【深度学习基础|知识概述】神经网络基础中的神经元结构是怎么样的?以及常用的激活函数有哪些?各有什么优缺点和应用场景。附公式及代码。(二)



欢迎铁子们点赞、关注、收藏!
祝大家逢考必过!逢投必中!上岸上岸上岸!upupup

大多数高校硕博生毕业要求需要参加学术会议,发表EI或者SCI检索的学术论文会议论文:
可访问艾思科蓝官网,浏览即将召开的学术会议列表。会议详细信息可参考:https://ais.cn/u/EbMjMn

2. 常见的激活函数

在深度学习中,激活函数(Activation Function)是神经网络中至关重要的组成部分。它决定了神经元的输出,并使得神经网络具有非线性变换的能力,从而能够学习复杂的映射关系。不同的激活函数在不同的任务和网络架构中有不同的应用和效果。接下来,我们将详细介绍常用的激活函数,包括它们的优缺点、应用场景,并附上相应的公式和代码。

3. ReLU(Rectified Linear Unit)激活函数

公式:

在这里插入图片描述

图像:

在这里插入图片描述

优点:
  • 计算简单:ReLU 的计算非常简单,只需要比较输入和零,计算开销非常小。
  • 避免了梯度消失问题:由于 ReLU 对于正值输入不会饱和,因此在训练过程中不会出现梯度消失问题,能够有效地加速训练。
  • 稀疏性:ReLU 在负输入时输出 0,这种稀疏性可以促进特征选择和减少过拟合。
缺点:
  • “死亡神经元”问题:当输入为负时,ReLU 输出为 0,导致神经元“死亡”,即该神经元在训练过程中永远不会更新。
  • 对初始化敏感:ReLU 对权重初始化较为敏感,若权重初始化不好,可能导致神经元输出为 0。
应用场景:
  • 卷积神经网络(CNN)和深度神经网络(DNN):ReLU 是深度神经网络中最常用的激活函数,尤其在图像分类和其他任务中有广泛应用。
代码实现:
def relu(x):
    return np.maximum(0, x)

x = np.array([-10, -1, 0, 1, 10])
y = relu(x)
print(y)

4. Leaky ReLU 激活函数

公式:

在这里插入图片描述其中, α α α 是一个很小的常数(例如 0.01)。

图像:

在这里插入图片描述

优点:
  • 解决死亡神经元问题:Leaky ReLU 对负值输入也有一个小的斜率( α α α),避免了神经元完全“死亡”的问题。
  • 计算简单:和 ReLU 一样,Leaky ReLU 的计算也非常简单,且开销较小。
缺点:
  • 仍然可能导致死神经元:虽然 Leaky ReLU 改善了 ReLU 的问题,但如果 α α α 设置不当,仍然可能导致一些神经元不更新。
应用场景:
  • 深层神经网络:Leaky ReLU 在深层神经网络中应用,尤其是在卷积神经网络(CNN)中,避免了部分神经元死掉的现象。
代码实现:
def leaky_relu(x, alpha=0.01):
    return np.where(x > 0, x, alpha * x)

x = np.array([-10, -1, 0, 1, 10])
y = leaky_relu(x)
print(y)

5. Softmax 激活函数

公式:

在这里插入图片描述

图像:

在这里插入图片描述

优点:
  • 多分类问题:Softmax 将每个类别的得分转化为概率值,适用于多分类任务。
  • 概率输出:Softmax 的输出值为概率,可以用来进行分类决策。
缺点:
  • 计算复杂:计算 Softmax 函数时涉及指数运算,对于较大的输入值,可能导致数值不稳定。
应用场景:
  • 多分类问题:Softmax 激活函数常用于神经网络的输出层,特别是在多分类问题中,输出每个类别的概率分布。
代码实现:
def softmax(x):
    e_x = np.exp(x - np.max(x))  # 防止溢出
    return e_x / e_x.sum(axis=0, keepdims=True)

x = np.array([1.0, 2.0, 3.0])
y = softmax(x)
print(y)

6. Swish 激活函数

公式:

在这里插入图片描述
其中 σ ( x ) σ(x) σ(x) 是 Sigmoid 函数。

图像:

在这里插入图片描述

优点:
  • 性能优越:Swish 函数在一些任务中比 ReLU 和 Sigmoid 更有效,能够提高训练效果,尤其是在深度网络中。
  • 平滑:Swish 函数是平滑的,不容易出现梯度消失或梯度爆炸问题。
缺点:
  • 计算复杂:相较于 ReLU,Swish 计算复杂,可能会带来一些性能开销。
应用场景:
  • 深度神经网络和卷积神经网络:Swish 常用于更复杂的网络,尤其是在 ImageNet 等大规模图像分类任务中。
代码实现:
def swish(x):
    return x * sigmoid(x)

x = np.array([-10, -1, 0, 1, 10])
y = swish(x)
print(y)

总结

每种激活函数都有其特定的优缺点和适用场景。选择合适的激活函数取决于任务的要求以及网络的深度和结构。在深度学习中,常用的激活函数包括 Sigmoid、Tanh、ReLU、Leaky ReLU、Softmax 和 Swish。对于大多数神经网络,ReLU 是最常用的激活函数,而在一些特殊任务中,其他激活函数(如 Softmax、Leaky ReLU 或 Swish)可能会带来更好的性能。

补充激活函数介绍请参考:【深度学习基础|知识概述】神经网络基础中的神经元结构是怎么样的?以及常用的激活函数有哪些?各有什么优缺点和应用场景。附公式及代码。(三)

第四届能源利用与自动化国际学术会议(ICEUA 2025)

  • 2025 4th International Conference on Energy Utilization and Automation (ICEUA 2025)
  • 大会官网:www.iceua.org
  • 会议时间:2025年1月17-19日
  • 会议地点:中国-北京
  • 接受/拒稿通知:投稿后1周内
  • 提交检索:EI Compendex、Scopus
;