机器学习基石---Linear Regression

knitr::opts_chunk$set(echo = TRUE)

  前面都是在讲泛化的问题,现在开始讲算法相关。我之前看李航的书大都是怎么构建损失函数以及如何优化损失函数,也没想过泛化的问题。至于线性回归,统计学里讲的比较取巧,先假定存在线性关系,受误差项影响产生一些波动。书归正传,按照Week9的顺序,权当复习。

符号标记

x=(x0,x1,x2,,xd)T x = ( x 0 , x 1 , x 2 , ⋯ , x d ) T :样本特征,其中 x0 x 0 为常数项,其余为用户特征
y y :目标变量,连续型数值变量
w=(w0,w1,w2,,wd)T w = ( w 0 , w 1 , w 2 , ⋯ , w d ) T :系数向量

线性回归算法

  Hypothesis如下:

h(x)=wTX h ( x ) = w T X

线性回归算法的目标就是找到最合适的 w w ,使得训练集误差( Ein E i n )最小。而衡量误差的方式为:
Ein(h)=1Nn=1N(h(xn)yn)2 E i n ( h ) = 1 N ∑ n = 1 N ( h ( x n ) − y n ) 2

矩阵表示:

这里写图片描述

矩阵 X X 共计N行,每一行代表一个样本,每个样本 d+1 d + 1 个维度。
对于这类线性回归问题,损失函数一般是凸函数。凸函数证明:

fw=2N(XTXwXTy)2fw2=2NXTX ∂ f ∂ w = 2 N ( X T X w − X T y ) ∂ 2 f ∂ w 2 = 2 N X T X

易知Hessian Matrix为半正定,所以损失函数是凸函数。此时只要令一阶导为0,求出对应的 w w 即可。
2N(XTXwXTy)=0XTXw=XTywLIN=(XTX)1XTy 2 N ( X T X w − X T y ) = 0 X T X w = X T y w L I N = ( X T X ) − 1 X T y

其中 (XTX)1XT ( X T X ) − 1 X T 又称伪逆矩阵,记为 X+ X + XTX X T X 的逆矩阵不一定存在,软件总能求出一个替代矩阵。这样我们可以找一个 w w 使得损失函数最小。

泛化问题

  又是比较难的部分,线性回归能保证 EinEout E i n ≈ E o u t 吗?没大看懂,尝试着叙述一下。变换 Ein E i n 个形式:

这里写图片描述

WLIN W L I N 预测时,可以得到预测值 y^=XwLIN=X(XTX)1XTy y ^ = X w L I N = X ( X T X ) − 1 X T y ,称 X(XTX)1XT X ( X T X ) − 1 X T 为Hat Matrix。
而Hat Matrix的物理意义如下:

这里写图片描述

Hat Matrix相当于对 y y 做往 X X 张成的线性空间span投影的操作。那么{I - X{X^ + } {I - X{X^ + } 则是向span垂直方向投影。从几何上讲我们希望找到最短的 yy^ y − y ^ ,显然向量垂直这个线性空间时,满足要求。(三维的时候容易理解,试验设计教材上的比较清楚)。
  考虑noise存在的情况: y=f(X)+noise y = f ( X ) + n o i s e ,此时 Ein E i n 为:

Ein(wLIN)=1NyXX+y2=1N(IXX+)y2=1N(IXX+)f(X)+(IXX+)noise2 E i n ( w L I N ) = 1 N ‖ y − X X + y ‖ 2 = 1 N ‖ ( I − X X + ) y ‖ 2 = 1 N ‖ ( I − X X + ) f ( X ) + ( I − X X + ) n o i s e ‖ 2

因为 f(X) f ( X ) X X 张成的空间上,所以(IXX+)f(X)为0。进一步:

Ein(wLIN)=1N(IXX+)noise2=1Ntrace(IXX+)noise2=1N(N(d+1))noise2 E i n ( w L I N ) = 1 N ‖ ( I − X X + ) n o i s e ‖ 2 = 1 N t r a c e ( I − X X + ) ‖ n o i s e ‖ 2 = 1 N ( N − ( d + 1 ) ) ‖ n o i s e ‖ 2

推导过程并不懂,noise应该是一个矩阵,每个样本都会有一个随机扰动noise存在。Mr林并没有讲的很细致,就平均而言

E¯in=noiselevel(1+d+1N)E¯out=noiselevel(1d+1N) E ¯ i n = n o i s e l e v e l ∗ ( 1 + d + 1 N ) E ¯ o u t = n o i s e l e v e l ∗ ( 1 − d + 1 N )

noise level也不知道什么意思,有的资料上貌似指的是误差项的协方差矩阵。

这里写图片描述
Ein E i n Eout E o u t 都向 σ2 σ 2 (noise level)收敛,他们之间的差异被 2(d+1)N 2 ( d + 1 ) N bound住。所以这时候说明 N N 够大时,EinEout

Summary

  有点怀念NG课程直接面向工程的方式,至少容易接受点。泛化的问题实在是比较难理解,先这样吧。

                         2018-02-05 于杭州

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值