动手学深度学习新知

news/2025/2/14 0:45:03/文章来源:https://www.cnblogs.com/LPF05/p/18714643

动手学深度学习新知

预处理

  1. pd.get_dummies()可获得one-hot编码,但有陷阱,可参考文献1

  2. 降维时候的指定轴是保留轴。

  3. 点积、数量积、标量积都是向量相同位置的按元素乘积的和,即torch.dot()函数。

  4. 哈达玛积是矩阵的点积,即A*B

  5. 矩阵-向量积用torch.mv()函数。

  6. 矩阵乘法用@torch.mm()函数。

  7. 范数是\(\left \| X \right \|_p = ({\sum^n \left| x_i \right|^p})^{1/p}\)

线性神经网络

  1. 熵是信息量的期望。

  2. 高级索引a[[row_index],[col_index]]

  3. 只有标量可以反向传播,所以一般torch中内置criterion都是在内部将张量mean()化。

  4. 反向传播将张量mean()或sum()为标量,一般都是mean(),可以减少梯度中的噪声。

  5. net.apply(fn)函数能将函数fn递归到每一层网络。

  6. 规避softmax的overflow和underflow,可以首先将项减去最大值,然后将softmax与交叉熵相结合,即log(exp(*)) = *,这类似于LogSumExp技巧,可参考文献2

  7. 单纯的增加隐藏层而不加入激活函数没有任何益处,因为单层网络就已经可以表示任何仿射函数。

  8. 学习率过小会局部收敛。

  9. 过拟合原因:

    • 参数量(自由度)过大。
    • 初始参数权重取值范围过大(参数空间大、梯度消失爆炸)。
    • 训练样本的数量过少。
  10. 训练误差和验证误差都很大,且其差距很小,继续训练无法降低误差,则在证明该模型欠拟合,该复杂模型结构。

  11. (对于线性回归),函数阶数等于数据样本数的多项式函数可以完美拟合训练集。

多层感知机

  1. 权重衰退是最常用正则化技术,有效性可以从拉格朗日乘数、权重衰减、贝叶斯、模型复杂度等多个角度理解,可以参考文献3进行学习。

  2. 正则化用范数的柔性限制限制权重大小,其\(L_2\)范数惩罚与权重矩阵的点积等价,可证,且范数惩罚是加入损失函数中,从而使权重受罚(权重受罚公式待推导)。

  3. Dropout暂退法有效的有效性原理是具有噪音输入的训练等价于吉洪诺夫正则化,即在计算后一层之前每一层注入噪音会增加输入-输出的平滑性,有性生殖相较于无性生殖会破坏共适应性(但会是健壮性变强),同理,会使神经元健壮性更强,具体原理与表现可参考文献4、5

  4. 暂退法将激活值替换为具有相同期望值的随机变量。

  5. dropout放在激活函数后,如果放在激活函数前仍会导致置0的神经元在前向传播造成贡献,待证(可参考答案参考.4.6)。

  6. 神经网络层数过深会使得梯度乘积过深,而且特征值具有多样多样性 则会使得出现梯度爆炸或者梯度消失问题。

  7. 梯度爆炸是参数更新过大,破坏了模型的稳定收敛;梯度消失是参数更新过小,在更新时几乎不会移动。

  8. 激活函数sigmoid容易导致梯度消失,由函数的导数特性导致,只有在每层输入接近0时梯度正常。

  9. 神经网络参数的初始化问题(排列对称性、过大、过小)会导致梯度爆炸,排列对称性迭代无法打破(可加入正则化dropout打破)。

  10. 分布偏移是在许多情况下训练集和测试集不来自于同一个分布。

  11. 分布偏移一般有协变量偏移(训练和测试输入特征不一致,例如训练时是真照片,测试时是虚拟形象)、标签偏移(测试和训练标签分布不一致,或者标签分布随时间变化)和概念偏移。

  12. 真实风险或期望风险是模型在全体数据分布上的平均损失,而经验风险是模型在训练数据集上的平均损失,是真实风险的估计。

  13. 神经网络的真实目的是真实风险最小化,但训练数据对分布的体现不全面,使得训练中是使经验风险最小化,用经验风险近似真实风险。

  14. 协变量偏移纠正典型算法(前提是目标分布和源分布有重叠):

    • 生成二元分类训练集\(\{(\textbf{x}_1, -1),...,(\textbf{x}_n, -1),(\textbf{u}_1, 1),...,(\textbf{u}_1, 1)\}\)
    • 使用logistic回归训练二元分类器得到函数\(\textbf{h}\)
    • 使用\(\beta_i = \exp(h(\textbf{x}_i))\)或更好的\(\beta_i = \min(\exp(h(\textbf{x}_i)), c)\)对训练数据进行加权。
    • 使用权重 \(\beta_i\)进行\(\text{minimize}_{f} \frac{1}{n} \sum_{i=1}^{n} \beta_i l(f(\mathbf{x}_i), y_i)\)\(\{(\textbf{x}_1, y_1),...,(\textbf{x}_n, y_n)\}\)的训练。
  15. 概念分布偏移纠正:使用新数据更新现有的网络权重代替从零开始训练。

  16. 在线学习:不断实时观测、估计、评估损失、训练、更新模式。

  17. 环境的变化(方式、速度...)决定采用算法的类型。

  18. 要实时监控评估优化系统,避免失控反馈循环。

  19. 影响经验风险接近真实风险程度的因素除分布偏移外:

    • 样本大小:经验风险的准确性通常随着样本大小的增加而增加。较大的样本量提供了更多的信息,使得估计的风险更加可靠。

    • 特征选择:选择恰当的特征可以减少噪声和冗余信息的影响,从而提高对真实风险的估计。良好的特征选择有助于提高模型的泛化能力。

    • 模型复杂度:模型的复杂度与其在训练数据上的表现以及对真实风险的估计密切相关。过于简单的模型可能无法捕捉到数据中的复杂关系,而过于复杂的模型可能过度拟合训练数据。

    • 数据质量:数据质量对于经验风险的准确性至关重要。低质量的数据、含有错误或缺失值的数据可能导致错误的模型训练和风险估计。

    • 样本选择偏差:如果样本选择不恰当或存在偏差,例如采样方式不随机或样本并非代表总体。

    • 噪声和异常值:数据中的噪声和异常值可能对经验风险的估计造成干扰。这些异常值可能使模型过度拟合,并导致对真实风险的估计不准确。

参考文献

  1. pandas.get_dummies (独热编码)详解

  2. 一文弄懂LogSumExp技巧

  3. “L1和L2正则化”直观理解(之一),从拉格朗日乘数法角度进行理解

  4. 深度学习中Dropout的作用和原理

  5. Dropout的深入理解(基础介绍、模型描述、原理深入、代码实现以及变种)

答案参考

动手学深度学习习题解答

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图解支付系统订单号设计与最佳实践

本文主要讲清楚支付系统订单号(或业务ID)各种设计方案对比,各子域的订单号(或业务ID)为什么要统一规范,以及最佳实践。最后还会简单分析微信支付和支付宝的对客订单号的组成差异。 假如你也好奇为什么有了数据库自增ID外还需要业务ID,或者想了解如何在业务ID中编织进业务…

Windows 网络存储ISCSI

本文介绍网络存储ISCSI的主要知识点以及如何通过代码控制挂载。 Windows网络存储有很多协议,我目前学习、稍微有了解的是FTP、SMB、ISCSI,FTP、SMB类似可以用来添加共享文件夹,或者添加映射网络驱动器:我使用FTP都是先建个映射,再将内部的文件夹固定到快速访问。平时使用效…

2022-03-17-hello-world

📌 Thinking No emotion; no journal; less platitude I have a habit of writing diaries in high school, to decrease the pressure and anxiety. So blog inherit it. As time going by, I realize I have to make a review of my life, in every single post, and its r…

2023-01-01-one-wisdom

2023 新年伊始,整理 2022 的陳年筆記時發現有很多不知名,但是又捨不得丟棄的句子,想着乾脆把他們做成引用得了。連着建倉庫,設計頁面,寫腳本一套下來也沒花太多時間,一個簡單的靜態自動部署的網站就建好了: One[1].Tech stackJekyll Github ActionHighlightsEvery single…

小米 R3G 路由器(Pandavan)实现网络打印机功能

通过小米 R3G 路由器的 USB 3.0 接口和 Pandavan 固件,轻松将没有网络打印功能的打印机接入网络。本文详细讲解如何通过无线桥接、设置内外网、端口映射和启用打印服务,让 PC 通过 TCP/IP 方式添加打印机,实现多设备共享打印,解决传统共享打印的高耗电问题。小米 R3G 路由器…

[MoE] Tutel源码解读

[MoE] Tutel源码解读 前言 最近MoE变得火了起来。但我在和别人讨论MoE时,总有一些不清楚的地方,就算读了论文也不确定内部到底是怎么实现的。于是我决定还是要看一看已有的代码,看看每个细节究竟都是怎么实现的。 作为实现参考,Tutel这篇工作就很不错。最近的工作基本都拿T…

Java笔记-15、Web后端基础 分层解耦

三层架构 满足单一职责原则。Controller控制层:接收前端发送的请求,对请求进行处理并响应数据。 Service业务逻辑层:处理具体的业务逻辑。 Dao数据访问层(持久层):负责数据访问操作,包括数据的增删改查。浏览器发过来请求,首先访问Controller层,Controller调用Service…

框架ThinkPHP

引子:本章主要介绍ThinkPHP(PHP开发框架)的简单使用和一些安全问题。免责声明:本文章仅用于交流学习,因文章内容而产生的任何违法&未授权行为,与文章作者无关!!! 附:完整笔记目录~ ps:本人小白,笔记均在个人理解基础上整理,若有错误欢迎指正! 1.5 🐘框架&a…

我的“DeepSeek服务不忙了”,腾讯云671B满血模型无限量调用攻略!

DeepSeek R1虽然免费,但是基本到了无法使用的状态。一两轮对话后,就开始服务忙了。好在这是一个开源模型,大量的第三方平台开始上线了。上一篇我们就讲过硅基流动。最近听闻腾讯云也上线了 DeepSeek-V3、DeepSeek-R1 满血版模型。而且可以免费不限量使用。具体规则如下: 添…

ACM寒假集训第五次专题任务

ACM寒假集训第五次专题任务 一、自然数的拆分问题 题目:解题思路: 使用了深度优先搜索,通过he判断何时输出,c标记长度控制输出,qs标记起始位置从小到大拆分。 AC代码: #include<iostream> using namespace std; int n,a[10],ans; void dfs(int he,int c,int qs) {i…

DeepSeekR1+Cherry Studio使用白嫖API和开源软件使用满血版模型!

使用Ollama本地运行,使用Ollama+ChatWise可视化运行,使用Ollama+ChatWise在Macbook Air M1 上运行。今天再来说一个方案。这个方案不是完全离线,但是模型能力会比离线的强。可以完全免费尝试,有几百到几千万的Token可以用。可以缓解DeepSeek R1官方服务繁忙无法使用的问题。…

DeepSeekR1 苹果macbook M1本地可视化运行!

过年了,就带了一台 macbook air 8g,DeepSeekR1的消息还是铺天盖地的来,我就想着在这台电脑上也装一个吧。经过简单的配置,最终也运行起来了,速度还可以。我这是首款M系列笔记本,也是现在最低配的 M 系列笔记本。这也就意味着所有M系列的苹果电脑都可以轻松运行DeepSeekR1…