ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

最小二乘法

2022-06-27 14:00:27  阅读:232  来源: 互联网

标签:一步 梯度 矩阵 最小 Step 乘法


普通最小二乘法

参考   https://zhuanlan.zhihu.com/p/62018131
批量梯度下降中讨论了,如何利用梯度下降的方式,如何一步一步寻找到损失函数的最小值,得到最佳拟合的 [公式] ,这里我们继续讨论线性拟合问题,这次尝试用最小二乘法直接求解 [公式] ,就是说我们不用从山顶寻找梯度一步一步的往最低点走,某种情况下可以直接计算出 [公式]

 

普通最小二乘法(Ordinary least squares)

最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配,利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小,下面一步一步推导。
最小二乘法​zh.wikipedia.org/zh-hans/%E6%9C%80%E5%B0%8F%E4%BA%8C%E4%B9%98%E6%B3%95

 

Step 1. 最初我们是有一组训练数据

[公式] ,其中[公式]

我们想要拟合的曲线为 [公式],这里 [公式]

 

Step 2. 现在我们用矩阵的形式来表示 [公式] ,我们有N个样本数据,每个数据维度是n维

[公式]

 

Step 3. 这里把上面的公式组合拆分成3部分 [公式] 数据集, [公式] 参数, [公式] 目标值

[公式] [公式] [公式]

这时等式就可以写成 [公式]

 [公式] , [公式] , [公式]

 

Step 4. 我们想要通过这N个等式来求解 [公式] ,当然这里不一定会有 [公式] 会使所有等式都成立,这时候就还是需要一个损失函数来判断取[公式] 的时候,误差是否为最小,这里就和梯度下降是一个思路,用误差平方和来代表损失,但是这里是用矩阵的形式来表示

[公式] ,矩阵的L-2范数即表示误差平方和

 

Step 5. 这时候就不需要用梯度下降的方法去一步一步计算,还是可以根据人物下山的例子想象一下,梯度下降是人物以 [公式] 为步长,走一步计算一下梯度再走下一步,而这里我们更像是人物开了天眼,一次性从所有的数据中找到最优解 [公式]

 

Step 6. 首先来展开 [公式]

[公式]

上式 [公式] 是一个标量,因为 [公式] , [公式] , [公式] ,所以根据矩阵乘法的特点,这里乘出来之后会是1个标量, [公式] 同理,所以二者可以合并成 [公式]

 

Step 7. 在梯度下降中,我们一步一步的计算梯度,一直走到最低点也就是导数为0的点,这里可以直接对损失函数求导,令导数=0即可

[公式]

此时注意到 [公式] 是一个 [公式] 维的方阵,这时候根据公式

[公式]

如上矩阵相关的公式,都可以在一个cookbook中查找到,所以可以推导出 [公式] 用 [公式] 数据集和 [公式] 目标集来表示

The Matrix Cookbook​117.128.6.34/cache/www2.imm.dtu.dk/pubdb/views/edoc_download.php/3274/pdf/imm3274.pdf?ich_args2=466-11132213008203_0b26da0a993385059ef3d90549e99ec6_10001002_9c896128dec5f1d0943b518939a83798_efb0b935aca0c3bc1c9af15cf2a1260c

[公式]

[公式]

[公式]

 

总结

至此已经计算出线性回归中 [公式] 的值,也就是说,我们不必要用梯度下降的方式去迭代收敛到最小值,可以直接根据公式得到 [公式] 清晰的解析解,但是最小二乘法并不能解决所有情况,有以下几点:

A. 通过公式 [公式] 发现对在数据集基础上做逆运算,计算矩阵的逆需要大量的计算,虽然现在计算机能力都很强,但是那也架不住,动辄上百万的数据量和上万的维度,所以首先数据量过大不适合用最小二乘法,反观梯度下降就没有这个问题(一步一步迭代嘛)

B. 还是逆运算,并不是所有的矩阵都是可逆的,如果数据集中有多重共线性的问题(矩阵行列式=0),这里求逆就行不通了,即便是可逆,多重共线性也会让结果很不准确,但是梯度下降还是可以一步一步收敛。当然了也可以通过比如降维,求伪逆,损失函数加上个惩罚项(后面会讨论LASSORidge)等办法对数据集进行处理,转化成可逆矩阵。

   

对于矩阵AB和标量c转置有下列性质:

  • \left(A^{\mathrm {T} }\right)^{\mathrm {T} }=A\quad
    转置是自身逆运算
  • (A+B)^{\mathrm {T} }=A^{\mathrm {T} }+B^{\mathrm {T} }
    转置是从m × n矩阵的向量空间到所有n × m矩阵的向量空间的线性映射
  • \left(AB\right)^{\mathrm {T} }=B^{\mathrm {T} }A^{\mathrm {T} }
    注意因子反转的次序。以此可推出方块矩阵A可逆矩阵,当且仅当AT是可逆矩阵,在这种情况下有 (A−1)T = (AT)−1。相对容易的把这个结果扩展到矩阵相乘的一般情况,可得出 (ABC...XYZ)T = ZTYTXT...CTBTAT
  • (cA)^{\mathrm {T} }=cA^{\mathrm {T} }
    标量的转置是同样的标量。
  • \det(A^{\mathrm {T} })=\det(A)
    矩阵的转置矩阵的行列式等于这个矩阵的行列式。
  • 两个纵列向量ab点积可计算为
    {\displaystyle \mathbf {a} \cdot \mathbf {b} =\mathbf {a} ^{\mathrm {T} }\mathbf {b} }
  • 如果A只有实数元素,则ATA正半定矩阵
  • 如果A是在某个上,则A 相似AT

那么逆矩阵又有哪些运算性质呢?如下:

       

       第一个一目了然了。

       第二个稍微需要描叙一下:

       

       第三个可能也需要推算一下:

       

标签:一步,梯度,矩阵,最小,Step,乘法
来源: https://www.cnblogs.com/realyuan2022/p/16415862.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有