【机器学习】深度学习(DNN)
文章目录
- 1. 神经网络结构
- 2. 训练步骤
- 3. 反向传播
- 4. 为什么深,而不是宽(模块化)
- 5. 初始化参数能否全为0?
1. 神经网络结构
- 输入层
- 隐藏层:用于特征转换
- 输出层:用于分类
- 技巧:将网络中的参数写成矩阵形式,利用GPU加速
2. 训练步骤
- 确定神经网络的结构
- 需要根据输入和输出的维度来确定结构,最关键的部分。
- 注:考虑输入之间的内在关联,所有的类(class)使用同一个模型进行分类。
- 评估函数
- 输出与正确结果的交叉熵。
- 选择最优函数
- 梯度下降法。
3. 反向传播
概念
反向传播是一种在做梯度下降时的微分方法。
方式
从后向前计算微分,因为前面的微分需要后面的结果。
两个部分
-
梯度: ∇ f w = ∂ l ∂ w = ∂ z ∂ w ⋅ ∂ l ∂ z \nabla f_w = \frac{\partial l}{\partial w} = \frac{\partial z}{\partial w} \cdot \frac{\partial l}{\partial z} ∇fw=∂w∂l=∂w∂z⋅∂z∂l
-
正向传播: ∂ z ∂ w \frac{\partial z}{\partial w} ∂w∂z ,即每一个神经元的输出。
-
反向传播:
∂ l ∂ z = ∂ a ∂ z ⋅ ∂ l ∂ a = σ ′ ( z ) [ w 3 ⋅ ∂ l ∂ z ′ + w 4 ⋅ ∂ l ∂ z ′ ′ ] \frac{\partial l}{\partial z} = \frac{\partial a}{\partial z} \cdot \frac{\partial l}{\partial a} = \sigma'(z) \left[ w_3 \cdot \frac{\partial l}{\partial z'} + w_4 \cdot \frac{\partial l}{\partial z''} \right] ∂z∂l=∂z∂a⋅∂a∂l=σ′(z)[w3⋅∂z′∂l+w4⋅∂z′′∂l]
将正向传播和反向传播的结果相乘,得到L对w的偏微分。
与正向传播比较
- 反向传播需要更多的内存,但效率更高。
- 无需像正向传播那样每次计算微分时都要重新计算后续的结果,减少了栈空间的使用。
全连接反馈网络
- 每一层的神经元输出全部进入下一层的输入。
4. 为什么深,而不是宽(模块化)
更深的网络:它的模型更加复杂,但这种复杂性是模块化的。
核心
- 将复杂的问题分解为多个简单的问题。每一层的神经元处理相同级别的任务,其输出作为更高层次任务的数据来源。
好处
- 每一层的输出都可以被深层的神经元重复利用,避免像浅层网络那样每次都重新计算,提高效率。
- 深层的隐藏层能够更详细地提取特征,提取后的特征能更好地进行分类,且比人为指定的特征更接近最优解。
- 每个基本分类器能够获得足够的训练示例,相比于平铺网络,较少的数据就能训练好。
注
- 深度/平铺网络的参数量是一样的,复杂性指的是网络结构,而不是参数数量。
5. 初始化参数能否全为0?
- 同一层的神经元是同构的,具有相同的输入和输出。如果初始参数设置为相同值,无论正向还是反向传播,它们的取值都会一样,导致学习过程无法打破对称性,最终训练结果会使同一层的参数都相同。
- 因此,应该在初始化时随机赋值,以打破这种对称性。
相关文章:
【机器学习】深度学习(DNN)
文章目录 1. 神经网络结构2. 训练步骤3. 反向传播4. 为什么深,而不是宽(模块化)5. 初始化参数能否全为0? 1. 神经网络结构 输入层隐藏层:用于特征转换输出层:用于分类技巧:将网络中的参数写成矩…...
12.30-1-5学习周报
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 文章链接摘要Abstract一、方法介绍1.HAT-CIR2.Horde3.DWGRNet 二、实验总结 文章链接 https://arxiv.org/pdf/2405.04101 摘要 本博客介绍了论文《Continual lea…...
【MySQL】数据操作
数据操作 一、INSERT1、介绍2、语法3、语法介绍4、注意事项5、示例 二、插入否则更新1、介绍2、语法3、语法介绍4、示例 三、ROW_COUNT1、介绍2、示例 四、REPLACE1、介绍2、语法3、示例 五、UPDATE1、介绍2、语法3、示例 六、DELETE1、介绍2、语法3、语法介绍 七、TRUNCATE1、…...
python数据分析:使用pandas库读取和编辑Excel表
使用 Pandas,我们可以轻松地读取和写入Excel 文件,之前文章我们介绍了其他多种方法。 使用前确保已经安装pandas和 openpyxl库(默认使用该库处理Excel文件)。没有安装的可以使用pip命令安装: pip install pandas ope…...
开源轻量级文件分享服务Go File本地Docker部署与远程访问
???欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老…...
异步背后的奥秘:事件循环
异步背后的奥秘:事件循环 复习环节 JavaScript运行时 我们都知道,JavaScript本身是一个单线程的,那JavaScript是如何处理同时发生的多个任务的呢? 首先JavaScript引擎运行在一个容器中,这个容器可能是浏览器或者nod…...
Springboot使用RabbitMQ实现关闭超时订单的一个简单示例
1.maven中引入rabbitmq的依赖: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency> 2.application.yml中进行rabbitmq相关配置: # rabbit…...
小程序基础 —— 07 创建小程序项目
创建小程序项目 打开微信开发者工具,左侧选择小程序,点击 号即可新建项目: 在弹出的新页面,填写项目信息(后端服务选择不使用云服务,开发模式为小程序,模板选择为不使用模板)&…...
【Golang 面试题】每日 3 题(十五)
✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/UWz06 📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏…...
Docker命令(用法说明详解)
一、常见Docker容器命令 #根据image创建一个新容器并运行(即使该image已经存在容器,也会再创建一个新容器) docker run IMAGE_NAME #根据image创建一个新容器并运行。 #选项-d:指定容器为后台运行,--name自定义该容器…...
leetcode 热题100(131. 分割回文串)c++
链接:131. 分割回文串 - 力扣(LeetCode) 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 示例 1: 输入:s "aab" 输出ÿ…...
vs2022编译opencv 4.10.0
参考:Windosw下Visual Studio2022编译OpenCV与参考区别在于,没有用cmake GUI,也没有创建build目录,直接用vs2022打开了C:\code\opencv目录,即CMakeLists.txt所在根目录。没有修改默认下载地址,采用手动下载…...
Bash 中的 2>1 | tee 命令详解
Bash 中的 2>&1 | tee 命令详解 在 Linux 和 Unix 系统中,命令行提供了强大的输出控制功能,能够灵活地处理标准输入(stdin)、标准输出(stdout)和标准错误(stderr)。本文将详…...
MySQL数据库的日志
一、概论 日志(log)是一种记录系统运行时各种状态和事件的文件。 它通常用于系统监控、故障排查、安全审计和性能分析。日志文件可以记录用户操作、系统错误、应用程序行为等信息。日志文件通常包含时间戳、事件类型、事件描述等关键信息,以…...
DataCap 2024.4.1 版本发布:MongoDB 驱动支持、工作流引擎升级
尊敬的 DataCap 用户: DataCap 2024.4.1 版本现已正式发布。本次更新包含多项重要功能升级和性能优化,现将主要更新内容公布如下: 核心功能升级 数据库功能增强 (实现功能) 新增数据库管理功能:支持创建、删除和切换数据库完善表…...
二十三种设计模式-单例模式
单例模式(Singleton):确保一个类只有一个实例,并提供一个全局访问点。 单例模式两种实现方法:懒汉式和饿汉式。 懒汉式(Lazy Initialization) 懒汉式单例模式在第一次被使用时才创建实例&…...
【微服务】SpringBoot 国际化适配方案使用详解
目录 一、前言 二、国际化概述 2.1 微服务中的国际化是什么 2.1.1 国际化概念 2.1.2 为什么需要国际化 2.2 微服务中常用的国际化方法 2.2.1 资源文件分离 2.2.2 使用国际化框架 2.2.3 使用动态模板 2.2.4 使用数据库存储 2.2.5 API设计结合配置中心 三、SpringBoot…...
太阳能电池板缺陷识别数据集,使用yolo,coco json,pasical voc xml格式标注,可识别旁路二极管,电池故障,热点,2234张原始图片
太阳能电池板缺陷识别数据集,使用yolo,coco json,pasical voc xml格式标注,可识别旁路二极管,电池故障,热点,2234张原始图片 以下是该项目的一些用例: 太阳能发电厂监控:该模型可用于自动化检查和识别大型…...
客户案例:基于慧集通平台集成打通小满CRM+金蝶云星空+钉钉
一、引言 本案例原型公司是一家生物科技公司,公司自开创以来专注于体外诊断生物活性原材料的研究、生产、销售和服务,致力于为全球体外诊断试剂生产企业提供领先且具有竞争力的核心原料和相关辅助产品服务。公司以卓越的产品和优质的服务赢得了客户的广…...
ubuntu 如何使用vrf
在Ubuntu或其他Linux系统中,您使用ip命令和sysctl命令配置的网络和内核参数通常是临时的,这意味着在系统重启后这些配置会丢失。为了将这些配置持久化,您需要采取一些额外的步骤。 对于ip命令配置的网络接口和路由,您可以将这些配…...
企业自建内部知识库,最容易死在这8个问题上(管理+技术双维度)
很多企业想做内部知识库:把经验、图纸、方案、流程、故障案例沉淀下来,避免人员流失就丢技术、避免重复踩坑。但真正落地后,90%都变成了“僵尸文档库”——要么没人用、没人更,要么技术层面跟不上需求,AI模式形同虚设。…...
用Python lifetimes库实战:手把手教你用BG/NBD+Gamma-Gamma模型预测电商用户未来3个月价值
用Python lifetimes库实战:电商用户价值预测的极简指南 电商行业的核心挑战之一是如何精准识别高价值用户。想象一下,你手头有一份过去12个月的交易数据,老板要求你在下周的预算会议前,预测未来三个月哪些用户最值得投入营销资源。…...
Keil MDK中HEX文件未生成的8.3路径问题解析
1. 问题现象与背景解析 在嵌入式开发领域,Keil MDK(Microcontroller Development Kit)是广泛使用的集成开发环境,尤其针对C166系列微控制器。最近遇到一个典型问题:开发者在Vision1环境中配置了L166链接器和OH166 HEX转…...
图解RDMA内存安全:从L_Key/R_Key到Memory Window的钥匙与门禁
图解RDMA内存安全:钥匙与门禁的权限艺术 在数据中心的高速网络世界里,远程直接内存访问(RDMA)技术如同一位隐形的快递员,能够在服务器之间直接投递数据包裹,完全绕过CPU的繁琐签收流程。而确保这位"快…...
小学期学习记录
第十一周观看了前四个视频,了解了低通滤波器的作用以及进行了仿真。...
TVA智能体范式的工业视觉革命(3)
重磅预告:本专栏将独家连载系列丛书《智能体视觉技术与应用》部分精华内容,该书是世界首套系统阐述“因式智能体”视觉理论与实践的专著,特邀美国 TypeOne 公司首席科学家、斯坦福大学博士 Bohan 担任技术顾问。Bohan先生师从美国三院院士、“…...
441GB香港OSGB数据实战:从ContextCapture目录到Smart3D加载的完整指南
1. 441GB香港OSGB数据背景解析 第一次拿到441GB的香港OSGB数据时,我的硬盘指示灯疯狂闪烁了整整一晚上。这种规模的倾斜摄影数据在业内确实罕见,特别是覆盖香港565平方公里区域的完整数据集。实测发现,这套数据采用ContextCapture标准目录结构…...
解锁CLIP潜力:三种高效微调策略实战解析
1. CLIP模型微调的必要性 CLIP作为多模态模型的里程碑之作,其zero-shot能力确实令人惊艳。但真实业务场景中,我们常常遇到这样的困境:电商平台需要区分"奶白色"和"米白色"的家具面料,医疗影像需要识别特定病灶…...
Google:让鼠标学会「看见」这件事意味着什么#Magic Pointer
Google DeepMind发布的Magic Pointer(AI Pointer)让鼠标指针获得了视觉理解和语义推理能力。用户只需要指向画面中的某个对象并说出简短指令,AI就能理解意图并执行复杂操作:订餐、查路线、比价。这个看似简单的能力跃迁࿰…...
ARM架构操作系统内核设计与多线程优化实践
1. 操作系统内核基础与多线程实现1.1 内核架构与资源管理现代操作系统内核作为计算机系统的核心,承担着硬件抽象和资源管理的双重职责。在Raspberry Pi这样的ARM架构设备上,内核需要特别处理以下关键组件:内存管理单元(MMU):通过两…...
