最小二乘法代数表示方法

假设多元线性方程有如下形式:
f(x)=w1x1+w2x2+...+wdxd+bf(x) = w_1x_1+w_2x_2+...+w_dx_d+b f(x)=w1​x1​+w2​x2​+...+wd​xd​+b
令w=(w1,w2,...wd)w = (w_1,w_2,...w_d)w=(w1​,w2​,...wd​),x=(x1,x2,...xd)x = (x_1,x_2,...x_d)x=(x1​,x2​,...xd​),则上式可写为
f(x)=wTx+bf(x) = w^Tx+b f(x)=wTx+b
多元线性回归的最小二乘法的代数法表示较为复杂,此处先考虑简单线性回归的最小二乘法表示形式。在简单线性回归中,w只包含一个分量,x也只包含一个分量,我们令此时的xix_ixi​就是对应的自变量的取值,此时求解过程如下

优化目标可写为
SSE=∑i=1m(f(xi)−yi)2=E(w,b)SSE = \sum^m_{i=1}(f(x_i)-y_i)^2 = E_(w,b) SSE=i=1∑m​(f(xi​)−yi​)2=E(​w,b)
通过偏导为0求得最终结果的最小二乘法求解过程为:
KaTeX parse error: No such environment: align at position 9: \begin{̲a̲l̲i̲g̲n̲}̲ \frac{\partial…

KaTeX parse error: No such environment: align at position 9: \begin{̲a̲l̲i̲g̲n̲}̲ \frac{\partial…

求得:
w=∑i=1myi(xi−xˉ)∑i=1mxi2−1m(∑i=1mxi)2w = \frac{\sum^m_{i=1}y_i(x_i-\bar{x}) }{\sum^m_{i=1}x^2_i-\frac{1}{m}(\sum^m_{i=1}x_i)^2 } w=∑i=1m​xi2​−m1​(∑i=1m​xi​)2∑i=1m​yi​(xi​−xˉ)​

b=1m∑i=1m(yi−wxi)b = \frac{1}{m}\sum^m_{i=1}(y_i-wx_i) b=m1​i=1∑m​(yi​−wxi​)

#最小二乘法的矩阵表示形式

设多元线性回归方程为:
f(x)=w1x1+w2x2+...+wdxd+bf(x) = w_1x_1+w_2x_2+...+w_dx_d+b f(x)=w1​x1​+w2​x2​+...+wd​xd​+b

w^=(w1,w2,...,wd,b)\hat w = (w_1,w_2,...,w_d,b) w^=(w1​,w2​,...,wd​,b)

x^=(x1,x2,...,xd,1)\hat x = (x_1,x_2,...,x_d,1) x^=(x1​,x2​,...,xd​,1)


f(x)=w^∗x^Tf(x) = \hat w * \hat x^T f(x)=w^∗x^T
有多个y值,则所有x值可以用矩阵X进行表示:
X=[x11x12...x1d1x21x22...x2d1............1xm1xm2...xmd1]X = \left [\begin{array}{cccc} x_{11} &x_{12} &... &x_{1d} &1 \\ x_{21} &x_{22} &... &x_{2d} &1 \\ ... &... &... &... &1 \\ x_{m1} &x_{m2} &... &x_{md} &1 \\ \end{array}\right] X=⎣⎢⎢⎡​x11​x21​...xm1​​x12​x22​...xm2​​............​x1d​x2d​...xmd​​1111​⎦⎥⎥⎤​
y也可用m行1列的矩阵表示:
y=[y1y2...ym]y = \left [\begin{array}{cccc} y_1 \\ y_2 \\ . \\ . \\ . \\ y_m \\ \end{array}\right] y=⎣⎢⎢⎢⎢⎢⎢⎡​y1​y2​...ym​​⎦⎥⎥⎥⎥⎥⎥⎤​
此时,SSE表示为:
SSE=∣∣y−Xw^T∣∣22=(y−Xw^T)T(y−Xw^T)=E(w^)SSE = ||y - X\hat w^T||_2^2 = (y - X\hat w^T)^T(y - X\hat w^T) = E(\hat w) SSE=∣∣y−Xw^T∣∣22​=(y−Xw^T)T(y−Xw^T)=E(w^)
根据最小二乘法的求解过程,令E(w^)E(\hat w)E(w^)对w^\hat ww^求导方程取值为0,有
KaTeX parse error: No such environment: equation at position 879: …数,有如下规则: \begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ \\\frac{\parti…
简单记忆矩阵的求导,自身转置对自身求导=其它项的转置;

其中:
∂∣∣y−Xw^T∣∣22\partial{||\boldsymbol{y} - \boldsymbol{X\hat w^T}||_2}^2 ∂∣∣y−Xw^T∣∣2​2
下方的2表示L2范式,即里面的内容相乘之后开根号,右上平方之后,消除根号。

进一步可得
XTXw^T=XTyX^TX\hat w^T = X^Ty XTXw^T=XTy
要使得此式有解,等价于XTXX^TXXTX(也被称为矩阵的交叉乘积crossprod存在逆矩阵,若存在,则可解出)
w^T=(XTX)−1XTy\hat w ^T = (X^TX)^{-1}X^Ty w^T=(XTX)−1XTy

最小二乘法的编程实现

例子:

X=A=[1131]X = A = \left [\begin{array}{cccc} 1 &1 \\ 3 &1 \\ \end{array}\right] X=A=[13​11​]

y=B=[24]y = B = \left [\begin{array}{cccc} 2 \\ 4 \\ \end{array}\right] y=B=[24​]

w^T=XT=[ab]\hat w ^T = X^T = \left [\begin{array}{cccc} a \\ b \\ \end{array}\right] w^T=XT=[ab​]

手动实现

X = A
X
tensor([[1., 1.],[3., 1.]])
y = B
y
tensor([[2.],[4.]])
X.t()
tensor([[1., 3.],[1., 1.]])
w = torch.mm(torch.mm(torch.inverse(torch.mm(X.t(),X)),X.t()),y)

这里直接套用上面推导出来的公式

w
tensor([[1.0000],[1.0000]])

调用函数求解

torch.lstsq(y, X)
torch.return_types.lstsq(
solution=tensor([[1.0000],[1.0000]]),
QR=tensor([[-3.1623, -1.2649],[ 0.7208, -0.6325]]))

对于lstsq函数来说,第一个参数是因变量张量,第二个参数是自变量张量,并且同时返回结果还包括QR矩阵分解的结果。

补充知识点:范数的计算

求解L2范数:

# 默认情况,求解L2范数,个元素的平方和开平方
torch.linalg.norm(t)

求解L1范数:

# 输入参数,求解L1范数,个元素的绝对值之和
torch.linalg.norm(t, 1)

总结

最小二乘法计算快速,但条件苛刻,需满足X存在逆矩阵。

深度学习基础:2.最小二乘法相关推荐

  1. 资源 | Intel发布AI免费系列课程3部曲:机器学习基础、深度学习基础以及TensorFlow基础

    翻译 | AI科技大本营(公众号ID:rgznai100) 校对 | 成龙 编辑 | 明明 Intel于近期发布了三门AI系列的免费课程,分别是关于机器学习基础.深度学习基础.TensorFlow基础 ...

  2. 深度估计相关原理(计算机视觉和深度学习基础)

    今天来和大家介绍一下深度估计涉及到的理论知识点,包括计算机视觉基础和深度学习基础. 一.计算机视觉基础 1.1. 针孔相机模型 相机模型,是指采用一个几何模型来描述三维世界中的坐标点映射到二维图像平面 ...

  3. 深度学习基础(基本概念、优化算法、初始化、正则化等)

    2020-04-25 16:29:09 引言 深度学习目前已成为发展最快.最令人兴奋的机器学习领域之一,许多卓有建树的论文已经发表,而且已有很多高质量的开源深度学习框架可供使用.然而,论文通常非常简明 ...

  4. 【完结】有三AI阿里云的深度学习基础课程暂时完结,欢迎扩散学习

    2021年3月份有三AI与阿里天池联合推出了深度学习系列课程, 课程内容包括人工智能与深度学习发展背景,深度学习典型应用,卷积神经网络,循环神经网络,生成对抗网络,深度学习开源框架等内容,目前已经基本 ...

  5. [深度学习基础] 深度学习基础及数学原理

    图像分类 (image classification) 问题是指, 假设给定一系列离散的类别(categories)(如猫, 狗, 飞机, 货车, ...), 对于给定的图像, 从这些类别中赋予一个作 ...

  6. 人工智能 - paddlepaddle飞桨 - 深度学习基础教程 - 编程指南

    编程指南 目前飞桨(PaddlePaddle,以下简称Paddle)已经同时支持动态图和静态图两种编程方式, 本文主要侧重于介绍静态图的编程方法,关于动态图编程方法,请参考动态图机制-DyGraph. ...

  7. 人工智能 - paddlepaddle飞桨 - 深度学习基础教程 - 个性化推荐

    人工智能 - paddlepaddle飞桨 - 深度学习基础教程 - 个性化推荐 本教程源代码目录在book/recommender_system,初次使用请您参考Book文档使用说明. 说明: 硬件 ...

  8. Deep learning with python notebooks 笔记 第一章 深度学习基础

    第一章 深度学习基础 好的图表比文字传达的信息量多 图1-1帮助理清了人工智能.机器学习和深度学习之间的关系. 图1-2 清晰的阐述了经典程序设计范式和机器学习一种新的编程范式的不同.两种范式引出了两 ...

  9. 深度学习基础 | NLP大魔王 · BERT

    ‍作者 | Chilia 整理 | NewBeeNLP‍ 首先,请阅读先修知识: 深度学习基础 | 从Language Model到RNN 深度学习基础 | RNN家族全面解析 深度学习基础 | Se ...

  10. 深度学习基础 | 超详细逐步图解 Transformer

    作者 | Chilia 整理 | NewBeeNLP 首先,请阅读先修知识: 深度学习基础 | 从Language Model到RNN 深度学习基础 | RNN家族全面解析 深度学习基础 | Seq2 ...

最新文章

  1. 部署Symantec Antivirus 10.0网络防毒服务器之六
  2. 【pmcaff专栏】吴波:浅谈O2O行业的猎人与农夫
  3. POJ2762(判断无向图的弱连通)
  4. linux下加载qdm找不到驱动,Linux下共享文件夹的设置方法
  5. linux文件赋予755权限,Linux文件和目录的777、755、644权限解释
  6. python任务调度平台 界面_分布式任务调度平台XXL-JOB搭建教程
  7. Latex中定义、定理、引理、证明 设置方法总结
  8. 《只管去做》-如何做靠谱的年度计划
  9. [转]asp 无法连接 access,出现 -2147467259 未指定的错误
  10. netperf mips 移植
  11. 通达oa 2013 php解密,通达OA漏洞学习 - 安全先师的个人空间 - OSCHINA - 中文开源技术交流社区...
  12. 关于iReport中纸张的大小 换算
  13. EOSIO流服务Dfuse
  14. 维和步兵营~傻逼的戈瑞-冷酷的林皓南~装逼的海蓝
  15. 怎么查看一段时间的计算机ip,如何查看电脑中使用过的历史IP地址
  16. 四种xml的解析方式
  17. vue结合百度地图绘制工具遇到的问题及解决方案(多边形编辑状态下形状显示不全、marker点添加事件无效)
  18. kotlin中RecyclerView.Adapter通用适配器
  19. 直方图均衡化(HE, AHE, CLAHE)
  20. 巧用计算机方法,第四课 巧用计算器教案.doc

热门文章

  1. iframe 接班人-微前端框架 qiankun 在中后台系统实践
  2. python 中文分析句子成分_语文句子成分分析详解
  3. 举个栗子!Tableau技巧(60):轻松搞定 关系网 图表
  4. linux下的软件包
  5. 【无标题】灵遁者相观天下,相学培训书籍
  6. 常用的系统操作响应时间
  7. Hotspot 重量级锁ObjectMonitor(一) 源码解析
  8. SAP-GR/IR的理解
  9. Java高级用户指南-核心Java
  10. UAP_STUDIO授权失败解决办法