首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >深度学习基础:2.最小二乘法

深度学习基础:2.最小二乘法

作者头像
zstar
发布2022-06-14 13:59:28
发布2022-06-14 13:59:28
3350
举报
文章被收录于专栏:往期博文往期博文

最小二乘法代数表示方法

手动实现

代码语言:javascript
复制
X = A
X
代码语言:javascript
复制
tensor([[1., 1.],
        [3., 1.]])
代码语言:javascript
复制
y = B
y
代码语言:javascript
复制
tensor([[2.],
        [4.]])
代码语言:javascript
复制
X.t()

代码语言:javascript
复制
tensor([[1., 3.],
        [1., 1.]])
代码语言:javascript
复制
w = torch.mm(torch.mm(torch.inverse(torch.mm(X.t(),X)),X.t()),y)

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

代码语言:javascript
复制
w
代码语言:javascript
复制
tensor([[1.0000],
        [1.0000]])

调用函数求解

代码语言:javascript
复制
torch.lstsq(y, X)
代码语言:javascript
复制
torch.return_types.lstsq(
solution=tensor([[1.0000],
        [1.0000]]),
QR=tensor([[-3.1623, -1.2649],
        [ 0.7208, -0.6325]]))

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

补充知识点:范数的计算

求解L2范数:

代码语言:javascript
复制
# 默认情况,求解L2范数,个元素的平方和开平方
torch.linalg.norm(t)

求解L1范数:

代码语言:javascript
复制
# 输入参数,求解L1范数,个元素的绝对值之和
torch.linalg.norm(t, 1)

总结

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 最小二乘法代数表示方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档