深度学习-卷积神经网络实战文档注释
1、call 方法
是一个特殊的方法,它允许类的实例表现得像函数一样。也就是说,你可以使用圆括号 () 来调用一个实例,就像调用普通函数一样。
当你调用 model(input_data) 时,实际上是调用了模型的 __ call __ 方法,其会自动调用 forward() 方法,完成前向传播的计算。而不需要(显示地)手动调用 model.forward(input_data)。
2、什么是卷积神经网络
卷积神经网络是一种带有卷积结构的深度神经网络,卷积结构可以减少深层网络占用的内存量,其三个关键的操作,其一是局部感受野,其二是权值共享,其三是 pooling 层,有效的减少了网络的参数个数,缓解了模型的过拟合问题。
3、卷积神经网络注意事项
数据驱动的模型一般依赖于数据集的大小,CNN 和其他经验模型一样,能够适用于任意大小的数据集,但用于训练的数据集应该足够大, 能够覆盖问题域中所有已知可能出现的问题。
4、正交初始化(Orthogonal Initialization)
是一种用于神经网络权重初始化的方法,旨在使权重矩阵具有正交性。正交矩阵的行或列是彼此正交并且单位化的,这种初始化方式有助于维持梯度的规模,防止在深度神经网络训练过程中发生梯度爆炸或消失。
正交初始化的具体实现步骤
生成随机矩阵:首先,从均值为0、方差为1的高斯分布中随机生成一个矩阵。
奇异值分解(SVD):对生成的随机矩阵进行奇异值分解(SVD),得到两个正交矩阵U和V,以及一个对角矩阵Σ。
选择正交矩阵:从U和V中选择一个作为初始化后的权重矩阵。通常选择形状与目标权重矩阵匹配的那个。
正太分布、均匀分布和正交分布都叫随机初始化
5、零值初始化
在零值初始化中,所有权重 W 和偏置 b 都被设置为零:
W=0,b=0
零值初始化的问题
对称性问题:
如果所有权重都初始化为零,那么在训练过程中,所有神经元的输出和梯度更新都会相同。这导致模型无法有效学习,因为所有的隐含单元都计算相同的函数,这种情况称为对称性问题(Symmetry Breaking Problem)。
例如,对于一个简单的神经网络,如果所有权重都初始化为零,那么每个神经元的输入和输出在每一层都会相同,梯度更新也会相同,从而无法打破对称性。
梯度消失问题:
由于所有初始值都为零,梯度在反向传播过程中也会非常小,这可能导致梯度消失问题,使得模型难以收敛。
6、如何选择激活函数
(1)任选其一:若网络层数不多
(2)ReLU:若网络层数较多
不宜选择sigmoid、tanh,因为它们的导数都小于1,sigmoid的导数更是在[0, 1/4]之间。
根据微积分链式法则,随着网络层数增加,导数或偏导将指数级变小。
所以,网络层数较多的激活函数其导数不宜小于1也不能大于1,大于1将导致梯度爆炸,导数为1最好,而relu正好满足这个要求。
7、全局平均池化
常用于卷积神经网络的末端,以替代传统的全连接层,减少模型的参数量,简化网络结构,提高计算效率
8、正则化为啥能够防止过拟合
首先,模型越复杂,越容易过拟合,即我们想要拟合的是一般规律,但是模型却会把一些噪声也拟合进来。
其次,权重参数可以决定模型复杂度,当很多参数接近0(影响变小),甚至为0时,模型的很多项将失效,可以借助多项式理解,复杂度自然降低。
最后,正则化项可以让很多权重参数为0,比如L2正则化项,它是由权重参数的平方求和再求平方根,所以为了让损失函数最小,受到正则化项的惩罚,权重参数就会尽量小。
8.1 L1正则化
形式为参数的绝对值求和再乘以一个正则化超参数
目的是使冗余的参数置零,只保留权重大的前N个参数。所以也叫做特征选择。
8.2 L2正则化
L2正则化(权重衰减) —— 过拟合参数趋近于0
L2正则化(L2范数),通常表示为:||W||2:指权值向量 W 中各个元素的平方和,然后求平方根。
特点:又叫权重衰减。即抑制模型中产生过拟合的参数,使其趋近于0(而不等于0),影响变小。
特点:倾向于让所有参数的权值尽可能小。
8.3 dropout正则化
对于使用了 Dropout 的神经网络,在反向传播时,只会对参与正向传播的神经元的权重参数进行更新,被丢弃的神经元的权重参数不会更新。以下是具体的原因和过程:
Dropout 的工作原理
在训练过程中,Dropout 随机地丢弃(即置零)一部分神经元的输出。这意味着在每次前向传播时,有一部分神经元的输出被置为零,这些神经元在当前的前向传播中不参与计算。
反向传播的链式法则
反向传播是基于链式法则进行的。链式法则表明,每个权重参数的梯度是通过其对应的神经元的输出和下游神经元的梯度计算得到的。如果一个神经元的输出在前向传播中被置为零,那么在反向传播时,这个神经元的梯度也会被置为零,因为它的输出对最终的损失函数没有贡献。
权重参数的更新
在反向传播时,每个权重参数的更新量是根据其梯度计算得到的。如果一个神经元的梯度为零,那么其对应的权重参数的更新量也为零,即这个权重参数不会被更新。
在卷积层中的应用
在 CNN 中,卷积层的输出是一个多维的特征图(feature map)。Dropout 在卷积层中的应用通常有两种形式:标准 Dropout 和 Spatial Dropout。
标准 Dropout
工作原理:
标准 Dropout 会在特征图的每个元素上独立地应用 Dropout。也就是说,每个特征图中的每个像素点都有一定的概率被置为零。
例如,假设有一个特征图的形状为 (N,C,H,W),其中 N 是批量大小,C 是通道数,H 和 W 是特征图的高度和宽度。标准 Dropout 会在每个元素上独立地应用 Dropout,每个元素被丢弃的概率为 p。
实现:
在 PyTorch 中,可以使用 nn.Dropout 来实现标准 Dropout。
self.dropout = nn.Dropout(p=0.5)
Spatial Dropout
工作原理:
Spatial Dropout 与标准 Dropout 不同,它是在特征图的整个通道上应用 Dropout。也就是说,整个通道的特征图要么全部保留,要么全部丢弃。
例如,假设有一个特征图的形状为 (N,C,H,W),Spatial Dropout 会在每个通道上独立地应用 Dropout,每个通道被丢弃的概率为 p。
这种方法可以更好地保留特征图的空间结构,因为整个通道的特征图要么全部保留,要么全部丢弃,不会破坏特征图的空间相关性。
实现:
在 PyTorch 中,可以使用 nn.Dropout2d 来实现 Spatial Dropout。
self.dropout = nn.Dropout2d(p=0.5)
参考
https://blog.csdn.net/shinuone/article/details/127289512
https://blog.csdn.net/jiaoyangwm/article/details/80011656
相关文章:
深度学习-卷积神经网络实战文档注释
1、call 方法 是一个特殊的方法,它允许类的实例表现得像函数一样。也就是说,你可以使用圆括号 () 来调用一个实例,就像调用普通函数一样。 当你调用 model(input_data) 时,实际上是调用了模型的 __ call __ 方法,其会自…...
GR2103高压半桥栅极驱动芯片
产品简介 GR2103封装和丝印 GR2103是一款高性价比的高压半桥栅极驱动专用芯片,设计用于高压、高速驱动N型大功率 MOS管、IGBT管。内置欠压(UVLO)保护功能,防止功率管在过低的电压下工作,提高效率。内置防止直通功能…...
学习threejs,使用OrbitControls相机控制器
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.OrbitControls 相机控…...
说说Babylon.js中scene.deltaTime的大坑
诡异的问题 下面是给一个材质设置发光颜色周期变化和纹理偏移的代码,你能感觉到这里面可能出现的问题吗? var passTime 0;var uOffset 0;var deltaTime 0;function SetEmissiveColor() {passTime scene.deltaTime * 0.05;if(passTime > 6.2…...
【React】win系统环境搭建
动图更精彩 方案如下 在Visual Studio Code(VSCode)中搭建React开发环境是一个相对简单但非常重要的步骤,可以帮助你更高效地进行前端开发。以下是详细的步骤和配置指南: 一、准备工作 安装Visual Studio Code (VSCode)&#x…...
ThinkPHP 8的一对一关联
【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 编程与应用开…...
Linux 下配置 Golang 环境
go sdk 下载环境:https://golang.google.cn/dl/选择对应的版本: 使用 wget 直接拉包下载到服务器中 wget https://golang.google.cn/dl/go1.23.4.linux-amd64.tar.gz如果找不到 wget 命令,yum 下载 wget yum -y install wget配置 go 的环境…...
爬虫后的数据处理与使用(使用篇--实现分类预测)
()紧接上文,在完成基本的数据处理后,接下来就是正常的使用了。当然怎么用,确实需要好好思考一下~ 上文:爬虫后的数据处理与使用(处理篇) 前言: 一般来说,我…...
arcgis提取不规则栅格数据的矢量边界
效果 1、准备数据 栅格数据:dem或者dsm 2、栅格重分类 分成两类即可 3、新建线面图层 在目录下选择预先准备好的文件夹,点击右键,选择“新建”→“Shapefile”,新建一个Shapefile文件。 在弹出的“新建Shapefile”对话框内“名称”命名为“折线”,“要素类型”选…...
python milvus 如何检查有多少个collection 以及多少个index,多少个database
在 Milvus 中,可以通过 Python 客户端(`pymilvus`)来检查当前有多少个集合(Collection)、索引(Index)和数据库(Database)。以下是具体的方法: --- ### 1. 检查有多少个集合(Collection) 使用 `list_collections()` 方法可以列出当前连接的所有集合。 ```python…...
2006-2020年各省工业增加值数据
2006-2020年各省工业增加值数据 1、时间:2006-2020年 2、来源:国家统计局、统计年鉴 3、指标:行政区划代码、地区名称、年份、工业增加值 4、范围:31省 5、指标解释:工业增加值是指工业企业在一定时期内以货币形式…...
【MySQL】使用C语言链接
🌈 个人主页:Zfox_ 🔥 系列专栏:MySQL 目录 一:🔥 MySQL connect 🦋 Connector / C 使用🦋 mysql 接口介绍🦋 完整代码样例 二:🔥 共勉 一&#…...
Vue篇-07
Vue UI组件库 一、移动端常用的UI组件库 1.1、Vant 1.2、Cube UI 1.3、Mint UI 二、PC端常用的UI组件库 2.1、Element UI Element - The worlds most popular Vue UI framework 安装: 按需引入: 135_尚硅谷Vue技术_element-ui按需引入_哔哩哔哩_b…...
使用 LLaMA-Factory 微调大模型
本文将介绍如下内容: 一、搭建 Docker Container 环境二、配置大模型训练环境三、构建、配置数据集四、训练大模型 一、搭建 Docker Container 环境 笔者此前多篇文章说明,此处不再赘述,可参考:NGC容器中快速搭建Jupyter环境 E…...
数据仓库的复用性:模型层面通用指标体系、参数化模型、版本化管理
在数据仓库设计中,复用性 是一个关键原则,它不仅能提升数据资产的使用效率,还能降低开发成本、优化系统运维。下面将从 模型层面的复用性、通用指标体系、参数化模型、版本化管理 四个方面进行详细介绍,并提供可落地的设计方案。 …...
Web APP 阶段性综述
Web APP 阶段性综述 当前,Web APP 主要应用于电脑端,常被用于部署数据分析、机器学习及深度学习等高算力需求的任务。在医学与生物信息学领域,Web APP 扮演着重要角色。在生物信息学领域,诸多工具以 Web APP 的形式呈现ÿ…...
某国际大型超市电商销售数据分析和可视化
完整源码项目包获取→点击文章末尾名片! 本作品将从人、货、场三个维度,即客户维度、产品维度、区域维度(补充时间维度与其他维度)对某国际大型超市的销售情况进行数据分析和可视化报告展示,从而为该超市在弄清用户消费…...
电子杂志制作平台哪个好
作为一个热爱分享的人,我试过了好几个平台,终于找到了几款比较好用得电子杂志制作平台,都是操作界面很简洁,上手非常快的工具。 FLBOOK:这是一款在线制作H5电子画册软件,提供了各种类型的模板,可支持添加…...
Django Admin 实战:实现 ECS 集群批量同步功能
引言 在管理大规模 AWS ECS (Elastic Container Service) 集群时,保持本地数据库与 AWS 实际状态的同步是一项关键任务。手动更新既耗时又容易出错,因此自动化这个过程变得尤为重要。本文将介绍如何利用 Django Admin 的自定义动作功能来实现 ECS 集群的批量同步操作,从而大…...
虚拟拨号技术(GOIP|VOIP)【基于IP的语音传输转换给不法分子的境外来电披上一层外衣】: Voice over Internet Protocol
文章目录 引言I 虚拟拨号技术(GOIP|VOIP)原理特性:隐蔽性和欺骗性II “GOIP”设备原理主要功能III 基于IP的语音传输 “VOIP” (Voice over Internet Protocol)IV “断卡行动”“断卡行动”目的电信运营商为打击电诈的工作V 知识扩展虚拟号保护隐私虚拟运营商被用于拨打骚扰…...
Visual Studio 项目属性页开发完全教程:从基础到高级
Visual Studio 项目属性页开发完全教程:从基础到高级 【免费下载链接】project-system The .NET Project System for Visual Studio 项目地址: https://gitcode.com/gh_mirrors/pr/project-system Visual Studio 项目属性页是开发者管理项目配置的核心界面&a…...
从STM32迁移到普冉PY32F003:UART代码移植保姆级教程(附HAL库对比)
从STM32到普冉PY32F003的UART代码迁移实战指南 1. 国产MCU替代浪潮下的技术选择 近年来,半导体行业的供应链波动促使更多工程师将目光投向国产MCU解决方案。普冉PY32F003系列作为Cortex-M0内核的代表产品,以48MHz主频、64KB Flash和8KB RAM的配置&#x…...
Agent开发面试通关攻略:吃透稳拿offer
阅读前置:2026年当下最卷也最缺人的AI岗位,一定是AI Agent开发。最近刷遍CSDN、牛客、力扣最新面经,发现一个非常明显的招聘趋势:普通大模型微调岗位饱和内卷,而AI Agent开发岗位人才严重缺口,薪资更高、竞…...
政企数据安全:危机与出路
随着数字化转型的浪潮席卷全球,公共部门积累的数据量呈爆炸式增长。从公民个人信息到公共服务记录,从财政预算到基础设施管理数据——这些宝贵资源在提升政府治理效率的同时,也悄然成为网络犯罪分子的“新猎物”。当公共数据逐渐成为数字时代…...
SAP-ABAP:变量、常量、结构与内表声明(10篇博客合集) 第五篇:声明时的键值设计技巧:结构与内表的主键、非主键配置指南
变量、常量、结构与内表声明(10篇博客合集) 第五篇:声明时的键值设计技巧:结构与内表的主键、非主键配置指南如果把内表比作一张内存中的“数据库表”,那么键就是这张表的索引甚至主键。键的设计直接决定了数据的唯一性…...
DeepSeek-R1补全能力封测倒计时(仅剩72小时开放API灰度权限):这份内部测试SOP已被3家头部科技公司紧急采购
更多请点击: https://intelliparadigm.com 第一章:DeepSeek-R1代码补全能力封测全景概览 DeepSeek-R1 是深度求索(DeepSeek)推出的高性能开源推理模型,在代码补全场景中展现出显著的上下文理解力与多语言泛化能力。本…...
美团外卖mtgsig与waimai_sign双层签名逆向解析
1. 这不是“爬虫教程”,而是一份反向工程现场笔记你搜到这篇内容,大概率正卡在某个调试窗口前:抓包看到mtgsig和waimai_sign两个参数像两堵墙,无论怎么改请求头、换UA、清缓存,返回永远是{"code":403,"…...
写论文的神助攻!好用的AI写作辅助软件,逻辑清晰质量高
作为一名刚完成毕业论文的过来人,我太懂写论文的痛苦了 —— 选题迷茫、文献浩如烟海、框架混乱、逻辑不清、反复修改、查重降重反复折腾... 直到我发现了这套 AI 写作工具组合,简直是论文写作的 "开挂神器",效率直接拉满ÿ…...
智能体所有权与版权:AI Agent Harness Engineering 创造的作品归谁所有?
1. 标题选项 《AI Agent创作版权迷局破解:从Harness工程原理到所有权划分的完整指南》 《智能体作品归谁?AI Agent Harness Engineering场景下的版权规则深度拆解》 《告别权属纠纷:一文搞懂AI Agent生成内容的所有权、版权与收益分配规则》 《Harness工程视角下的AI创作权:…...
FT231XQ USB串口桥接板设计解析与实战应用指南
1. 项目概述:从FT232R到FT231XQ的USB串口桥接板演进在嵌入式开发和硬件调试的日常工作中,一个可靠、小巧且功能清晰的USB转串口(UART)桥接板(Breakout Board, 简称BoB)几乎是工程师手边的标配工…...
