机器学习-线性回归原理

本文主要介绍用梯度下降求线性回归最优解的数学细节

线性回归

Y = [ y 1 y 2 ⋮ y m ] Y = \left[\begin{matrix} y_1 \\ y_2 \\ \vdots \\y_m \end{matrix}\right] Y=y1y2ym X = [ x 1 1 x 2 1 ⋮ x m 1 ] X = \left[\begin{matrix}x_1&1\\x_2&1\\ \vdots \\ x_m &1 \end{matrix}\right] X=x1x2xm111 w = [ w 1 w 2 ⋮ w n b ] w=\left[\begin{matrix}w_1\\w_2\\\vdots\\w_n\\b\end{matrix}\right] w=w1w2wnb x i ∈ R n x_i\in R^n xiRn
Y ^ = X w \hat Y = Xw Y^=Xw

objective function:

J ( w ) = 1 2 m ( Y − Y ^ ) T ( Y − Y ^ ) J(w)=\frac{1}{2m}(Y-\hat Y)^T(Y-\hat Y) J(w)=2m1(YY^)T(YY^)

gradient of objective function:

根据标量对向量求导公式:

( ∂ u T v ∂ x = ∂ u ∂ x v + ∂ v ∂ x u ) (\frac{\partial u^Tv}{\partial x}=\frac{\partial u}{\partial x}v+\frac{\partial v}{\partial x}u) (xuTv=xuv+xvu)

∂ J ( w ) ∂ w = 1 2 m [ ∂ ( Y − X w ) ∂ w ( Y − X w ) + ∂ ( Y − X w ) T ∂ w ( Y − X w ) T ] = − 1 m X T ( Y − X w ) \frac{\partial J(w)}{\partial w}=\frac{1}{2m}[\frac{\partial (Y-Xw)}{\partial w}(Y-Xw)+\frac{\partial (Y-Xw)^T}{\partial w}(Y-Xw)^T]=-\frac{1}{m}X^T(Y-Xw) wJ(w)=2m1[w(YXw)(YXw)+w(YXw)T(YXw)T]=m1XT(YXw)

gradient descent:

w = w − η ∂ J ( w ) ∂ w = w + η 1 m X T ( Y − X w ) w=w-\eta \frac{\partial J(w)}{\partial w}=w+\eta\frac{1}{m}X^T(Y-Xw) w=wηwJ(w)=w+ηm1XT(YXw)

numpy实现

def compute_square_loss(X, y, theta):

    n_instance, n_feature = X.shape
    loss = 1 / (2*n_instance) * (y - X.dot(theta.T)).dot((y - X.dot(theta.T)).T)

    return loss

def compute_square_loss_gradient(X, y, theta):

    n_instance, n_feature = X.shape
    return -1/n_instance * X.T.dot((y - X.dot(theta.T)).T)

如果考虑加上正则化项,当为Ridge Regression时,
(考虑了加上bias一起正则化)

objective function:

J ( w ) = 1 2 m ( Y − Y ^ ) T ( Y − Y ^ ) + λ w T w J(w)=\frac{1}{2m}(Y-\hat Y)^T(Y-\hat Y) + \lambda w^Tw J(w)=2m1(YY^)T(YY^)+λwTw

gradient of objective function:

∂ J ( w ) ∂ w = 1 2 m [ ∂ ( Y − X w ) ∂ w ( Y − X w ) + ∂ ( Y − X w ) T ∂ w ( Y − X w ) T ] + 2 λ w = − 1 m X T ( Y − X w ) + 2 λ w \frac{\partial J(w)}{\partial w}=\frac{1}{2m}[\frac{\partial (Y-Xw)}{\partial w}(Y-Xw)+\frac{\partial (Y-Xw)^T}{\partial w}(Y-Xw)^T] + 2\lambda w=-\frac{1}{m}X^T(Y-Xw)+2\lambda w wJ(w)=2m1[w(YXw)(YXw)+w(YXw)T(YXw)T]+2λw=m1XT(YXw)+2λw

gradient descent:

w = w − η ∂ J ( w ) ∂ w = w + η ( 1 m X T ( Y − X w ) − 2 λ w ) w=w-\eta \frac{\partial J(w)}{\partial w}=w+\eta(\frac{1}{m}X^T(Y-Xw)-2\lambda w) w=wηwJ(w)=w+η(m1XT(YXw)2λw)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值