深度学习-卷积神经网络实战文档注释
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 知识扩展虚拟号保护隐私虚拟运营商被用于拨打骚扰…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...
人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
