大家的人工智能——正规方程

在《大家的人工智能——线性回归》中,我们介绍了如何找到一条直线来拟合训练数据,下面把之前的一元线性回归扩展到多元线性回归:
y = θ 0 + θ 1 x 1 + θ 2 x 2 + ⋅ ⋅ ⋅ + θ n x n y = \theta_0 + \theta_1x_1 + \theta_2x_2 + ··· + \theta_nx_n y=θ0+θ1x1+θ2x2++θnxn

其中θ0对应的是一元线性回归中的那个b,我们再把上面的方程改写一下:
y = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + ⋅ ⋅ ⋅ + θ n x n y = \theta_0x_0 + \theta_1x_1 + \theta_2x_2 + ··· + \theta_nx_n y=θ0x0+θ1x1+θ2x2++θnxn
其中x0=1。因此可以把上面的再改写成矩阵形式:
Y = θ T X Y = \theta^TX Y=θTX
在之前的线性回归中我们说到通过梯度下降的方式,最小化代价函数而找到最优的一组参数最终得到一条直线。聪明的小伙伴很可能会想到,既然是最小化代价函数的值,为什么不用求导的方式得到最佳的θ值呢?

完全是可以的,现在我们看看上面我们改写的那个矩阵形式的公式,我们现在已经知道y和X的值了,做一下简单的求导就能求出θ:
θ = ( X T X ) − 1 X T Y \theta = (X^TX)^{-1}X^TY θ=(XTX)1XTY

这样把训练数据代入就能求出θ从而得到拟合数据的一个模型。那么它和梯度下降有什么不同呢,为什么几乎所有地方都在用梯度下降,而正规方程比较少见呢。我们来看看它们两者之间的特点就明白了:

梯度下降:

  • 需要选取学习率α
  • 需要很多次迭代来得到最优的θ
  • 即使训练数据庞大也有良好的性能

正规方程:

  • 不需要选取学习率α
  • 不需要迭代
  • 需要计算 ( X T X ) − 1 (X^TX)^{-1} (XTX)1,时间复杂度为 O ( n 3 ) O(n^3) O(n3)
  • 如果训练数据规模庞大,速度会很慢

很明显,正规方程在数据量大的时候性能不够好,而在机器学习、深度学习的任务中,数据有时候会非常庞大,因此将梯度下降作为优化方式。

题外话

现在我们来看看那个正规方程是如何导出来的,首先:
θ = [ θ 0 , θ 1 , ⋅ ⋅ ⋅ , θ n ] T \theta = [\theta_0, \theta_1,···,\theta_n]^T θ=[θ0,θ1,,θn]T

Y = [ y ( 1 ) , y ( 2 ) , ⋅ ⋅ ⋅ , y m ] T Y = [y^{(1)},y^{(2)},···,y^{m}]^T Y=[y(1),y(2),,ym]T
代价函数:
J ( θ 0 , θ 1 , ⋅ ⋅ ⋅ , θ n ) = 1 2 m ( X θ − Y ) T ( X θ − Y ) = 1 2 m ( θ T X T X θ − θ T X T Y − Y T X θ + Y T Y ) J(\theta_0, \theta_1,···,\theta_n) = \frac{1}{2m}(X\theta-Y)^T(X\theta-Y) =\frac{1}{2m}(\theta^TX^TX\theta-\theta^TX^TY-Y^TX\theta+Y^TY) J(θ0,θ1,,θn)=2m1(XθY)T(XθY)=2m1(θTXTXθθTXTYYTXθ+YTY)
因此要最小化上面代价函数,这里给出两个矩阵的求导公式:
∂ A B ∂ B = A T \frac{\partial{AB}}{\partial{B}} = A^T BAB=AT
∂ X T A X ∂ X = 2 A X \frac{\partial{X^TAX}}{\partial{X}} = 2AX XXTAX=2AX

因此:
∂ J ( θ ) ∂ θ = 1 2 m ( 2 X T X θ − 2 X T Y ) \frac{\partial{J(\theta)}}{\partial{\theta}} = \frac{1}{2m}(2X^TX\theta - 2X^TY) θJ(θ)=2m1(2XTXθ2XTY)
令其等于零:
1 2 m ( 2 X T X θ − 2 X T Y ) = 0 \frac{1}{2m}(2X^TX\theta - 2X^TY) = 0 2m1(2XTXθ2XTY)=0
得到:
θ = ( X T X ) − 1 X T Y \theta = (X^TX)^{-1}X^TY θ=(XTX)1XTY
欢迎爱好人工智能的小伙伴关注公众号:机器工匠,不定时发布一些关于人工智能的技术、资讯文章,更有面向初学者的系列文章。
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值