正规方程

引入:

我们知道在多元线性回归里面,可以使用梯度下降算法来进行迭代,进而求出最合适的参数向量。但是梯度下降有诸多不便,所以可以在一些情况下考虑用正规方程代替梯度下降,我的另一篇文章里有用python实现正规方程。

讲讲梯度下降的不便之处:
1、需要选择学习率α,太大的α会导致接近局部最优点的时候步长过大,无法收敛,来回震荡;太小的α会导致收敛速度很慢。

2、需要进行特征缩放,也就是通过

特征−样例集的该特征值均值特征的最大取值−最小取值\frac{特征-样例集的该特征值均值}{特征的最大取值-最小取值} 特征的最大取值−最小取值特征−样例集的该特征值均值​
的方式进行缩放,不然在一些数据上,会很难收敛。想象一下假如现在假设函数里面有两个参数需要预估,那么他的损失函数应该在第三个维度上,如果我们用等高线图来表示,图线会近似于套圈的圆和椭圆的多个组合。那么圆心处就是我们要到达的局部最优点。如果两个特征的范围差距很大,但是他们的系数(也就是我们要估计的参数)范围若是很接近的话,也就是说我们还是认可范围差较大或者均值较大的特征对结果的影响比较大,但是如果通过调整系数范围来压低特征的量纲影响,就会使得图像近似一个椭圆形,这样我们可能会通过长轴步进更新,大大影响迭代效率。

3、需要多次迭代,正规方程可以一步到位。

但是较之正规方程也有优胜之处:那就是求逆运算的复杂度是O(n3),所以在处理特征规模超过10000的时候,还是比较多考虑梯度下降;并且梯度下降也适用于更复杂的一些非线性模型,而正规方程大概率不可以。

推导:

从常理的角度看,我们希望选定的参数能满足如下条件:
hθ(x)=yh_\theta(x)=y hθ​(x)=y
而:
hθ(x)=xθ,其中x是样例条数∗特征数维度的特征矩阵,θ是特征维数∗1的参数向量h_\theta(x)=x\theta,其中x是样例条数*特征数维度的特征矩阵,\theta是特征维数*1的参数向量 hθ​(x)=xθ,其中x是样例条数∗特征数维度的特征矩阵,θ是特征维数∗1的参数向量

所以我们可以通过线性代数知识知道,如果x存在逆矩阵,那么θ=x−1y\theta=x^{-1}yθ=x−1y,但是我们知道x

不一样有逆矩阵,所以我们可以通过和x的转置做运算得到xTxθ=xTyx^Tx\theta=x^TyxTxθ=xTy,因此,θ=(xTx)−1xTy\theta=(x^Tx)^{-1}x^Tyθ=(xTx)−1xTy.

从数学逻辑上看,这个θ的值是希望取到损失函数局部最优的情况。也就是说对损失函数求导,通过损失函数等于0来确定θ的合适取值。

那么

J(θ)=12m∑i=1m(hθ(xi)−yi)2J(\theta)=\frac{1}{2m}\sum^{m}_{i=1}{(h_\theta(x^i)-y^i)^2}J(θ)=2m1​∑i=1m​(hθ​(xi)−yi)2

J(θ)=1m((hθ(x)−y)T∗(hθ(x)−y))\displaystyle {{J(\theta)}}=\frac{1}{m}((h_\theta(x)-y)^T*(h_\theta(x)-y))J(θ)=m1​((hθ​(x)−y)T∗(hθ​(x)−y))

解释一下,首先损失函数前面的常数项系数并没有定死,因为我们从梯度下降的时候也可以看到,他无伤大雅,至于前面有个二分之一的系数,也是为了求导的时候平方项系数下来刚好能抵消掉。至于前面的m分之一,是因为这就是方差的定义。

xTx=∣x∣2x^Tx=|x|^2xTx=∣x∣2这个应该不用多说,线性代数知识想想就好。

dJ(θ)dθ=xT(xθ−y)=0\displaystyle \frac {dJ(\theta)}{d\theta}=x^T(x\theta-y)=0dθdJ(θ)​=xT(xθ−y)=0

同理也可得上面的结论θ=(xTx)−1xTy\theta=(x^Tx)^{-1}x^Tyθ=(xTx)−1xTy.

如果XTXX^TXXTX也不可逆怎么办?

这里讲一个很有趣的结论,A+kE,E是单位矩阵,是一定可逆的。我们只要让k取的很小,对原矩阵的干扰就会很小,但必须k必须大于0.这样做是有效的,你会在学习正则化的时候看到类似的内容

上面我们凑出XTXX^TXXTX是为了满足可逆性的第一个必要条件:也就是最起码这个矩阵是一个方阵。但是在线性代数里面还有许多充分必要条件,比如矩阵必须满秩,也就是说通过初等行变换不能化简出一行元素全为0的矩阵(或者说取行列式的值不可以为0)。

那如果碰到XTXX^TXXTX也不可逆的情况应该怎么办?

下面引入一个概念:伪逆

我们知道逆矩阵需要满足A−1A=E,也就有AA−1A=EA=AA^{-1}A=E,也就有AA^{-1}A=EA=AA−1A=E,也就有AA−1A=EA=A

如果存在一个矩阵X,他满足AXA=A,XAX=XAXA=A,XAX=XAXA=A,XAX=X,此时我们称X为A的伪逆矩阵。

下面需要引入很多概念:

酉空间(一种特殊的复线性空间):指以一类埃尔米特函数作点积的复线性空间。

共轭转置:设矩阵A中的任一元素属于复数域C,A是m*n阶矩阵,用A‾\overline{A}A表示以A的元素的共轭复数为元素组成的矩阵,再对A‾\overline{A}A做转置,得到AH,那么我们就把AH称作A的共轭转置。实矩阵的共轭转置就是转置

复数矩阵:元素中含有复数的矩阵

酉矩阵:若有一复数矩阵U,U是方阵,满足U+U=UU+=E,U+为U的共轭转置U^+U=UU^+=E,U^+为U的共轭转置U+U=UU+=E,U+为U的共轭转置,则称U为酉矩阵。也就是说,矩阵U是酉矩阵当且仅当他的共轭转置为他的逆矩阵。

埃尔米特函数:f(−x1,−x2)=f(x1,x2)‾f(-x_1,-x_2)=\overline{f(x_1,x_2)}f(−x1​,−x2​)=f(x1​,x2​)​,横线表示复共轭(实部相同,虚部相反)。

半正定矩阵:如果二次型XTAX≥0,X是任意非0实向量X^TAX≥0,X是任意非0实向量XTAX≥0,X是任意非0实向量,那么称A为半正定矩阵。

正交:垂直的推广,若两向量点积是0,则称之为正交。

正交矩阵:如果AAT=E或者ATA=EAA^T=E或者A^TA=EAAT=E或者ATA=E,那么A就是正交矩阵,且A具有以下特点:AT的各行是单位向量且两两正交,AT的各列是单位向量且两两正交。

奇异值:设A为m*n阶矩阵,q=min(m,n)(特征值是方阵才有的,奇异值是矩阵就有),AHAA^HAAHA的q个特征值的算术平方根叫做A的奇异值。

奇异值分解:假设M是一个m×n阶矩阵,其中的元素全部属于域 K,也就是实数域或复数域。如此则存在一个分解使得M=UΣVHM=U\Sigma V^HM=UΣVH,其中U是m*m阶酉矩阵;Σ是半正定m×n阶对角矩阵;而VH,即V的共轭转置,是n×n阶酉矩阵。(正交矩阵是一种特殊的酉矩阵)这样的分解就称作M的奇异值分解。Σ对角线上的元素Σi,其中Σi即为M的奇异值。

常见的做法是为了奇异值由大而小排列。如此Σ便能由M唯一确定了。(虽然U和V仍然不能确定)

零空间:是一个向量空间,指的是{x∣Ax=0}\{x|Ax=0\}{x∣Ax=0}的x集合,存在零空间的矩阵就不可逆,因为存在至少一组非0解可以使得A的各列的线性组合是相关的,也就不满秩了。(所以列满秩矩阵的零空间肯定只有零向量,但是可以有左逆矩阵(因为这个跟行有关))

左零空间:{x∣ATx=0}\{x|A^Tx=0\}{x∣ATx=0},行满秩矩阵的左零空间只有零向量,有右逆矩阵。

对于秩亏损的矩阵来说,两个空间都存在,左右逆都不存在。

行空间:若A是一m*n向量,由A的行向量张成(线性组合)的R1∗nR^{1*n}R1∗n

的子空间称为的行空间,比如:
A=[100010]A=\left[\begin{matrix}1&0&0\\0&1&0\end{matrix}\right] A=[10​01​00​]
A的行空间是所有如下形式的三元组
α(1,0,0)+β(0,1,0)=(α,β,0)\alpha(1,0,0)+\beta(0,1,0)=(\alpha,\beta,0) α(1,0,0)+β(0,1,0)=(α,β,0)
列空间类似。

伪逆矩阵求法

A 为m*n矩阵,r代表矩阵的秩:

若矩阵A是方阵,且|A|!=0,则存在AA-1=E;

若A不是方阵,或者|A|=0,那么只能求A的伪逆,所谓伪逆是通过SVD(奇异值分解)计算出来的;

pinv(A)表示A是伪逆:

超定方程组:方程式个数多于未知量个数,在机器学习里大概就是样例数多于特征数)

非齐次方程组( Ax=β,A是m∗n阶矩阵Ax = \beta,A是m*n阶矩阵Ax=β,A是m∗n阶矩阵 )解的个数:1、无解,r(A)<r(A∣β)r(A)<r(A|\beta)r(A)<r(A∣β)这个无解的原因非常直观,因为增广了β\betaβ向量之后,矩阵的秩增加了,说明出现了一行0xi1+...0xij+...0xin=βi0x_{i1}+...0x_{ij}+...0x_{in}=\beta_i0xi1​+...0xij​+...0xin​=βi​的情况,显然是无解的;2、有唯一解,r(A)=r(A∣β)=nr(A)=r(A|\beta)=nr(A)=r(A∣β)=n,这种情况就是说满秩的且增广之后不影响秩的情况。3、无穷多组解,r(A)=r(A∣β)<nr(A)=r(A|\beta)<nr(A)=r(A∣β)<n

如果A列满秩,列向量线性无关,(如果列向量有关的话,就存在一些特征的系数全是0,也就是说根本不对输出产生影响),r=n,Ax=b为超定方程组,存在0个或1个解,那么pinv(A)=(ATA)−1ATpinv(A)=(A^TA)^{-1}A^Tpinv(A)=(ATA)−1AT,因为(ATA)−1ATA=E(A^TA)^{-1}A^TA=E(ATA)−1ATA=E,因此也称为左逆;

如果A行满秩,行向量线性无关(每条smaple都是有效的),Ax=b为欠定方程组(方程组个数少于未知量个数),存在0个或无穷个解(因为方程数少于未知量数目),那么pinv(A)=AT(AAT)−1pinv(A)=A^T(AA^T)^{-1}pinv(A)=AT(AAT)−1(其实就是上面的转置),因为AAT(AAT)−1=EAA^T(AA^T)^{-1}=EAAT(AAT)−1=E,因此也称为右逆;

如果秩亏损(即rank(A)<m且rank(A)<n),那么只好先做奇异值分解。

先求得AAHAA^HAAH的特征值,得到对应的奇异值和奇异值矩阵Σ\SigmaΣ(奇异值从小到大排布的对角矩阵),接下来根据特征方程求AAHAA^HAAH的特征向量,把特征向量标准化后,放在一个矩阵中,就得到U.

用同样的方法求AHAA^HAAHA的特征值和特征向量,进而求得V

你可以验证一下A=UΣVHA=U\Sigma V^HA=UΣVH

那么回到一开始的伪逆定义,就得到了pinv(A)

pinv(A)=VΣ+UH,这里的Σ+是Σ矩阵所有元素的倒数的组合pinv(A)=V\Sigma^+U^H ,这里的\Sigma^+是\Sigma矩阵所有元素的倒数的组合pinv(A)=VΣ+UH,这里的Σ+是Σ矩阵所有元素的倒数的组合

https://www.cnblogs.com/bigmonkey/p/12070331.html
顺带一提,这个链接下有这个做法的例题,和伪逆的一些更数学角度的解释,不过错漏挺多,比如他的V忘了标准化,再比如他对于逆变换空间那一段,好像把行列全弄反了,x如果是行向量,怎么能和A做变换映射到列向量Ax上(因为A是mxn的x如果是1x?维的向量甚至不能相乘)…但是看看无妨。

正规方程详解以及矩阵的伪逆相关推荐

  1. 使用SVD求取矩阵的伪逆

    ➤01 矩阵的SVD分解 对于矩阵A∈Rn×mA \in R_{n \times m}A∈Rn×m​,可以通过奇异值分解(Singular Vector Decomposite)分解成如下形式:A=U ...

  2. 机器人学笔记(3)矩阵的伪逆

    机器人学笔记(3)矩阵的伪逆 左逆矩阵与右逆矩阵 对于机器人而言,求解雅可比的矩阵可以通过机器人各个关节的速度求得末端的速度与角速度,而求解逆运动学时,经常会出现已知末端机器人末端速度,求机器人各个关 ...

  3. 通过FPGA实现矩阵的伪逆pinv计算

    1.问题描述: 首先对伪逆pinv进行推导,转换为逆inv的过程 2.部分程序: `timescale 1ns / 1ps // // Company:  // Engineer:  //  // C ...

  4. c语言矩阵求伪逆算法pinv,pinv--求矩阵的伪逆矩阵

    pinv--求矩阵的伪逆矩阵 [功能简介]用于求矩阵的伪逆矩阵. [语法格式] 1.B=pinv(A) 函数返回矩阵A的伪逆矩阵.如果矩阵A是可逆(非奇异)的,那么pinv(A)与inv(A)的结果是 ...

  5. 三维空间坐标的旋转算法详解_矩阵描述三维空间旋转

    本节简单介绍用矩阵来描述旋转.在二维平面上,复数无疑是描述旋转的最佳工具:然而推广到三维空间中,却要动用到"四元数"了.为了证明四元数的相关结论,我们需要三维旋转的矩阵描述.最一般 ...

  6. acdsee扫描没有图像_详解CT图像常见伪影成因及解决方法

    CT 图像伪影 (artifact) 是指重建图像上与实际解剖结构不相符的密度异常变化.CT 图像比传统平扫X线更容易出现伪影,这是因为 CT 图像是由成千上万独立的原始测量数据重建而得,而计算机重建 ...

  7. 通过FPGA计算矩阵的伪逆pinv

    1.问题描述: 一个12*4的矩阵. 2.部分程序: 然后我们要定义个函数,用来计算复数转置的. 然后是复数乘法器, 这个过程中,我们暂时还没截位,所以计算结果会和matlab一样,后面的会有大量的位 ...

  8. (详解)矩阵快速幂详解与常见转移矩阵的构造

    目录 转移矩阵求解套路 常见转移矩阵1-斐波那契矩阵 承接套路 常见转移矩阵2-类斐波那契数列 常见转移矩阵3-幂常数 前缀和 具体DP问题 ----------------------------- ...

  9. 矩阵快速幂详解--用矩阵幂解决的多种问题

    最经典的题目 以及洛谷一大堆相似题斐波那契升级版,广义斐波那契等等,都是相关的题目.一般而言我们求解斐波那契无非是不断地向前迭代,但是这样的效率实在是太低了.对于nnn的规模如此之大的题目应该如何求解 ...

最新文章

  1. jvm误区--动态对象年龄判定
  2. 分布式任务队列 Celery — 实践
  3. C#串口通信—传输文件测试
  4. 全球及中国润滑油市场产销规模及营销竞争分析报告2021-2027年
  5. 使用java解析XML文件的步骤
  6. 32g内存 android开发,16G走开 我要32G内存的安卓手机
  7. 【机器学习】一般线性回归
  8. deepin安装windows虚拟机_Deepin Linux V20系统通过安装wine实现运行windows程序
  9. matplotlib 散点图_python之matplotlib 折线图和散点图
  10. seo模拟点击软件_百度快排软件原理分析
  11. STP的收敛及高级特性
  12. Oracle 11g ora 15018,OracleASM错误之--ORA-15031、ORA-15014
  13. Vue人资中台--打包上线
  14. java微信小程序支付-回调(Jsapi-APIv3)
  15. Linux-京东字节百度提前批,一面二面都被问到了awk——实例篇(4)ip地址相关
  16. 归并排序(默认2路归并)
  17. docker 安装node
  18. C语言中 *x++ (*x)++ ++*x *++x的区别
  19. Google(谷歌)拼音输入法发布
  20. 修改jenkins的镜像地址

热门文章

  1. Spring Boot电商项目52:订单模块一:订单模块介绍;(模块介绍;效果演示;数据库设计;9个接口介绍;)
  2. 邓大人说,米兔要摸着石头过河
  3. latex 插入图片
  4. 【MySQL】MySQL中的逻辑运算符,位运算符和运算符的优先级
  5. 2020年暑期小程序项目总结(二)
  6. 智慧城市建设解决方案,智慧公安系统
  7. SEW变频器的IPOS模式是什么
  8. 方差、均方差、中位数的意义
  9. Review-Java多线程
  10. 德源希望教育救助中心第十所希望小学落户河北省涉县