【李沐深度学习笔记】线性回归

news2024/12/26 0:16:50

课程地址和说明

线性回归p1
本系列文章是我学习李沐老师深度学习系列课程的学习笔记,可能会对李沐老师上课没讲到的进行补充。

线性回归

如何在美国买房(经典买房预测问题)


一个简化的模型

线性模型


其中,

  • x → = [ x 1 , x 2 , … , x i , … , x n ] T \overrightarrow {x}=\left [ x_{1},x_{2},\dots ,x_{i} ,\dots ,x_{n}\right ]^{T} x =[x1,x2,,xi,,xn]T i i i代表第 i i i个特征(即本例中的卧室个数,卫生间个数和居住面积),其实为了方便记录第 j j j个样本的第 i i i个特征,我更倾向于这个写法: x j → = [ x j 1 , x j 2 , … , x j i , … , x j n ] T \overrightarrow {{x}_{j}}=\left [ x_{j}^{1},x_{j}^{2},\dots ,x_{j}^{i} ,\dots ,x_{j}^{n}\right ]^{T} xj =[xj1,xj2,,xji,,xjn]T,其中 j j j代表第 j j j个样本, i i i代表第 j j j个样本的第 i i i个特征,下面的章节这样写比较方便;
  • w → = [ w 1 , w 2 , … , w i , … , w n ] T \overrightarrow {w}=\left [ w_{1},w_{2},\dots ,w_{i} ,\dots ,w_{n}\right ]^{T} w =[w1,w2,,wi,,wn]T w i w_{i} wi是代表着第 i i i个特征的重要程度(即权重),假如卧室个数 x 1 x_{1} x1比卫生间个数 x 2 x_{2} x2的重要程度大,则 w 1 > w 2 w_{1}>w_{2} w1>w2
  • b b b代表着模型的标量偏差。

【提问】解释一下线性回归模型的标量偏差
【chatGPT回答】线性回归模型中的标量偏差(scalar bias)通常是指模型中的一个额外参数,用来调整模型的输出,使其更好地拟合数据。这个偏差值是一个常数,不依赖于输入特征,它在线性回归模型中起到平移或偏移输出的作用。
线性回归模型用于建立输入特征和输出目标之间的关系,通常表示为:
y = w x + b y = wx + b y=wx+b
其中:

  1. y y y 是模型的输出(预测值)。
  2. x x x 是输入特征。
  3. w w w 是特征的权重或系数,用来衡量特征对输出的影响。
  4. b b b 是标量偏差,也称为截距或偏移项,它表示当输入特征 (x) 为零时,模型的输出 (y) 的期望值。

标量偏差 (b) 允许模型在没有输入特征的情况下仍然能够有一个非零的输出。这对于捕捉数据中的整体偏移或平移是很重要的。例如,如果你正在建立一个房价预测模型,特征 (x) 可能表示房屋的大小,但即使房屋大小为零,房价也不应该为零,因此标量偏差 (b) 允许模型预测一个基本价格。
在训练线性回归模型时,模型会尝试学习最佳的权重 (w) 和偏差 (b) 的值,以最小化预测值与真实值之间的差距(损失函数)。这个过程通常使用最小二乘法来完成。
总之,线性回归模型的标量偏差是一个用来平移或偏移模型输出的常数参数,它允许模型在没有输入特征时仍能够产生非零的输出,从而更好地拟合数据。

  • 加权和(也就是预测值): y = w 1 x 1 + w 2 x 2 + ⋯ + w n x n + b = [ w 1 w 2 … w n ] ⋅ [ x 1 x 2 … x n ] = < w → , x → > + b y=w_{1}x_{1}+w_{2}x_{2}+\dots+w_{n}x_{n}+b=\begin{bmatrix} w_{1} & w_{2} & \dots & w_{n} \end{bmatrix}\cdot \begin{bmatrix} x_{1} \\ x_{2} \\ \dots \\ x_{n} \end{bmatrix}=<\overrightarrow {w},\overrightarrow {x}>+b y=w1x1+w2x2++wnxn+b=[w1w2wn] x1x2xn =<w ,x >+b,其中 < w → , x → > <\overrightarrow {w},\overrightarrow {x}> <w ,x > w → \overrightarrow {w} w x → \overrightarrow {x} x 的内积,内积符号表示中两个向量的位置可以换的,即 < w → , x → > = < x → , w → > <\overrightarrow {w},\overrightarrow {x}>=<\overrightarrow {x},\overrightarrow {w}> <w ,x >=<x ,w >,其实我更喜欢将预测值记为 y ^ = < w → , x → > + b \hat {y}=<\overrightarrow {w},\overrightarrow {x}>+b y^=<w ,x >+b,后面会看到我为什么这样记录。

线性模型可以看做是单层神经网络

神经网络源于神经科学

衡量预估质量


训练数据


其中,

  • 矩阵 X \bm{X} X的每一个行向量 x i → T , i = 1 , 2 , … , n \overrightarrow {x_{i}}^{T},i=1,2,\dots ,n xi T,i=1,2,,n都代表着第 i i i个样本,本来 x i → \overrightarrow {x_{i}} xi 都是列向量,但是 X = [ x 1 → , x 2 → , … , x i → , … , x n → ] T = [ x 1 → T x 2 → T ⋮ x i → T ⋮ x n → T ] \bm{X}=\left [ \overrightarrow {x_{1}},\overrightarrow {x_{2}},\dots ,\overrightarrow {x_{i}} ,\dots ,\overrightarrow {x_{n}}\right ]^{T}=\begin{bmatrix} \overrightarrow {x_{1}}^{T} \\ \overrightarrow {x_{2}}^{T}\\ \vdots \\ \overrightarrow {x_{i}}^{T} \\ \vdots \\ \overrightarrow {x_{n}}^{T} \end{bmatrix} X=[x1 ,x2 ,,xi ,,xn ]T= x1 Tx2 Txi Txn T ,所以 x i → T \overrightarrow {x_{i}}^{T} xi T x i → \overrightarrow {x_{i}} xi 都代表第 i i i个样本,其样本向量中的各个分量即是这第 i i i个样本的各个特征;
  • y → = [ y 1 , y 2 , … , y i , … , y n ] T \overrightarrow{y}=\left [ y_{1},y_{2},\dots ,y_{i} ,\dots ,y_{n}\right ]^{T} y =[y1,y2,,yi,,yn]T代表了所有真实值(本例为真实房价)的数据集合,其中 y i , i = 1 , 2 , … , n y_{i},i=1,2,\dots ,n yi,i=1,2,,n代表第 i i i个样本 x i → \overrightarrow {x_{i}} xi 对应的真实值。

参数学习


其中

  • 根据上面提到的平方损失的定义,训练损失函数写为:
    ℓ ( X , y → , w → , b ) = 1 2 n ∑ i = 1 n ( y i − y ^ i ) 2 = 1 2 n ∑ i = 1 n ( y i − ( ( < w → , x i → > + b ) ) ) 2 = 1 2 n ∑ i = 1 n ( y i − < w → , x i → > − b ) 2 \ell (\textbf{X},\overrightarrow {y},\overrightarrow {w},b)=\frac{1}{2n}\sum\limits_{i=1}^{n} \left ( y_{i}-\hat{y}_{i} \right )^{2}=\frac{1}{2n}\sum\limits_{i=1}^{n} \left ( y_{i}-((<\overrightarrow {w},\overrightarrow {x_{i}}>+b)) \right )^{2} =\frac{1}{2n}\sum\limits_{i=1}^{n} \left ( y_{i}-<\overrightarrow {w},\overrightarrow {x_{i}}>-b \right )^{2} (X,y ,w ,b)=2n1i=1n(yiy^i)2=2n1i=1n(yi((<w ,xi >+b)))2=2n1i=1n(yi<w ,xi >b)2

图中的 b b b应为 b → = ( b , b , . . . , b ) n × 1 T \overrightarrow {b}=(b,b,...,b)^{T}_{n\times 1} b =(b,b,...,b)n×1T,否则不符合数学上的定义,李沐老师之所以这么写是因为在PyTorch中,向量减去标量相当于对向量的每一个分量都减去相同的标量,所以上述公式在写代码时可以直接用,以下给出我推导的过程:

  • a r g arg arg表示的是取什么什么值, a r g m i n arg min argmin指的是取最小值,图中的意思是找到使得损失函数 ℓ ( X , y → , w → , b ) \ell (\textbf{X},\overrightarrow {y},\overrightarrow {w},b) (X,y ,w ,b)的参数 w → ∗ , b ∗ \overrightarrow {w}^{*},b^{*} w ,b.

显示解

因为我们用的是线性模型,所以我们有显示解。


【注】在评论区发现李沐老师少写了个转置,这里直接更正一下

X \bm{X} X进行增广, w → \overrightarrow {w} w 进行增广,最终变为 X n × ( m + 1 ) , w → ( m + 1 ) × 1 \bm{X}_{n\times (m+1)},\overrightarrow {w}_{(m+1)\times 1} Xn×(m+1),w (m+1)×1,则变为:

由链式求导法则和公式当 y = ∣ ∣ x → ∣ ∣ 2 = ( ∑ i = 1 m x i 2 ) 2 = ( x 1 2 + x 2 2 + ⋯ + x m 2 ) 2 = x 1 2 + x 2 2 + ⋯ + x m 2 y=||\overrightarrow x||^2=(\sqrt{\sum\limits_{i=1}^{m} x_{i}^{2}})^{2}=(\sqrt{x_{1}^{2}+x_{2}^{2}+\dots +x_{m}^{2}})^{2}=x_{1}^{2}+x_{2}^{2}+\dots +x_{m}^{2} y=∣∣x 2=(i=1mxi2 )2=(x12+x22++xm2 )2=x12+x22++xm2时,有:
∂ y ∂ x → = [ ∂ f ( x → ) ∂ x 1 ∂ f ( x → ) ∂ x 2 ⋮ ∂ f ( x → ) ∂ x m ] m × 1 = [ 2 x 1 2 x 2 ⋮ 2 x m ] m × 1 = 2 x → \frac{\partial {y}}{\partial\overrightarrow x}=\begin{bmatrix} \frac{\partial {f(\overrightarrow x)}}{\partial{x_{1}}}\\ \frac{\partial {f(\overrightarrow x)}}{\partial{x_{2}}}\\ \vdots \\ \frac{\partial {f(\overrightarrow x)}}{\partial{x_{m}}} \end{bmatrix}_{m\times 1}=\begin{bmatrix} 2x_{1}\\ 2x_{2}\\ \vdots \\ 2x_{m} \end{bmatrix}_{m\times 1}=2\overrightarrow x x y= x1f(x )x2f(x )xmf(x ) m×1= 2x12x22xm m×1=2x
可知,

总结

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

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

相关文章

如何精细化管理APP用户生命周期,寻找业绩增长点?

在APP精细化运营中&#xff0c;经常会提到用户生命周期&#xff0c;在对APP进行运营的时候&#xff0c;需要明确&#xff0c;自己的APP是处于产品生命周期的哪一个&#xff0c;然后根据这个生命周期的特点&#xff0c;使用最准确的运营方法。 01、为什么要提升用户生命周期价值…

杭州亚运会吉祥物制作,能给城市3D虚拟数字人定制带来什么启发?

继冬奥顶流“冰墩墩”后&#xff0c;吉祥物“江南忆”作为杭州亚运会吉祥物也火爆出圈&#xff01;从北京亚运会的熊猫“盼盼”、到广州亚运会“五羊”再到如今的杭州亚运会吉祥物“宸宸、琮琮、莲莲”&#xff0c;这些吉祥物凭借其形象火爆出圈&#xff0c;能给城市3D虚拟数字…

腾讯mini项目-【指标监控服务重构】2023-08-25

今日已办 traefik proxy jaeger Prometheus prometheus | Prometheus 配置完依然无法实现 web-url的前缀访问【待解决】 Set span storage type : elasticsearch services:elasticsearch:image: elasticsearch:7.17.12container_name: elasticsearchnetworks:- backend # …

String的增删查【C++】

String的增删查【C】 前言string的增删查改构造与析构构造string(const char* str "")赋值构造string(const string& s1) 赋值重载析构函数增reservepush_backappendinsert 删erase 查迭代器流插入流提取流插入流提取 前言 从这里开始可以算是进入了STL的学习中…

火山引擎DataLeap推出两款大模型应用: 对话式检索与开发 打破代码语言屏障

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 自上世50年代&#xff0c;以“计算机”作为代表性象征的信息革命开始&#xff0c;社会对于先进生产力的认知便开始逐步更迭——从信息化&#xff08;通常认为是把企…

kafka latest 模式消费偏移丢数据

Flink消费kafka&#xff0c;这种情况会丢数据

Vue.js 2 —组件(Component)化编程

一、模块与组件 模块 1. 理解 : 向外提供特定功能的 js 程序, 一般就是一个 js 文件 2. 为什么 : js 文件很多&#xff0c;很复杂 3. 作用 : 复用 js, 简化 js 的编写, 提高 js 运行效率 组件 组件是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素&#xff0c;封装…

在呼叫中心领域,人工智能目前处在什么阶段

在呼叫中心这个行业&#xff0c;人工智能已经逐渐走向实用化阶段。目前&#xff0c;很多企业已经开始采用人工智能技术来改善其呼叫中心的效率和服务质量。 具体来说&#xff0c;人工智能已经被用于呼叫中心自动语音应答、自然语言处理、智能路由、智能客服机器人等方面。通过这…

机器学习中的分类问题:如何选择和理解性能衡量标准

文章目录 &#x1f34b;引言&#x1f34b;为什么需要分类问题的性能衡量标准&#xff1f;&#x1f34b;常用的分类问题衡量标准&#x1f34b;混淆矩阵-精确率-召回率&#x1f34b;PR曲线和ROC曲线&#x1f34b;PR曲线&#x1f34b;ROC曲线&#x1f34b;PR vs. ROC &#x1f34b…

外汇天眼:外汇新手开展交易需要做哪些准备,你都知道么?

外汇交易&#xff0c;如同任何一项专业工作&#xff0c;需要不断积累知识和经验&#xff0c;以及稳定的心态。正如古语所说&#xff1a;“工欲善其事&#xff0c;必先利其器。” 在外汇市场&#xff0c;这句话同样适用。在踏上外汇交易之旅之前&#xff0c;我们迫切需要做好外汇…

Windows清除激活标志的方法

大家在购买电脑或笔记本的时候&#xff0c;有的商家给出的7天无理由退货&#xff0c;并不是真正的无理由&#xff0c;往往附件条件windows是不能激活的&#xff0c;如果激活了就只能换不能退了。 卖家提出的条件也特别滑稽可笑&#xff0c;你想不联网怎么体验啊&#xff1f;不…

一百八十五、大数据离线数仓完整流程——步骤四、在Hive的DWD层建动态分区表并动态加载数据

一、目的 经过6个月的奋斗&#xff0c;项目的离线数仓部分终于可以上线了&#xff0c;因此整理一下离线数仓的整个流程&#xff0c;既是大家提供一个案例经验&#xff0c;也是对自己近半年的工作进行一个总结。 二、数仓实施步骤 &#xff08;四&#xff09;步骤四、在Hive的…

最新Python大数据之Excel进阶

文章目录 Excel图表类型了解有哪些图表类型 Excel图表使用图表的创建方式利用固定数据区域创建图表编辑数据系列添加数据标签格式化图表 Excel数据透视表数据透视表对原始数据的要求创建数据透视表数据透视表字段布局将数据透视图变成普通图表 Excel图表类型 为了揭示数据规律…

入门级制作电子期刊的网站推荐

随着数字化时代的到来&#xff0c;越来越多的人开始尝试制作自己的电子期刊。如果你也是其中的一员&#xff0c;那么这篇文章可以帮助你制作电子期刊。无论是初学者还是有一定经验的制作者&#xff0c;都能快速完成高质量的电子期刊制作 小编经常使用的工具是-----FLBOOK在线制…

Python爬虫在Web应用自动化测试中的应用

在Web应用开发过程中&#xff0c;自动化测试是确保应用质量和稳定性的重要环节。本文将介绍如何使用Python爬虫与自动化测试技术相结合&#xff0c;实现对Web应用进行自动化测试的方法和步骤。通过这种结合&#xff0c;我们可以提高测试效率、减少人力成本&#xff0c;并确保应…

RocketMQ 消息重试机制

文章目录 消息发送重试重试触发条件重试流程重试间隔重试常见问题消息流控机制流控触发条件 生产者控制消息发送重试次数gRPC 客户端remoting 客户端 消费重试重试触发条件PushConsumer 消费重试策略PushConsumer 重试间隔时间修改 PushConsumer 最大重试次数gRPC 协议端口Remo…

华为数字能源,开启超充新纪元

编辑&#xff1a;阿冒 设计&#xff1a;沐由 在过去很长的一段时间里&#xff0c;国内某著名品牌火锅是从来不担心获客的。顶峰时期&#xff0c;该品牌每年服务超过1.6亿人次的顾客&#xff0c;翻台率达到了5次/天&#xff0c;几乎创下了餐饮界的最高翻台率。 翻台率是餐饮企业…

调用CFCA金信反欺诈服务相关接口,很详细

调用CFCA金信反欺诈服务相关接口&#xff0c;很详细 一、准备二、调用接口1、查询接口文档2、查看代码示例3、测试调用接口 三、工具类1、CFCA金信反欺诈服务接口码枚举类2、CFCA金信反欺诈服务的公共参数配置3、加密解密工具类4、请求参数dto5、调用接口工具类&#xff08;关键…

【N年测试总结】证券行业的测试特点

每个行业由于其业务形式&#xff0c;产品形态&#xff0c;行业要求等等的不同&#xff0c;都有其不同于其他行业的测试特点&#xff0c;对测试人员的重点能力要求也不同。 一、证券行业业务系统简介 证券行业的业务系统这里按照C端系统和B端业务系统两大类进行介绍。 C端系统…

tensorrt C++推理

char* trtModelStream{ nullptr }; //char* trtModelStreamnullptr; 开辟空指针后 要和new配合使用&#xff0c;比如89行 trtModelStream new char[size]size_t size{ 0 };//与int固定四个字节不同有所不同,size_t的取值range是目标平台下最大可能的数组尺寸,一些平台下size_…