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

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

时间:2025-01-01 10:26:10浏览次数:3  
标签:场景 函数 优缺点 ReLU 神经网络 激活 神经元

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

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


文章目录


欢迎铁子们点赞、关注、收藏!
祝大家逢考必过!逢投必中!上岸上岸上岸!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

标签:场景,函数,优缺点,ReLU,神经网络,激活,神经元
From: https://blog.csdn.net/2401_89898861/article/details/144719867

相关文章

  • 为什么要用 Nodejs?它的优缺点有哪些?
    使用Node.js的原因以及其优缺点,特别是对于前端开发,可以归纳如下:为何使用Node.js?服务器端开发:Node.js最初目的是用于构建高性能的网络服务器。其异步非阻塞IO模型使得开发者可以处理大量并发请求,非常适合构建高性能的服务器应用。统一语言:Node.js允许前端开发者使用熟悉的JavaS......
  • vite快在哪?它有什么优缺点?
    Vite的快主要体现在以下几个方面:快速的冷启动时间:Vite利用现代浏览器的原生ESM(ES模块)加载能力,通过浏览器直接解析和执行代码,避免了传统构建工具中的打包过程。这使得Vite在启动速度上有着显著的优势,可以在几百毫秒内完成冷启动。高效的热更新机制:Vite支持快速的热模块替换(HMR),只......
  • 手写 k近邻 与 全连接神经网络 算法
    KNN(K-近邻算法)K-近邻算法的介绍参考:https://blog.csdn.net/weixin_39910711/article/details/114440816手写knn算法,实现mnist的图片数字识别#手动实现knnimportiofromstructimportpack,unpackimportrandomfromPILimportImageimporttimeimportnumpyasnp......
  • 【人工智能机器学习基础篇】——深入详解深度学习之神经网络基础:理解前馈神经网络与反
    深入详解深度学习之神经网络基础:理解前馈神经网络与反向传播算法        深度学习作为人工智能(AI)的核心技术,已经在语音识别、图像处理、自然语言处理等诸多领域取得了显著的成果。而在深度学习的众多模型中,**前馈神经网络(FeedforwardNeuralNetworks,FNN)与反向传播......
  • 说说你对SPA和MPA的理解,它们之间的优缺点分别是什么?
    SPA(Single-PageApplication)和MPA(Multi-PageApplication)是两种常见的Web应用程序架构,它们各自具有不同的特点和优缺点。SPA的理解及其优缺点SPA,即单页面应用,是一种Web应用架构,其中所有的内容和功能都包含在单一的HTML页面中。用户在与界面交互时,不会进行全页刷新,而是通过动态更......
  • pytorch中神经网络的定义方法
    1.继承torch.nn.Module类(推荐方法)最常见和推荐的方式是通过继承torch.nn.Module类来创建一个自定义的神经网络模型。在这种方式下,你需要定义__init__()方法来初始化网络层,并在forward()方法中定义前向传播逻辑。示例:一个简单的全连接神经网络importtorchimpor......
  • 上机实验五:BP 神经网络算法实现与测试
    上机实验五:BP神经网络算法实现与测试1、实验目的深入理解BP神经网络的算法原理,能够使用Python语言实现BP神经网络的训练与测试,并且使用五折交叉验证算法进行模型训练与评估。2、实验内容(1)从scikit-learn库中加载iris数据集,使用留出法留出1/3的样本作为测试集(注......
  • 【故障诊断】基于贝叶斯优化卷积神经网络BO-CNN实现故障诊断附matlab代码
    研究背景在智能制造和工业4.0的背景下,设备的可靠性和安全性成为了生产过程中的关键因素。故障诊断作为维护设备正常运行的重要手段,其准确性和效率对于减少停机时间、提高生产效率和保障人员安全具有重要意义。传统的故障诊断方法,如基于规则的方法、统计方法和机器学习算法,......
  • [论文精读](神经网络加速)Eyerissv2原论文精读(一)整体结构分析与背景介绍
    论文链接:Eyerissv2:AFlexibleAcceleratorforEmergingDeepNeuralNetworksonMobileDevices|IEEEJournals&Magazine|IEEEXplore概述Eyeriss是MIT Yu-HsinChen 团队最早于2016年推出的神经网络加速框架,Eyerissv2是其在2019年推出的改进。相比Eyerissv1,v2......
  • datax与sqoop的优缺点?
    DataX的优缺点优点多种数据源支持:DataX是一个开源的数据同步工具,它支持多种数据源之间的数据传输,包括关系型数据库(如MySQL、Oracle、SQLServer等)、非关系型数据库(如HBase、Hive、Elasticsearch等)以及文件系统(如本地文件、HDFS等)。例如,它可以方便地将MySQL中的数据......