深度学习-卷积神经网络实战文档注释
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 知识扩展虚拟号保护隐私虚拟运营商被用于拨打骚扰…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...
uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)
UniApp 集成腾讯云 IM 富媒体消息全攻略(地理位置/文件) 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型,核心实现方式: 标准消息类型:直接使用 SDK 内置类型(文件、图片等)自…...
基于Uniapp的HarmonyOS 5.0体育应用开发攻略
一、技术架构设计 1.混合开发框架选型 (1)使用Uniapp 3.8版本支持ArkTS编译 (2)通过uni-harmony插件调用原生能力 (3)分层架构设计: graph TDA[UI层] -->|Vue语法| B(Uniapp框架)B --&g…...
