完整教程:深度学习-神经网络(上篇)

news/2025/9/23 16:20:51/文章来源:https://www.cnblogs.com/yfceshi/p/19107438

一、神经网络概述

1. 基本概念

  • ​人工神经网络 (ANN)​​:一种模仿生物神经网络结构与机制的计算模型。
  • ​生物神经元机理​​:树突接收输入信号,细胞核处理并聚集电荷,达到电位阈值后通过轴突输出电信号。
  • ​人工神经元机理​​:对多个输入进行​​加权求和​​,再通过一个​​激活函数​​产生输出。
    输出 = 激活函数(Σ(输入 * 权重) + 偏置)

2. 网络结构

一个典型的全连接神经网络包含以下层次:

  • ​输入层​​:接收原始数据。
  • ​隐藏层​​:介于输入和输出层之间,进行特征变换。可能有多个。
  • ​输出层​​:产生最终的预测结果。

​结构特点​​:

  • 信息单向传播(前向传播)。
  • 同一层的神经元之间无连接。
  • 第N层的每个神经元与第N-1层的所有神经元全连接。
  • 每个连接都有其权重(w)和偏置(b)。

3. 深度学习与机器学习的关系

  • ​深度学习是机器学习的一个子集​​。
  • 首要区别在于​​特征工程​​:
    • ​传统机器学习​​:严重依赖人工特征工程。
    • ​深度学习​​:模型通过多层神经网络​​自动学习​​数据的层次化特征表示。

二、激活函数

​作用​​:为网络引入​​非线性因素​​,使得神经网络能够拟合任意困难的函数。若无激活函数,多层网络等价于一个线性模型。

常见激活函数对比

激活函数公式输出范围特点优点缺点适用场景
​Sigmoid​f(x) = 1 / (1 + e⁻ˣ)(0, 1)S型曲线输出可视为概率1. 易产生​​梯度消失​​(导数范围(0, 0.25)
2. 非零中心
3. 计算含指数,较慢
​输出层​​(二分类)
​Tanh​f(x) = (eˣ - e⁻ˣ) / (eˣ + e⁻ˣ)(-1, 1)放大并平移的Sigmoid​零中心​​,收敛速度比Sigmoid快仍存在​​梯度消失​​问题​隐藏层​
​ReLU​f(x) = max(0, x)[0, +∞)简单阈值过滤1. 计算高效,缓解梯度消失(正区间)
2. 带来网络稀疏性
​神经元死亡​​(负区间梯度为0)​隐藏层​​(首选)
​Softmax​f(xᵢ) = eˣⁱ / Σⱼeˣʲ(0, 1) 且和为1多分类Sigmoid推广将输出归一化为​​概率分布​-​输出层​​(多分类)

激活函数选择指南

  • ​隐藏层​​:
    • ​优先运用 ReLU​​,注意学习率设置以防“死亡神经元”。
    • ReLU效果不佳时,可尝试 Leaky ReLU 等变体。
    • 少用 Sigmoid,可尝试 Tanh。
  • ​输出层​​:
    • ​二分类​​:Sigmoid
    • ​多分类​​:Softmax
    • ​回归​​:恒等函数(即无激活函数)

三、参数初始化途径

权重初始化的好坏直接影响模型的收敛速度和最终性能。

常见初始化方法

  1. ​容易初始化​​:

    • ​均匀分布初始化​​:torch.nn.init.uniform_()
    • ​正态分布初始化​​:torch.nn.init.normal_()
    • ​全零初始化​​:torch.nn.init.zeros_() -> ​​导致神经元对称失效,禁止使用​​。
    • ​全一初始化​​:torch.nn.init.ones_() -> 效果差,一般不使用。
    • ​固定值初始化​​:torch.nn.init.constant_()
  2. ​高级初始化(推荐)​​:

    • ​Kaiming (He) 初始化​​:为解决ReLU激活函数设计的初始化办法。
      • 正态分布:std = sqrt(2 / fan_in)
      • 均匀分布:limit = sqrt(6 / fan_in)
      • fan_in:该层输入神经元的个数。
      • PyTorch API: torch.nn.init.kaiming_normal_(), torch.nn.init.kaiming_uniform_()
    • ​Xavier (Glorot) 初始化​​:为消除Sigmoid/Tanh等S型激活函数设计。
      • 正态分布:std = sqrt(2 / (fan_in + fan_out))
      • 均匀分布:limit = sqrt(6 / (fan_in + fan_out))
      • fan_in:输入神经元个数,fan_out:输出神经元个数。
      • PyTorch API: torch.nn.init.xavier_normal_(), torch.nn.init.xavier_uniform_()

初始化方法选择

  • ​通常优先使用 Kaiming 或 Xavier 初始化​​。
  • PyTorch 中许多层已有合理的默认初始化,但自定义层时需手动初始化。

四、神经网络的搭建与参数计算

1. 模型搭建步骤(PyTorch)

在PyTorch中,通过继承 nn.Module 类来定义模型。

import torch.nn as nn
class MyModel(nn.Module):
def __init__(self, input_dim, hidden_dim, output_dim):
super(MyModel, self).__init__() # 必须调用父类初始化
# 定义网络层
self.linear1 = nn.Linear(input_dim, hidden_dim)
self.linear2 = nn.Linear(hidden_dim, output_dim)
# 初始化权重
nn.init.xavier_normal_(self.linear1.weight)
nn.init.kaiming_normal_(self.linear2.weight)
def forward(self, x):
# 定义前向传播路径
x = torch.sigmoid(self.linear1(x))
x = self.linear2(x) # 输出层通常不加激活函数,损失函数中会集成
return x

2. 参数量的计算

神经网络的参数量关键指​​权重(w)​​ 和​​偏置(b)​​ 的数量。

  • 对于一个全连接层:参数总量 = (输入特征数 + 1) * 输出特征数
    • +1 代表偏置项。
  • ​示例​​:一个输入为3个特征,输出为2个神经元的层,参数量为 (3 + 1) * 2 = 8
  • 可以使用 torchsummary 库的 summary(model, input_size) 函数自动计算和打印模型总参数量和各层细节。

3. 输入输出形状

  • ​输入张量形状​​:[batch_size, in_features]
  • ​输出张量形状​​:[batch_size, out_features]
  • 训练时使用 DataLoaderbatch_size 组织数据。

4. 神经网络的优缺点

  • ​优点​​:
    • 精度高,在诸多领域性能领先。
    • 能够近似任意复杂函数。
    • 社区成熟,有大量框架和库支持。
  • ​缺点​​:
    • ​黑箱模型​​,解释性差。
    • 训练时间长,计算资源消耗大。
    • 网络结构复杂,需要大量调参。
    • 在小数据集上容易​​过拟合​​。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/913136.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WBS、甘特图、关键路径……项目计划的五大核心概念一文全懂

在做项目时,你是不是经常遇到这种情况:事情一大堆,但总觉得手里没抓住重点; 每天忙忙碌碌,结果一看进度表,发现项目已经延迟; 领导问:“咱们项目什么时候能上线?”你心里没数,只能硬着头皮说“快了快了”。其…

智启新程:哲讯科技引领SAP ERP实施新范式

智启新程:哲讯科技引领SAP ERP实施新范式在全球化竞争与数字化转型的双重驱动下,ERP系统已成为企业高效运营与战略决策的核心支柱。SAP ERP作为全球领先的企业管理解决方案,其成功实施不仅关乎技术落地,更是企业业…

学做湘菜的视频网站win7如何做网站

一、前言 通常情况下,当我们默认安装docker服务时,在不指定默认存储路径时,docker会自动创建目录,经常会出现打满根目录的情况。 默认存储路径为:/var/lib/docker 下 可通过如下进行查询: docker info输出…

品牌购物网站十大排名建官网公司

注:以下所有代码中,红色部分为增加部分。一、在后台增加批量添加按钮打开“phpcms\modules\content\templates\content_list.tpl.php”文件搜索“$category[‘catname‘]));?>”在这句话的后天的添加:a echo"" href":;&q…

asp网站后台模板佛山做网站制作公司

最近想学一下Mamba模型,奈何看了很多视频还是感觉一知半解,因此做一篇笔记,顺便介绍一下Mamba结构作为CV backbone和时间序列预测领域的应用。 论文1. Mamba: Linear-Time Sequence Modeling with Selective State Spaces 0. Abstract 现有…

广州网站建设信科便宜高端ppt模板

短时傅里叶变换及其逆变换 本篇文章主要记录了使用python进行短时傅里叶变换,分析频谱,以及通过频谱实现在频域内降低底噪的代码及分析,希望可以给同样在学习信号处理的大家一点帮助,也希望大家对我的文章多提意见建议。 一. 短…

南京 网站建站上海企业信息查询

每一个有新生儿的家庭都一定会挑选奶瓶,但是因为市面有太多品牌和款式,让大家难以挑选,更为重要的是还有可能会不小心选到劣质的产品,不仅奶嘴的仿真度差、易胀气,还可能高温消毒后散发有害物质!那么新生儿…

做shopify网站阿里云搭建网站

比如我在d:\fff下面有很多子文件夹,子文件夹里还有子文件夹,里面有些文件夹里有.ppm.bz2的后缀的文件,需要把他们找出来复制到d:\fff2里面,应该怎么用批处理写?最佳答案1234echo offfor /r d:\fff %%a in (*.ppm.bz2) …

都匀网站建设公司成都商城网站开发设计

目录 一、React 组件中怎么做事件代理?它的原理是什么? 二、React.Component 和 React.PureComponent 的区别 三、Component, Element, Instance 之间有什么区别和联系? 四、React声明组件有哪几种方法,有什么不同&#xff1f…

如何建CMS网站企业标识设计公司

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 常见的两种创建线程…

最好加盟网站建设大连建设学院网站

SeaTunnel 是使用的mvnw命令,可以先执行一下install-plugin.sh然后终止 理论上应该可以直接执行mvnw,他就会去安装下载maven,目录就是下面的目录 然后去服务器目录修改 setting.xml文件,设置镜像源即可 /root/.m2/wrapper/dists/apache-maven-3.8.4-bin/52ccbt68d252mdldqsfsn…

移动端性能监控探索:鸿蒙 NEXT 探针架构与技术实现

在鸿蒙 NEXT 的新时代,阿里云 ARMS RUM SDK 作为一款性能体验监控工具,可以作为辅助 APP 运维强有力的助手。作者:杨兰馨(楠瑆) 背景介绍 2024 年 10 月 22 日,华为在原生鸿蒙之夜正式发布 HarmonyOS NEXT(版本…

哲讯科技:以数智之力,铸就企业SAP ERP实施新典范

哲讯科技:以数智之力,铸就企业SAP ERP实施新典范在当今瞬息万变的商业环境中,企业数字化转型已不是选择题,而是生存题。SAP ERP作为全球领先的企业资源规划系统,以其高度的集成性、前瞻的管理思想和强大的功能,成…

Shell 脚本编程:函数 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

PR曲线绘制

PR曲线绘制 https://blog.csdn.net/xiang_gina/article/details/149962713作者:太一吾鱼水 宣言:在此记录自己学习过程中的心得体会,同时积累经验,不断提高自己! 声明:博客写的比较乱,主要是自己看的。…

5台电脑怎么同步文件最安全高效?别再只知道用局域网共享了!

还在为多台电脑文件同步烦恼,手动传输效率低?本文提供最佳解决方案,教你告别U盘。详解如何使用坚果云实现文件无感、实时同步,并借助其历史版本与云桥模式功能,安全且节省空间地管理多设备文件,是高效办公的必备…

建设信用网站的目的门户网站建设总结

windows下的TortoiseSVN是资源管理器的一个插件,以覆盖图标表示文件状态,几乎所以命令都有图形界面支持,比较好用,这里就不多说。主要说说linux下svn的使用,因为linux下大部分的操作都是通过命令行来进行,所…

wordpress付费插件网站网络优化工程师证

2008/02/28 17:32i当ListView绑定数据源后,这个效果让我无从下手, 这个问题一直困扰着我,后来我在CSDN上发贴求助,问题终于得以解决,这是一位大大给的回复: 以下各节提供了三种方法,用于创建各行的 Background 颜色具有交替效果的 ListView。该示例还论述用于在添加…

自己建网站做那个模块好建设网站的费用如何账务处理

🍁🍁🍁图像分割实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 unet医学细胞分割实战1 unet医学细胞分割实战2 unet医学细胞分割实战3 unet医学细胞分割实战4 unet…

专业开发网站多少钱做游戏类型的网站的好处

在我之前的文章 “Elasticsearch:使用 ELSER 进行语义搜索”,我们展示了如何使用 ELESR v1 来进行语义搜索。在使用 ELSER 之前,我们必须注意的是: 重要:虽然 ELSER V2 已正式发布,但 ELSER V1 仍处于 [预览…