1.基本形式

对含有nnn个属性的样本x=(x1;x2;...;xn)\left ( x_{1} ;x_{2};...;x_{n}\right )(x1​;x2​;...;xn​),线性模型将通过属性的线性组合f(x)=w1x1+w2x2+...+wnxn+bf\left (\mathbf{ x }\right )=w_{1}x_{1}+w_{2}x_{2}+...+w_{n}x_{n}+bf(x)=w1​x1​+w2​x2​+...+wn​xn​+b来对未知样本进行预测。为了形式上的简洁,一般采用向量形式写成f(x)=wTx+bf\left (\mathbf{ x }\right )=w^{T}\mathbf{x}+bf(x)=wTx+b,其中w=(w1;w2;w3...;wn)\mathbf{w}=\left ( w_{1} ;w_{2};w_{3}...;w_{n}\right )w=(w1​;w2​;w3​...;wn​)(ps:在机器学习或者深度学习中,向量一般都是写成列向量的形式)。得到以上的线性模型的表达形式,下一步就是求解w\mathbf{w}w和b,模型表达式最终也能因此确立。如何确定参数,关键是如何衡量f(x)f\left (\mathbf{ x }\right )f(x)与实际的输出yyy之间的差别,因此我们采用均方误差进行参数的度量:
lossfunction=∑i=1m(f(xi)−yi)2loss function=\sum_{i=1}^{m}\left ( f\left ( x^{i} \right )-y^{i} \right )^{2}lossfunction=∑i=1m​(f(xi)−yi)2
其中mmm表示样本个数,iii上角标表示第iii个样本。那么我们优化的过程就是是的lossfunctionloss functionlossfunction越小越好。以下采用两种方法来优化参数。

2.1定义法

根据梯度下降的公式:
[w1j;w2j...;wnj]=[w1j−1;w2j−1...;wnj−1]−η[∂L∂w1j−1;∂L∂w2j−1...;∂L∂wnj−1]\left [ w_{1}^{j};w_{2}^{j}...;w_{n}^{j} \right ]=\left [ w_{1}^{j-1};w_{2}^{j-1}...;w_{n}^{j-1} \right ]-\eta \left [ \frac{\partial L}{\partial w_{1}^{j-1}} ;\frac{\partial L}{\partial w_{2}^{j-1}}...;\frac{\partial L}{\partial w_{n}^{j-1}}\right ][w1j​;w2j​...;wnj​]=[w1j−1​;w2j−1​...;wnj−1​]−η[∂w1j−1​∂L​;∂w2j−1​∂L​...;∂wnj−1​∂L​]

bj=bj−1−η∂L∂bj−1b^{j}=b^{j-1}-\eta \frac{\partial L}{\partial b^{j-1}}bj=bj−1−η∂bj−1∂L​

从以上公式可以看出通过前面的参数来更新后面的参数。在梯度下降法中,我们会在起始对参数进行初始化一个值,然后根据梯度下降法公式不断更新参数直到达到所要的合适参数。学习率是提前设定的,参数也有初始化,在公式中我们还需要求解LLL对参数的偏导。
因为 L=∑i=1m(f(xi)−yi)2L=\sum_{i=1}^{m}\left ( f\left ( x^{i} \right )-y^{i} \right )^{2}L=∑i=1m​(f(xi)−yi)2
所以[∂L∂w1j;∂L∂w2j...;∂L∂wnj]=[2∑i=1m(f(xi)−yi)x1m;2∑i=1m(f(xi)−yi)x2m...;2∑i=1m(f(xi)−yi)xnm]\left [ \frac{\partial L}{\partial w_{1}^{j}} ;\frac{\partial L}{\partial w_{2}^{j}}...;\frac{\partial L}{\partial w_{n}^{j}}\right ]=\left [ 2\sum_{i=1}^{m}\left ( f\left (\mathbf{x}^{i} \right )-y^{i} \right )x_{1}^{m}; 2\sum_{i=1}^{m}\left ( f\left (\mathbf{x}^{i} \right )-y^{i} \right )x_{2}^{m}...;2\sum_{i=1}^{m}\left ( f\left (\mathbf{x}^{i} \right )-y^{i} \right )x_{n}^{m}\right ][∂w1j​∂L​;∂w2j​∂L​...;∂wnj​∂L​]=[2∑i=1m​(f(xi)−yi)x1m​;2∑i=1m​(f(xi)−yi)x2m​...;2∑i=1m​(f(xi)−yi)xnm​]

2.2矩阵法

若从矩阵的角度的出发,那么我们可以把每个样本的属性排成一行,并将参数bbb放入参数www中一起计算。
那么我们的w=(w1;w2...;wn;b)\boldsymbol{w}=\left ( w_{1} ;w_{2}...;w_{n};b\right )w=(w1​;w2​...;wn​;b),所有的样本组成矩阵X=[x11x12...x1d1x21x22...x2d1...............xm1xm2...xmd1]X=\begin{bmatrix} x_{11} & x_{12} &... & x_{1d} & 1\\ x_{21} &x_{22} &... & x_{2d} & 1\\ ... & ... & ... & ... & ...\\ x_{m1}&x_{m2} & ... &x_{md} & 1 \end{bmatrix}X=⎣⎢⎢⎡​x11​x21​...xm1​​x12​x22​...xm2​​............​x1d​x2d​...xmd​​11...1​⎦⎥⎥⎤​
y=(y1;y2...;ym)\boldsymbol{y}=\left ( y_{1};y_{2}...;y_{m} \right )y=(y1​;y2​...;ym​)
那么我们可以得到lossfunctionLloss function LlossfunctionL =∥Xw−y∥2\left \| \boldsymbol{Xw}- \boldsymbol{y}\right \|^{2}∥Xw−y∥2,∥S∥\left \| \boldsymbol{S} \right \|∥S∥表示向量X\boldsymbol{X}X的范数。这里要从整体上进行求导,而不是对某个样本求导,然后将所有样本结果排列矩阵或者向量。 我们需要求导的是∂L∂w\frac{\partial L}{\partial \boldsymbol{w}}∂w∂L​,这里是标量对矩阵求导,不能简单应用标量对标量求导的方法去求。所以我们得先清楚标量对矩阵求导有些什么特点,以下我将会对此讲述:
首先我们先思考∂L∂w\frac{\partial L}{\partial \boldsymbol{w}}∂w∂L​求导后是怎样的形式呢?给人第一直觉就是得到一个和w\boldsymbol{w}w同样维度的向量,没错,你的直觉没有错,哈哈。其实在这里,如果要深入理解的话,这是分母布局造成的,与之对应的还有分子布局。在这里不影响后续的求解,所以不详细讨论,大家凭直觉就阔以。要理解一个概念,最好的方法就是举例子: 如果w\boldsymbol{w}w是一个标量,大家是不是可以轻易得到dL=∂L∂wdwdL=\frac{\partial L}{\partial w}dwdL=∂w∂L​dw,那么向量w\boldsymbol{w}w是不是可以看成一个多元函数LLL的自变量,是不是我们就可以得到dL=(∂L∂w)TdwdL=\left ( \frac{\partial L}{\partial \boldsymbol{w}} \right )^{T}d\boldsymbol{w}dL=(∂w∂L​)Tdw,这是一个非常关键的式子,记住哦,后面需要用到!!! 除此之外,我们还要补充一个概念,矩阵的微分 ,这个概念其实很简单,定义如下:A=[abcd]A=\begin{bmatrix} a & b\\ c & d \end{bmatrix}A=[ac​bd​],那么dA=[dadbdcdd]dA=\begin{bmatrix} da & db\\ dc & dd \end{bmatrix}dA=[dadc​dbdd​]
通过这个定义,我们也能够很简单的得到一些法则,在这里我只列出我们需要用到的,d(X±Y)=dX±dYd\left ( \boldsymbol{X\pm Y} \right )=d\boldsymbol{X}\pm d\boldsymbol{Y}d(X±Y)=dX±dY,dXY=XdY+(dX)YdXY=XdY+\left ( dX \right )YdXY=XdY+(dX)Y,dAT=(dA)TdA^{T}=\left ( dA \right )^{T}dAT=(dA)T证明很简单,大家可以自己计算。接着我们计算dLdLdL,我们将L的范数形式写成矩阵形式就是L=(Xw−y)T(Xw−y)L=\left ( \boldsymbol{Xw} -\boldsymbol{y}\right )^{T}\left ( \boldsymbol{Xw}-\boldsymbol{y} \right )L=(Xw−y)T(Xw−y),所以dL=d(Xw−y)T(Xw−y)dL=d\left ( \boldsymbol{Xw} -\boldsymbol{y}\right )^{T}\left ( \boldsymbol{Xw}-\boldsymbol{y} \right )dL=d(Xw−y)T(Xw−y),l利用上面矩阵微分的两个法则,我们可以得到dL=2(Xw−y)TXdwdL=2\left ( \boldsymbol{Xw} -\boldsymbol{y}\right )^{T}\boldsymbol{X}d\boldsymbol{w}dL=2(Xw−y)TXdw,注意注意!!!将这个式子与我们上面让大家记住的那个式子对比一下,是不是很惊讶,哎呀,这不正是我们要求的∂L∂w=2XT(Xw−y)\frac{\partial L}{\partial \boldsymbol{w}}=2\boldsymbol{X}^{T}\left ( \boldsymbol{Xw} -\boldsymbol{y}\right )∂w∂L​=2XT(Xw−y),到此我们是不是就可以运用梯度下降法了,那么更新公式就是wi=wi−1−η∂L∂wi−1\boldsymbol{w}^{i}=\boldsymbol{w}^{i-1}-\eta \frac{\partial L}{\partial \boldsymbol{w}^{i-1}}wi=wi−1−η∂wi−1∂L​。

总结:在这里的两种角度优化模型参数,第一种便于理解,但是在程序执行中会有for循环,这样计算速度会慢点;第二种直接从整体出发,程序执行中不需要for循环,在matlab或者python的numpy都有矩阵运算库。所以在执行速度会更快。程序编写,优先选用第二种算法。

以上有何不足,望不吝赐教!

参考资料:
机器学习,清华大学出版社.周志华
矩阵求导术(上)
机器学习中的矩阵向量求导之微分法

从两个角度求解线性回归模型参数相关推荐

  1. 2021-04-24 Python 最小二乘法求解线性回归模型

    Python 最小二乘法求解线性回归模型 机器学习线性回归模型 线性回归(linear regression)是一种线性模型,它假设输入变量 x 和单个输出变量 y 之间存在线性关系 具体来说,利用线 ...

  2. 最小二乘法求解线性回归模型

    最小二乘法求解线性回归模型 题目描述 计算公式 测试用主函数及其它 输入 输出 样例输入 样例输出 杂谈 代码 时间限制: 1 Sec 内存限制: 128 MB 题目描述 假设有一组观测数据(X,Y) ...

  3. 从几何角度解析线性回归模型,并进行参数估计

    本文我们将从样本角度和特征角度进行线性回归的几何解析,并进行参数估计. 样本角度就是我们最初的常规理解,利用最小二乘估计进行参数估计(计算量较大). 特征空间角度则可以在理解的基础上,快速得到模型解析 ...

  4. 线性方程组数学原理、矩阵原理及矩阵变换本质、机器学习模型参数求解相关原理讨论...

    1. 线性方程组 0x1:无处不在的线性方程组 日常生活或生产实际中经常需要求一些量,用未知数 x1,x2,....,xn表示这些量,根据问题的实际情况列出方程组,而最常见的就是线性方程组(当然并不是 ...

  5. 再谈线性回归函数分析,从概率论与数理统计角度看线性回归参数估计

    1. 随机变量的数字特征 0x1:为什么我们需要统计随机变量的数字特征 随机变量的分布函数(或概率函数,或密度函数)已经非常全面了,精确地描述了这个随机变量取值的统计规律性,那为什么我们还需要研究随机 ...

  6. plor 回归的r方_简单线性回归模型

    点击"蓝字"关注我们吧 1 导言 回归分析是一个古老的话题.一百多年前,英国的统计学家高尔顿(F. Galton,1822-1911)和他的学生皮尔逊(K. Pearson,185 ...

  7. 三、多元线性回归模型(计量经济学学习笔记)

    ①多元线性回归模型及古典假定 1.1多元线性回归模式 多元线性回归模型是指对各个回归参数而言是线性的,而对于变量既可以是线性的,也可以不是线性的. 一般地,由n个单位构成的总体,包含被解释变量Y和k- ...

  8. 回归分析:一元线性回归模型 白话解析与案例实现

    线性学习 回归分析是研究自变量x与因变量y的关系的方法. 生活中经常会有类似的关系,例如工龄与工资的关系.房屋面积与价格的关系等等. 一元线性回归模型 只是涉及一个自变量的关系,可以用一元线性方程来表 ...

  9. 线性回归模型(OLS)1

    本系列文章基于R语言中lm函数的输出,介绍线性回归模型的例子和原理. 本文是系列文章的第一篇,将介绍线性回归模型的定义并给出一个R语言的示例. 线性回归模型是我们日常工作中处理数据时经常使用的一种基础 ...

最新文章

  1. 数据结构:回溯--解决八皇后问题
  2. TSP问题遗传算法通用Matlab程序
  3. 计算机应用基础 实验指导,计算机应用基础实验指导EXCEL
  4. [Leedcode][JAVA][第46题][全排列][回溯算法]
  5. winform中通过FileStream实现将文件上传
  6. 数学分析第四版上册70页14题
  7. 中级软件设计师笔记全套 看完你就过啦
  8. 京东淘宝等电脑网页打不开的解决办法
  9. 脑电数据处理分析教程汇总(eeglab, mne-python)
  10. Java Instrument 功能使用及原理
  11. 远程计算机蓝屏,什么原因造成了蓝屏 电脑蓝屏错误代码介绍
  12. 百度内容质量部测试开发面试题
  13. Cygwin使用之神器apt-cyg安装与使用
  14. C++类和对象的使用之对象指针
  15. python3tkinter怎样更换背景图片_python GUI作业:tkinter控件改变背景色
  16. 抖音小程序可做类目--资讯
  17. 6000字长文,详解黑色产业链的「攻守道」
  18. C++ 获取本机ip地址
  19. 实验四: 子集和问题
  20. 【Linux】ps -aux和ps -ef命令命令参数的作用以及区别详情

热门文章

  1. wegame剑灵登总是服务器维护,WeGame云游戏版《剑灵》,设备不再是问题,地区、网速成最大限制...
  2. 坚果J10和极米H3S怎么选?对比当贝F3优势大吗?
  3. 自定义身份证识别相机UI
  4. oracle基础之sql基础知识
  5. 电动车被盗?爱车如何保障安全?
  6. mysql命令小练习(homework)
  7. android 6.0 名字,棉花糖Marshmallow 是Android 6.0的名字
  8. alertmanager 配置邮件+邮件模板
  9. 国产操作系统,想说爱你不容易!浅谈一下安装及使用统信UOS的感觉
  10. 【转载】iphone 录制屏幕以及音效的混合实现源码分享