当前位置: 首页 > news >正文

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

课程地址和说明

线性回归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
可知,

总结

相关文章:

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

课程地址和说明 线性回归p1 本系列文章是我学习李沐老师深度学习系列课程的学习笔记&#xff0c;可能会对李沐老师上课没讲到的进行补充。 线性回归 如何在美国买房&#xff08;经典买房预测问题&#xff09; 一个简化的模型 线性模型 其中&#xff0c; x → [ x 1 , x 2 ,…...

微信收款码费率0.38太坑了

作为一个有多年运营经验的商家&#xff0c;我本人在申请收款功能时曾经走过了不少弯路。我找遍了市面上的知名的支付公司&#xff0c;但了解到的收款手续费率通常都在0.6左右&#xff0c;最低也只能降到0.38。这个过程吃过不少苦头。毕竟&#xff0c;收款功能是我们商家的命脉&…...

【学习笔记】CF1103D Professional layer

首先分析不出啥性质&#xff0c;所以肯定是暴力优化&#x1f605; 常见的暴力优化手段有均摊&#xff0c;剪枝&#xff0c;数据范围分治&#xff08;points&#xff09;&#xff0c;答案值域分析之类的。 比较经典的题目是 CF1870E Another MEX Problem&#xff0c;可以用剪枝…...

vue之Pinia

定义 Store | Pinia 开发文档 1.什么是Pinaia Pinia 是 Vue 的专属状态管理库&#xff0c;它允许你跨组件或页面共享状态。 2.理解Pinaia核心概念 定义Store 在深入研究核心概念之前&#xff0c;我们得知道 Store 是用 defineStore() 定义的&#xff0c;它的第一个参数要求是一…...

antd-vue 级联选择器默认值不生效解决方案

一、业务场景&#xff1a; 最近在使用Vue框架和antd-vue组件库的时候&#xff0c;发现在做编辑回显时** 级联选择器** 组件的默认值不生效。为了大家后面遇到和我一样的问题&#xff0c;给大家分享一下 二、bug信息&#xff1a; 三、问题原因&#xff1a; 确定不了唯一的值&a…...

分享53个Python源码源代码总有一个是你想要的

分享53个Python源码源代码总有一个是你想要的 链接&#xff1a;https://pan.baidu.com/s/1ew3w2_DXlSBrK7Mybx3Ttg?pwd8888 提取码&#xff1a;8888 项目名称 100-Python ControlXiaomiDevices DRF-ADMIN 后台管理系统 FishC-Python3小甲鱼 Flask框架的api项目脚手架 …...

【每日一题】658. 找到 K 个最接近的元素

658. 找到 K 个最接近的元素 - 力扣&#xff08;LeetCode&#xff09; 给定一个 排序好 的数组 arr &#xff0c;两个整数 k 和 x &#xff0c;从数组中找到最靠近 x&#xff08;两数之差最小&#xff09;的 k 个数。返回的结果必须要是按升序排好的。 整数 a 比整数 b 更接近 …...

并发任务队列(字节青训测试题)

需求描述 封装一个并发任务队列类&#xff0c;用于对一些异步任务按指定的并发数量进行并发执行。 /*** 延迟函数* param {number} time - 延迟时间* return {Promise} delayFn - 延迟函数(异步封装)*/ function timeout(time) {return new Promise((resolve) > {setTimeo…...

Ubuntu 安装Nacos

1、官网下载最新版nacos https://github.com/alibaba/nacos/releases 本人环境JDK8&#xff0c;Maven3.6.3&#xff0c;启动Nacos2.2.1启动失败&#xff0c;故切换到2.1.0启动成功 2、放到服务器目录下&#xff0c;我的在/home/xxx/apps下 3、解压 $ tar -zxvf nacos-serve…...

CSS 小球随着椭圆移动

html代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><…...

【李沐深度学习笔记】线性代数

课程地址和说明 线性代数p1 本系列文章是我学习李沐老师深度学习系列课程的学习笔记&#xff0c;可能会对李沐老师上课没讲到的进行补充。 线性代数 标量 标量&#xff08;scalar&#xff09;&#xff0c;亦称“无向量”。有些物理量&#xff0c;只具有数值大小&#xff0c…...

vuejs - - - - - 递归组件的实现

递归组件的实现 1. 需求描述&#xff1a;2. 效果图&#xff1a;3. 代码3.1 封装组件代码3.2 父组件使用 1. 需求描述&#xff1a; 点击添加行&#xff0c;增加一级目录结构当类型为object or array时&#xff0c;点击右侧➕&#xff0c;增加子集点击右侧&#x1f6ae;&#x…...

精准对接促合作:飞讯受邀参加市工信局举办的企业供需对接会

2023年9月21日&#xff0c;由惠州市工业和信息化局主办的惠州市工业软件企业与制造业企业供需对接会成功举办&#xff0c;对接会旨在促进本地工业软件企业与制造业企业的紧密合作&#xff0c;推动数字化转型的深入发展。此次会议在市工业和信息化局16楼会议室举行&#xff0c;会…...

数学建模之遗传算法

文章目录 前言遗传算法算法思想生物的表示初始种群的生成下一代种群的产生适应度函数轮盘赌交配变异混合产生新种群 停止迭代的条件遗传算法在01背包中的应用01背包问题介绍01背包的其它解法01背包的遗传算法解法生物的表示初始种群的生成下一代种群的产生适应度函数轮盘赌交配…...

ISO9001认证常见的不符合项

今天&#xff0c;整理了一些关于ISO9001质量管理体系审核最常见的不合格项&#xff0c;以供大家参考。 一、质量管理体系 1、质量手册&#xff08;标准条款4.2.2&#xff09; &#xff08;1&#xff09;各部门执行的文件与手册的规定不一致。 &#xff08;2&#xff09;质量…...

crypto:看我回旋踢

题目 下载压缩包后解压可得到提示文本 经过观察&#xff0c;synt{}这个提示与flag{}形式很像 由题目名中的回旋可以推测为凯撒密码&#xff0c;由凯撒密码的定义可知&#xff0c;需要先推出移位数&#xff0c;s->f数13次&#xff0c;因此移位数为13&#xff0c;解码可得...

Springcloud实战之自研分布式id生成器

一&#xff0c;背景 日常开发中&#xff0c;我们需要对系统中的各种数据使用 ID 唯一表示&#xff0c;比如用户 ID 对应且仅对应一个人&#xff0c;商品 ID 对应且仅对应一件商品&#xff0c;订单 ID 对应且仅对应 一个订单。我们现实生活中也有各种 ID &#xff0c;比如身…...

java 企业工程管理系统软件源码 自主研发 工程行业适用

工程项目管理软件&#xff08;工程项目管理系统&#xff09;对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营&#xff0c;全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&am…...

Spring Cloud Alibaba Nacos 2.2.3 (4) - 本地源码编译 调试

下载nacos nacos在GitHub上有下载地址&#xff1a;https://github.com/alibaba/nacos/releases&#xff0c;可以选择任意版本下载。 我下载的是2.2.3 版本 导入idea mvn 安装包 1&#xff0c;切换到Terminal ,并且使用command prompt模式 2&#xff0c;执行 mvn -Prelease…...

WKB近似

WKB方法用于研究一种特定类型的微分方程的全局性质 很有用这种特定的微分方程形如&#xff1a; 经过一些不是特别复杂的推导&#xff0c;我们可以得到他的WKB近似解。 该近似解的选择取决于函数和参数的性质同时&#xff0c;我们默认函数的定义域为当恒大于零,时&#xff1a; 当…...

LeetCode算法二叉树—108. 将有序数组转换为二叉搜索树

目录 108. 将有序数组转换为二叉搜索树 代码&#xff1a; 运行结果&#xff1a; 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不…...

如何设置 Git 短命令

设置 Git 短命令 对喜欢敲命令而不用图形化工具的爱好者来说&#xff0c;设置短命令可以很好的提高效率。下面介绍两种设置短命令的方式。 方式一 git config --global alias.ps push方式二 打开全局配置文件 vim ~/.gitconfig写入内容 [alias] co checkoutps pushpl p…...

virtualbox无界面打开linux虚拟机的bat脚本,以及idea(代替Xshell)连接linux虚拟机的方法

virtualbox无界面打开linux虚拟机的bat脚本&#xff0c;以及idea连接linux虚拟机的方法 命令行运行代码成功运行的效果图 idea连接linux虚拟机的方法【重要】查看虚拟机的IP地址idea中选择菜单&#xff08;该功能可代替Xshell软件&#xff09;配置设置连接成功进入idea中的命令…...

mockito 的 InjectMocks 和 Mock 有什么区别?

InjectMocks 和 Mock 是 Mockito 框架中用于测试的注解&#xff0c;用于创建和管理模拟对象&#xff08;mocks&#xff09;的不同方式。它们有以下区别&#xff1a; InjectMocks&#xff1a; InjectMocks 用于注入模拟对象&#xff08;mocks&#xff09;到被测试对象&#xf…...

网络工程师的爬虫技术之路:跨界电商与游戏领域的探索

随着数字化时代的到来&#xff0c;跨界电商和游戏行业成为了网络工程师们充满机遇的领域。这两个领域都依赖于高度复杂的技术来实现商业目标和提供卓越的用户体验。本文将深入探讨网络工程师在跨界电商和游戏领域的技术挑战以及应对这些挑战的方法。 突破技术障碍的爬虫应用 …...

【TCP】确认应答 与 超时重传

确认应答 与 超时重传 一. 确认应答机制二. 超时重传机制 一. 确认应答机制 确认应答: 保障可靠传输的核心机制。 可靠传输: 不是指传输过去的数据不出错, 也不是指数据一定能传输过去&#xff0c;而是指发送方能够知道接收方是否接收到了数据。确认应答的关键就是接收方收到数…...

Kubernetes中Pod的扩缩容介绍

Kubernetes中Pod的扩缩容介绍 在实际生产系统中&#xff0c;我们经常会遇到某个服务需要扩容的场景&#xff0c;也可能会遇到由于资源紧张或者工作负载降低而需 要减少服务实例数量的场景。此时可以利用 Deployment/RC 的 Scale 机制来完成这些工作。 Kubernetes 对 Pod 的扩…...

vue点击pdf文件直接在浏览器中预览文件

好久没有更新文章了&#xff0c;说说为什么会有这篇文章呢&#xff0c;其实是应某个热线评论的要求出的&#xff0c;不过由于最近很长一段时间没打开csdn现在才看到&#xff0c;所以才会导致到现在才出。 先来看看封装完这个预览方法的使用&#xff0c;主打一个方便使用&#x…...

通讯网关软件012——利用CommGate X2OPC实现MS SQL数据写入OPC Server

本文推荐利用CommGate X2OPC实现从MS SQL服务器获取数据并写入OPC Server。CommGate X2OPC是宁波科安网信开发的网关软件&#xff0c;软件可以登录到网信智汇(http://wangxinzhihui.com)下载。 【案例】如下图所示&#xff0c;实现从MS SQL数据库获取数据并写入OPC Server。 【…...

ISE_ChipScope Pro的使用

1.ChipScope Pro Core Inserter 使用流程 在之前以及编译好的流水灯实验上进行学习 ChipScope的使用。 一、新建一个ChipScope 核 点击Next,然后在下一个框中选择 Finish&#xff0c;你就会在项目菜单中看到有XX.cdc核文件。 二、对核文件进行设置 右键“Synthesize – XST” …...