动手学深度学习(第二版)学习笔记 第三章

news/2024/4/20 0:07:01/文章来源:https://blog.csdn.net/qq_52370024/article/details/129245193

第三章 线性神经网络

代码:d2l-zh/pytorch/chapter_linear-networks

3.1 线性回归

3.1. 线性回归 — 动手学深度学习 2.0.0 documentation

解析解

线性回归的解可以用一个公式简单地表达出来,这类解叫作解析解(analytical solution)。
首先,我们将偏置b合并到参数w中,合并方法是在包含所有参数的矩阵中附加一列。我们的预测问题是最小化。
这在损失平面上只有一个临界点,这个临界点对应于整个区域的损失极小点。
将损失关于∣∣y−Xw∣∣2||\bold y-\bold Xw||^2∣∣yXw2的导数设为0,得到解析解:

w∗=(XTX)−1XTy\bold w^*=(\bold X^T \bold X)^{-1} \bold X^T \bold y w=(XTX)1XTy

像线性回归这样的简单问题存在解析解,但并不是所有的问题都存在解析解。解析解可以进行很好的数学分析,但解析解对问题的限制很严格,导致它无法广泛应用在深度学习里。

随机梯度下降

算法的步骤如下: (1)初始化模型参数的值,如随机初始化; (2)从数据集中随机抽取小批量样本且在负梯度的方向上更新参数,并不断迭代这一步骤。

最优化方法一:梯度下降法_意念回复的博客-CSDN博客_梯度下降优化算法

矢量化加速

SIMD

在训练我们的模型时,我们经常希望能够同时处理整个小批量的样本。 为了实现这一点,需要我们对计算进行矢量化, 从而利用线性代数库,而不是在Python中编写开销高昂的for循环。

%matplotlib inline
import math
import time
import numpy as np
import torchn = 10000
a = torch.ones([n])
b = torch.ones([n])c = torch.zeros(n)
timer = Timer()
for i in range(n):c[i] = a[i] + b[i]
f'{timer.stop():.5f} sec'
# '0.09661 sec'timer.start()
d = a + b
f'{timer.stop():.5f} sec'# '0.00021 sec'

结果很明显,第二种方法比第一种方法快得多。 矢量化代码通常会带来数量级的加速。 另外,我们将更多的数学运算放到库中,而无须自己编写那么多的计算,从而减少了出错的可能性。

3.2 线性回归的从零开始实验

3.2. 线性回归的从零开始实现 — 动手学深度学习 2.0.0 documentation

课后题

如果我们将权重初始化为零,会发生什么。算法仍然有效吗?

谈谈神经网络权重为什么不能初始化为0

在单层网络中(一层线性回归层),将权重初始化为零时可以的,但是网络层数加深后,在全连接的情况下,在反向传播的时候,由于权重的对称性会导致出现隐藏神经元的对称性,使得多个隐藏神经元的作用就如同1个神经元,算法还是有效的,但是效果不大好。

3.3 线性回归的简洁实现

3.3. 线性回归的简洁实现 — 动手学深度学习 2.0.0 documentation

为什么机器学习优化算法都采取梯度下降(一阶导算法),而不采用牛顿法(二阶导算法),收敛速度更快,一般能算出一阶导, 二阶导也应该能算。

为什么机器学习中通常使用梯度下降进行训练

高阶导数信息的准确估计需要训练数据的批量更大

复杂高维神经网络的代价函数具有极多鞍点使高阶方法失效

其实核心还是神经网络参数数量大造成高阶方法计算、存储成本难以接受

如果样本大小不是批量数的整数倍,那需要随机剔除多余的样本吗?

如果是100个样本且batchsize=60 :

(1)就取剩下的40个(2)丢掉剩下的40个(3)从下一个epoch再补20个

3.4 softmax回归

在这里插入图片描述

全连接层的参数开销

正如我们将在后续章节中看到的,在深度学习中,全连接层无处不在。 然而,顾名思义,全连接层是“完全”连接的,可能有很多可学习的参数。 具体来说,对于任何具有ddd个输入和qqq个输出的全连接层, 参数开销为O(dq)O(dq)O(dq),这个数字在实践中可能高得令人望而却步。 幸运的是,将ddd个输入转换为qqq个输出的成本可以减少到O(dqn)O(\frac{dq}{n})O(ndq), 其中超参数nnn可以由我们灵活指定,以在实际应用中平衡参数节约和模型有效性。

softmax运算

在这里插入图片描述

Huber’s Robust Loss

在这里插入图片描述

3.7 softmax回归的简洁实现

重新审视Softmax的实现

在这里插入图片描述

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

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

相关文章

git在工作中的正常使用

开发A和B功能后进行发版。。 一、拉取代码 git clone http://ntc.ntsvars.com:8090/lvweijie/test.git二、开发功能A任务 创建A任务本地分支 #创建A分支,并切换A分支 git checkout -b A三、开发A任务 四、提交A功能文件到本地分支 git add .五、添加提交A功能备…

AcWing3485. 最大异或和

先看题目: 说实话,我看到这道题就想用滑动窗口,但是滑了一下发现不太对啊,如果我用滑动窗口的话,那么最后肯定是一个固定长度为m的窗口在持续计算,区间长度小于m的区间的异或和肯定会被遗漏。然后我就想怎么…

FSP:Flow of Solution Procedure (CVPR 2017) 原理与代码解析

paper:A Gift From Knowledge Distillation: Fast Optimization, Network Minimization and Transfer Learningcode:https://github.com/HobbitLong/RepDistiller/blob/master/distiller_zoo/FSP.py背景深度神经网络DNN逐层生成特征。更高层的特征更接近…

决策树在sklearn中的实现

目录 一.模块sklearn.tree 二.建模基本流程 三.DecisionTreeClassifier重要参数 1.criterion 2.random_state & splitter 3.剪枝参数max_depth 4.剪枝参数min_samples_leaf & min_samples_split 5.max_features & min_impurity_decrease 6.class_weight …

Python IDE:对于 Python 初学者来说,最好的 IDE 是什么?

Python 是科技界最简单、使用最广泛的编程语言之一。它是一种高级通用编程语言,强调代码可读性并使用面向对象的方法。Python可以用来完成很多任务,包括网站开发、软件开发、 自动化 和数据分析 专业开发人员使用Python开发各种流行的软件程序&#xff0…

深入理解Spring MVC上

Spring MVC 是一种基于 Spring 框架的 Web 框架,它提供了一种基于 Model-View-Controller(MVC)的设计模式,用于构建 Web 应用程序。在 Spring MVC 中,Controller 接受并处理 HTTP 请求,并将其转发给适当的 …

多表left join 慢sql问题

作为个人记录,后续再填坑a对p是1对多 ,p对llup 1对多SELECTa.id,p.id,t1.id FROMliv_series_product aINNER JOIN liv_product p ON p.id a.product_idLEFT JOIN ( SELECT llup.id, llup.product_id, llup.room_id FROM liv_live_user_product llup WHERE llup.ro…

Tomcat部署及多实例

Tomcat部署及多实例一、Tomcat简介1、Tomcat核心组件2、什么是JSP二、Tomcat数据流向1、Tomcat数据流向2、Tomcat-Nginx数据流向三、Tomcat服务部署安装1、安装jdk包2、解压Tomcat所需的安装包3、在/etc/profile添加环境变量4、启动服务并查看5、在浏览器网页验证6、创建用户&a…

为什么硬件性能监控很重要

当今的混合网络环境平衡了分布式网络和现代技术的实施。但它们并不缺少一个核心组件:服务器。保持网络正常运行时间归结为监控和管理导致网络停机的因素。极有可能导致性能异常的此类因素之一是硬件。使用硬件监控器监控网络硬件已成为一项关键需求。 硬件监视器是…

优化知识管理方法丨整理零碎信息,提高数据价值

信息流时代,知识成集合倍数增长,看似我们学习了很多知识,但知识零碎无系统,知识之间缺乏联系,没有深度,所以虽然你很努力,但你发现自己的能力增长特别缓慢,你需要整理知识将零散的知…

蓝桥杯:染色时间

蓝桥杯:染色时间https://www.lanqiao.cn/problems/2386/learning/?contest_id80 问题描述 输入格式 输出格式 样例输入输出 样例输入 样例输出 评测用例规模与约定 解题思路:优先队列 AC代码(Java): 问题描述 小蓝有一个 n 行 m 列…

std::chrono笔记

文章目录1. radio原型作用示例2. duration原型:作用示例3. time_point原型作用示例4. clockssystem_clock示例steady_clock示例high_resolution_clock先说感觉,这个库真恶心,刚接触感觉跟shi一样,特别是那个命名空间,太…

vue2 diff算法

diff是什么 diff 算法是一种通过同层的树节点进行比较的高效算法 其有两个特点: ♥比较只会在同层级进行, 不会跨层级比较 ♥在diff比较的过程中,循环从两边向中间比较 diff 算法的在很多场景下都有应用,在 vue 中,作用于虚拟 dom…

预备2-CMD常用命令

CMD常用命令 先学简单常用的, 其余的要用在学 打开Cmd窗口 Win键R> 输入Cmd回车鼠标点击开始 > 附件>Cmd打开一个窗口,在地址栏输入cmd 操作目录 1.dir 查询当前目录有哪些文件 2.cd.. 上一级目录 3.cd e: 切换到E盘 4.d: 直接去d盘 5.cd /d e:abc 直接去E盘的abc目…

2023年房地产行业研究报告

第一章 行业发展概况 房地产业是指以土地和建筑物为经营对象,从事房地产开发、建设、经营、管理以及维修、装饰和服务的集多种经济活动为一体的综合性产业,是具有先导性、基础性、带动性和风险性的产业。主要包括:土地开发,房屋的…

解决AAC音频编码时间戳的计算问题

1.主题音频是流式数据,并不像视频一样有P帧和B帧的概念。就像砌墙一样,咔咔往上摞就行了。一般来说,AAC编码中生成文件这一步,如果使用的是OutputStream流写入文件的话,就完全不需要计算时间。但在音视频同步或者使用A…

debian 部署nginx https

我是flask 处理请求单进程, 差点意思 , 考虑先flask 在往下走 一:安装nginx 因为我是debian 系统,所以我的建议是直接 sudo apt-get install nginx 你也可以选择在官网下载, 但是我搭建ssl 的时候安装openssl非常的麻…

【无标题】(2019)NOC编程猫创新编程复赛小学组真题含参考

(2019)NOC编程猫创新编程复赛小学组最后6道大题。前10道是选择填空题 略。 这道题是绘图题,没什么难度,大家绘制这2个正十边形要注意:一是不要超出舞台;二是这2个正十边形不要相交。 这里就不给出具体程序了…

数睿通2.0数据服务功能模块发布

文章目录引言API 目录API 权限API 日志结语引言 数睿通 2.0 之前基本完成了数据集成和数据开发两大模块,也因此得到了一些朋友的帮助和支持,在此由衷的表示感谢,你们的支持便是我们更新的最大动力! 目前,数据服务模块…

色环电阻的阻值如何识别

这种是色环电阻,其外表有一圈圈不同颜色的色环,现在在一些电器和电源电路中还有使用。下面的两种色环电阻它颜色还不一样,一个蓝色,一个土黄色,其实这个蓝色的属于金属膜色环电阻,外表涂的是一层金属膜&…