【深度学习】日常笔记12

news2025/2/2 0:54:50

当⾯对更多的特征⽽样本不⾜时,线性模型往往会过拟合。

线性模型没有考虑到特征之间的 交互作⽤。对于每个特征,线性模型必须指定正的或负的权重,⽽忽略其他特征。与线性模型不同,神经⽹络并不局限于单独查看每个特征,而是学习特征之间的交互。

p159的即使我们有⽐特征多得多的样本,深度神经⽹络也有可能过拟合。2017年,⼀组研究⼈员通过在随机标记的 图像上训练深度⽹络。这展⽰了神经⽹络的极⼤灵活性,因为⼈类很难将输⼊和随机标记的输出联系起来, 但通过随机梯度下降优化的神经⽹络可以完美地标记训练集中的每⼀幅图像。想⼀想这意味着什么?假设标签是随机均匀分配的,并且有10个类别,那么分类器在测试数据上很难取得⾼于10%的精度,那么这⾥的泛 化差距就⾼达90%,如此严重的过拟合。

我觉得可以这样解释“那么分类器在测试数据上很难取得⾼于10%的精度”:

这是因为在训练过程中,深度神经网络主要依赖于训练集的样本和标签进行学习和优化。当训练集中的图像与测试集中的图像存在较大差异时,例如内容、背景、角度、光照等方面的差异,神经网络可能无法准确地将这些差异相关联。

在上文所描述的研究中,训练集中的图像标签是随机均匀分配的,没有实际含义。由于标签的随机性,神经网络很难找到通用的特征或模式来正确分类不同类别的图像。因此,当用这种训练方式得到的网络去处理新的、与训练集不相关的图像时,它的预测能力非常有限,准确率会很低,可能只有不到10%。

这也说明了在机器学习中,训练集的质量和代表性对于构建一个具有良好泛化能力的模型非常重要。如果训练集中包含了更多与测试集相似的样本和标签,深度神经网络在处理新图像时会有更高的准确率。同时,采用适当的数据增强、正则化技术以及调整模型的复杂度等方法,也可以有效缓解过拟合问题,提高预测准确率。

深度⽹络的泛化性质令⼈费解,⽽这种泛化性质的数学基础仍然是悬⽽未决的研究问题。嗯…感觉就是玄学问题了,那训练出加强泛化性质的模型岂不是要拜佛求神了()


根据上面的理论,代码即可设计为↓

def dropout_layer(X, dropout):
   
# 确保 dropout 的取值在 0 1 之间,若不在则停止代码执行,抛出AssertionError 异常
   
assert 0 <= dropout <= 1

   
# 如果 dropout 等于 1,则所有元素都被丢弃,返回与输入张量 X 相同大小的零张量
   
if dropout == 1:
       
return torch.zeros_like(X)

   
# 如果 dropout 等于 0,则所有元素都被保留,直接返回输入张量 X
   
if dropout == 0:
       
return X
   
# 对于其他情况,需要生成一个掩码来选择是否丢弃每个元素:
   
# 这行代码生成一个与输入张量 X 相同大小的 随机数 矩阵,
   
# 并将其大于 dropout 的值设置为 1,小于等于 dropout 的值设置为 0
   
# 最后将其转换为 float 类型。

# torch.rand()从区间 [0, 1) 上均匀分布的随机数生成的
   
mask = (torch.rand(X.shape) > dropout).float()

   
# 下面一行代码将掩码与输入张量 X 进行对应矩阵内元素相乘的操作,实现元素的丢弃操作。
   
# 并且除以 (1 - dropout) 的比例因子,以保持与未丢弃元素的期望值一致(这个自己求一下期望就知道了)
   
# 综上所述,该段代码中的 dropout_layer 函数根据传入的 dropout 参数,在神经网络中应用了 dropout 技术,随机丢弃一部分元素来减少过拟合风险。
   
return mask * X / (1.0 - dropout)

dropout是需要自己带入其中的暂退概率。


暂退法仅在训练期间使⽤。通常,我们在测试时不⽤暂退法。给定⼀个训练好的模型和⼀个新的样本,我们不会丢弃任何节点,因此不需要标准化。然⽽也有⼀些例外:⼀些研究⼈员在测试时使⽤暂退法,⽤于估计神经⽹络预测的“不确定性”:如果通过许多不同的暂退法遮盖后得到的预测结果都是⼀致的,那么我们可以说⽹络发挥更稳定。

p164练习

1. 如果更改第⼀层和第⼆层的暂退法概率,会发⽣什么情况?具体地说,如果交换这两个层,会发⽣什么 情况?设计⼀个实验来回答这些问题,定量描述该结果,并总结定性的结论。

答:原本的dropout1, dropout2 = 0.2, 0.5。

更改第一层和第二层的Dropout概率会对模型的训练和性能产生影响。具体来说,如果交换这两个层的Dropout概率,会导致以下情况:

  1. 改变第一层的Dropout概率(dropout1),增大dropout1可能会增加模型的正则化效果,减少过拟合的风险;而减小dropout1可能会降低模型的正则化效果,增加过拟合的风险。
  2. 改变第二层的Dropout概率(dropout2),增大dropout2可能会增加模型对第二层输出特征的随机丢弃,可能会降低模型的容量,抑制过拟合的趋势;而减小dropout2可能会增加模型的容量,增加过拟合的趋势。

为了具体定量描述此结果,可以设计一个实验步骤如下:

  1. 使用原始的dropout1 = 0.2, dropout2 = 0.5进行训练和评估,记录模型性能(例如准确率、损失值等)。
  2. 将第一层的dropout1值和第二层的dropout2值进行交换,重新训练并记录模型性能。
  3. 比较两个模型在相同测试集上的性能指标。如果第二个模型表现更好,则可以得出结论:较低的dropout1和较高的dropout2对模型性能有积极影响;反之亦然。

通过该实验,可以 quantitatively 测量和比较交换dropout概率后的模型性能。此外,还可以尝试使用不同的dropout概率组合来观察性能的变化,以获得更多场景下的结果。

总结定性的结论时,需要考虑到交换dropout概率对模型的影响可能是个案件(case-dependent),因此需要在多种组合和实验中进行测试和验证。一般而言,增加第一层的dropout可能会减少过拟合风险,适当调整第二层的dropout可能会影响模型的容量和性能。然而,具体结果还取决于数据集、模型复杂度等因素,需要在实验中进行验证和观察才能得出明确的结论。

5. 以本节中的模型为例,⽐较使⽤暂退法和权重衰减的效果。如果同时使⽤暂退法和权重衰减,会发⽣什么情况?结果是累加的吗?收益是否减少(或者说更糟)?它们互相抵消了吗?

答:

在使用本节中的模型时,可以比较使用暂退法和权重衰减的效果。

使用暂退法(Dropout)可以减轻模型的过拟合问题,帮助提高泛化能力。通过在训练过程中以概率p丢弃神经元单元,可以降低模型对特定输入的依赖性,增加模型的鲁棒性。

使用权重衰减(Weight Decay)可以控制模型的复杂度,通过在损失函数中添加一个惩罚项来减小权重值的大小。这有助于减少特征之间的高度相关性,防止过拟合现象的发生。

当同时使用暂退法和权重衰减时,它们可以产生累加的效果,而不是相互抵消。累加的意思是,两种正则化技术相互强化,进一步降低了模型的复杂性和过拟合的风险。

然而,在某些情况下,使用过高的暂退概率权重衰减系数可能会导致欠拟合,从而使结果变得更糟。模型的表达能力受到了双重限制,可能无法充分拟合训练数据和泛化到新的数据。

因此,同时使用暂退法和权重衰减需要谨慎设置参数,需要根据具体任务和数据集进行调优。过大的参数值可能导致性能下降,而合适的参数设置可以提供更好的正则化效果,改善模型的泛化能力。

6. 如果我们将暂退法应⽤到权重矩阵的各个权重,⽽不是激活值,会发⽣什么?

答:

将暂退法应用于权重矩阵的各个权重,而不是激活值,可能会导致模型无法正常学习和有效训练。

暂退法的主要目的是通过在训练过程中随机丢弃神经元单元来减轻过拟合问题。它通常应用于隐藏层的激活值,而不是权重。

如果将暂退法应用于权重矩阵的权重,那么在每次训练迭代中,权重的数值都会以一定的概率被清零或缩小。这将导致模型无法获得充分的训练信号,因为权重是模型参数的关键部分,它们负责控制网络的连接强度和信息传递

通过对权重进行暂退,可能会严重损害模型的表达能力和训练效果,使模型无法学习到有效的特征表示。结果可能是性能下降、训练困难以及泛化能力的丧失。

因此,通常情况下,我们将暂退法应用于隐藏层的激活值,而不是权重矩阵的权重,以获得更好的训练效果和泛化能力。

7. 发明另⼀种⽤于在每⼀层注⼊随机噪声的技术,该技术不同于标准的暂退法技术。尝试开发⼀种 在Fashion-MNIST数据集(对于固定架构)上性能优于暂退法的⽅法。

答:

对于在每一层注入随机噪声的技术,可以考虑使用DropConnect(Dropout的一种变体)来替代标准的暂退法技术。DropConnect是一种正则化方法,它以一定的概率将每个权重连接改为零或缩小。

与传统的暂退法不同,DropConnect作用于权重矩阵的权重,在每次训练迭代中以一定的概率清零或缩小权重。这样做的目的是减少各个神经元单元之间的依赖性,从而增加模型的鲁棒性和泛化能力。

在Fashion-MNIST数据集上尝试开发一种优于暂退法的方法时,可以尝试使用DropConnect,并进行适当的调整和优化。在固定架构下,可以通过验证实验来比较不同的参数设置和模型配置,以找到最佳的性能表现。

需要注意的是,具体的实现和结果可能会因模型结构、超参数选择和数据预处理等因素而有所不同。因此,需要进行实验和评估来确定这种新方法是否在Fashion-MNIST数据集上表现更好。

请注意,我无法提供具体的代码实现或确切的结果指标,因为这需要详细的实验和研究。建议你参考相关的文献和研究论文,或者在机器学习社区中与其他研究人员讨论,以获得更多关于该方法的详细信息和实验经验。

自问:暂退法不可以操纵权重矩阵,那为什么DropConnect可以操纵权重矩阵?

答:

Dropout中,我们将隐藏层的激活值按照一定的概率随机设置为零,从而强制网络学习对于不同神经元的组合具有鲁棒性。这种操作有效地减少了神经元之间的依赖性。

DropConnect中,则是将权重矩阵的权重按照一定的概率随机设置为零或进行缩放。这样做可以达到类似的效果,减少权重之间的依赖,增加模型的鲁棒性。

因此,Dropout和DropConnect都是通过随机操纵隐藏层激活值或权重矩阵,以达到正则化和提高模型泛化能力的目的。

 

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

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

相关文章

408 计算机考研-001-C语言-C语言基础-考研必学

408 计算机考研-001-C语言-C语言基础-考研必学 本文目录 408 计算机考研-001-C语言-C语言基础-考研必学考研C语言应掌握的内容考研真题2022 年考研真题第 1 题2022 年考研真题第 41 题2021 年考研真题第 42 题 一、打印&#xff1a;Hello, World二、数据类型1. 基本数据类型 三…

项目bug——编码问题报错(java.lang.IllegalStateException)

项目场景&#xff1a; 项目拉下后报错 问题描述 2023-07-17 14:26:07.596 ERROR 14300 — [ main] o.s.boot.SpringApplication : Application run failed java.lang.IllegalStateException: Failed to load property source from ‘file:/Users/wang/IdeaProjects/ms-famil…

ADS交叉耦合振荡器仿真

ADS交叉耦合振荡器仿真 摘要参考视频书籍 环境过程结果分析频率计算瞬态仿真差分电压输出查看相位噪声分析 摘要 本文主要参考视频中如何使用进行ADS交叉耦合振荡器仿真和分析&#xff0c;由于视频中有诸多错误和视频清晰度较低&#xff0c;虽然视频博主及时改正&#xff0c;为…

家用洗地机好用吗、智能洗地机品牌排行榜

在现如今&#xff0c;洗地机不算是什么稀奇的东西了。正相反&#xff0c;越来越多的家庭在清洁的时候都会使用洗地机。因为洗地机相比传统的清洁方式&#xff0c;更加便捷高效&#xff0c;清洁使用的时候简直就是事半功倍&#xff01;那么今天小编就为给大家盘点几款非常适合家…

3Ds max入门教程:快捷键命令和鼠标热键大全

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 起初&#xff0c;您可能需要花一些时间查找热键&#xff0c;但是一旦您使用它们记住了它们&#xff0c;它们将使您以至少两倍的速度产生结果。例如&#xff0c;当您进行建模&#xff08;移动、缩放、旋转等…

霍纳法则----快速入门,贼好理解

别问我&#xff0c;为什么写这个&#xff0c;我可能一辈子都在开发中用不到&#xff0c;纯粹应付八股。 公式我不知道咋打&#xff0c;就网上复制了个图片。 这是什么&#xff1f;是一个含x的多项式&#xff0c;他有很多次方。假设让你写代码&#xff0c;x的输入项&#xff0c;…

一文带你了解动态内存管理

目录 动态内存存在的意义 动态内存函数的介绍 malloc和free calloc realloc 常见的动态内存错误 对NULL指针解引用操作 对动态开辟的空间的越界访问 对非动态开辟内存使用free释放 使用free释放一块动态开辟内存的一部分 对同一块内存多次释放 动态开辟内存忘记释放…

时序预测 | MATLAB实现NARX非线性自回归外生模型房价预测

时序预测 | MATLAB实现NARX非线性自回归外生模型房价预测 目录 时序预测 | MATLAB实现NARX非线性自回归外生模型房价预测效果一览基本介绍研究内容程序设计参考资料效果一览 基本介绍 时序预测 | MATLAB实现NARX非线性自回归外生模型房价预测 研究内容 NARX(Nonlinear AutoReg…

抖音账号矩阵系统源码-开源部署开发者分享

抖音账号矩阵系统&#xff0c;短视频账号矩阵系统源码&#xff0c; 短视频矩阵是一种常见的视频编码标准&#xff0c;它通过将视频分成多个小块并对每个小块进行压缩来实现高效的视频传输。短视频多账号矩阵系统&#xff0c;通过多账号一键授权管理的方式&#xff0c;为运营人员…

90%的程序员都不知道Mysql索引下推

索引下推(Index Condition Pushdown) ICP 是Mysql5.6之后新增的功能&#xff0c;主要的核心点就在于把数据筛选的过程放在了存储引擎层去处理&#xff0c;而不是像之前一样放到Server层去做过滤。 虽然这是一个比较简单的概念&#xff0c;但是可能很多不细心的同学对于索引下推…

无需点跟踪,克服DragGAN缺陷!中科大联合上海AI Lab发布FreeDrag:可稳定拖动语义内容

FreeDrag无需点跟踪&#xff0c;即可实现更高质量的拖动编辑效果&#xff01; 近日&#xff0c;在AIGC的广阔世界里出现了一个火热的图像编辑方法—即通过在给定图像上通过把语义内容从原位置&#xff08;handle point&#xff09;拖动到目标位置&#xff08;target point&…

12宫格 抽奖逻辑实现【直接可用】

先看视频&#xff0c;比较卡&#xff0c;毕竟是视频转gif导出的 /*** Author : 马占柱* E-mail : mazhanzhu_3351163.com* Time : 2023/5/24 17:46* Desc : 12宫格 盲盒抽奖*/ public class NineLuckPan extends View {private Paint mPaint;private ArrayList<RectF>…

linux下安装jdk

1、创建目录 cd /opt mkdir /opt/jdk 2、将jdk放入/opt/jdk中 3、 解压目录 cd /opt/jdk tar -zxvf jdk-8u261-linux-x64.tar.gz 4、拷贝目录 mkdir /usr/local/java mv /opt/jdk/jdk1.8.0_261 /usr/local/java 5、配置环境变量的配置文件 vim /etc/profile 在配置文件中添加…

PyCharm 常用快捷键

目录 1、代码编辑快捷键 2、搜索/替换快捷键 3、代码运行快捷键 4、代码调试快捷键 5、应用搜索快捷键 6、代码重构快捷键 7、动态模块快捷键 8、导航快捷键 9、通用快捷键 1、代码编辑快捷键 序号快捷键作用1CTRLALTSPACE快速导入任意类2CTRLSHIFTENTER代码补全3SHI…

基于STM32LVGL8.2保姆级教程③代码框架移植

这里推荐去看正点原子的视频 对照教程一步步的移植即可 需要一点时间 点击传送门直达 如果你觉得太繁琐 也可以找我直接获取移植好的框架(免费分享) 移植完毕的工程截图~ 注意事项 这两个文件的内容默认是使用宏定义关闭的 需要你手动开启(我的代码已经完成了这一步)

自动上香木鱼念珠颂钵功德流量主小程序开发

自动上香木鱼念珠颂钵功德流量主小程序开发 自动上香木鱼念珠颂钵功德流量主小程序的功能包括&#xff1a; 自动上香&#xff1a;用户可以设置定时任务&#xff0c;小程序会在指定时间自动上香&#xff0c;无需用户手动操作。木鱼念珠&#xff1a;小程序提供虚拟的木鱼念珠&a…

高压放大器需要注意哪些指标

高压放大器是一种专门用于输出高电压信号的电子设备&#xff0c;主要应用于精密测量、医疗设备、电力电子等领域中。在选择高压放大器时&#xff0c;需要注意其性能指标&#xff0c;以确保设备的稳定性和可靠性。 以下是高压放大器需要注意的性能指标&#xff1a; 输出电压范围…

一个简单的python案例,用正则采集小说网站

目录标题 前言尾语 前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 使用Python抓取xx阁小说需要用到 requests 库和正则表达式模块 re&#xff0c;下面是一个具体的实现步骤&#xff1a; 1. 首先需要使用 requests 库请求小说的页面 例如&#xff1a; import requestsu…

运维数据(1):谈谈运维数据的8大特征

在这个数据作为市场要素之一的时代&#xff0c;数据已从理念上的资产认同逐步走向实践上的深入行动。单从经济利益上去评定数据的资产化价值&#xff0c;我认为太狭隘&#xff0c;把数据仅仅作为有形物品去交易&#xff0c;价值的发挥未免太过局限。我家那一亩三分地种的红薯&a…

等保——windows终端和服务器测评

一、本文适用于Windows系统&#xff0c;但有些版本不适用&#xff0c;例如win10、win11等&#xff0c;因为没有密码策略模块 二、针对于win7的测评过程 1、winR打开命令行&#xff0c;输入gpedit.msc&#xff0c;打开本地组策略编辑器&#xff08;win10以上版本没有这个模块&…