Machine Learning 笔记

梯度算法

首先定义一些符号:

  • m  :训练样本大小
  • x :输入变量
  • y  :输出变量
  • (x,y) :一个样本
  • (X i ,X i )  :表示第i个样本

以房价预测为例, x 0 =size,x 1 =bedrooms  这里size和bedrooms是两个特征量,我们可以用一条直线去拟合:

h(x)=h θ (x)=θ 0 +θ 1 x 0 +θ 2 x 1  

于是,当我们有n个特征的时候:
h(x)=h θ (x)= i=0 n θ i x i =θ T X 

房价 y=h θ (x)  是一个依赖于 θ  的函数,我们的目的就是确定合适的 θ  使得,当给定 x  的时候,我们输出的y更准确。
基于样本有目标函数:
J(θ)=12  i=0 m (h θ (X i )Y i ) 2  

J(θ)  表示m个样本基于预测值和真实值之间的误差的平方,使得这个误差最小的 θ  ,就是我们要求的参数值。那么问题转换为 min θ J(θ) 


搜索算法

  1. 初始化 θ=0   
  2. 更新 θ  的值使得 J(θ)  最小
  3. 判断是否收敛,不收敛执返回行步骤2

对于2中的更新办法:

梯度下降算法

更新 θ  公式:

θ i :=θ i ααα θ i   J(θ) 

其中, α  表示下降速度。
实际上梯度表的是某一参数的变化率,当 αα θ i   J(θ)=1  表示局部 最大,当 αα θ i   J(θ)=0  局部最小,梯度为0。

okay求这个偏导数,先来看只有一组样本的时候:

αα θ i   J(θ)=αα θ i   12 (h θ (x)y) 2 =(h θ (x)y)x i  

当只有一组样本时,
J(θ)  h θ (X i )Y i =h θ (x)y= n i=0 (θ i x i y i )  ,对 θ i   ( 确定某一个参数时)求偏导数等于 x i   于是得到上面的倒数
那么当有m个样本的时候更新公式变为:
θ i :=θ i α j=1 m (h θ (X j )Y j )X j i  

收敛 条件是 ΔJ0 
注意到,更新公式中每次更新一个参数都需要进行求和运算,因此并不适合大量样本。下面提出一个新的算法解决这个问题。

随机梯度下降算法

repeat{
for i to m{
θ i :=θ i α(h θ (x j )y j )x j i  
}
}
当i = 1时,用第一个样本求得 θ 1   ,当i = 2的时候用 θ 1   更新 θ 2   ,此时不需要求和,只是当做只有一个样本来处理
这样做,使得求解快了不少,但是每次求得的路径不是局部最小,而是不断的靠近局部最小解。如果取回归函数的等高线则其表现如下图:

正规方程推导

一些标记和结论:

标记

 θ J(θ)=⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ αJαθ 0  αJαθ n   ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥  n1  
J(θ)  的梯度是一个雅可比矩阵, 于是之前我们得到更行公式可以表示为:
θ:=θα θ J(θ) 


如果记A是一个m*n的矩阵, fA>R,f  A  到实数集的映射函数那么:

 A f(A)=⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢  αfαA 11  αfαA m1    αfαA 1n  αfαA mn   ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥  mn  


结论

  1. 如果 AR nn   ,那么 trA= n i=1 A ii  
  2. trAB=trBA 
  3. trABC=trCAB=trBCA 
  4. 如果 f(A)=trAB  , 那么  A trAB=B T  
  5.  A trABA T C=CAB+C T AB T  

下面是使用以上结论,推导出正规方程的过程:


X=⎡ ⎣ ⎢ ⎢ ⎢ (X 1 ) T (X m ) T  ⎤ ⎦ ⎥ ⎥ ⎥  mn ,X i =⎡ ⎣ ⎢ ⎢ x 1 x n  ⎤ ⎦ ⎥ ⎥  1n  

Xθ=⎡ ⎣ ⎢ ⎢ ⎢ (X 1 ) T θ 1 (X m ) T θ m  ⎤ ⎦ ⎥ ⎥ ⎥  1m =⎡ ⎣ ⎢ ⎢ ⎢ (X 1 ) T θ 1 (X m ) T θ m  ⎤ ⎦ ⎥ ⎥ ⎥  1m =⎡ ⎣ ⎢ ⎢ h θ (X 1 )h θ (X m ) ⎤ ⎦ ⎥ ⎥  1m  



这里由于第1个样本 h θ (X 1 )=θ 0 +θ 1 x 1 ++θ n x n =(X 1 ) T θ  ,一共有m个样本于是得出以上 Xθ 

Y  =⎡ ⎣ ⎢ ⎢ Y (1) Y (m)  ⎤ ⎦ ⎥ ⎥  m1   XθY=⎡ ⎣ ⎢ ⎢ h θ (X 1 )Y 1 h θ (X m )Y m  ⎤ ⎦ ⎥ ⎥  




那么 J(θ)  = 12 (XθY) T (XθY)=12  m i=1 (h(X i )Y i )  ,还记得我们的问题是求满足 min θ J(θ)  θ  , 于是令:
 θ J(θ)=0   

则,  θ 12 (XθY) T (XθY)=12  θ tr(θ T X T Xθθ T X T YY T XθY T Y)                                                

我们一项一项拆开看:

注意到其 X mn ,Y m1 ,θ 1n   那么所有项都是实数

 θ tr(θ T X T Xθ)= θ tr(θ      A E      B θ T       A T  X T X        C                       2,5 )=X T Xθ+X T Xθ 

 θ tr(θ T X T Y)= θ tr(Y T Xθ           )= θ tr(θ      A Y T X        B             3,4 )=X T Y 

 θ tr(Y T Xθ)=X T Y 

Y T Y  θ  无关所以梯度为0

于是

 θ 12 (XθY) T (XθY)=12  θ tr(θ T X T Xθθ T X T YY T XθY T Y)=12 (X T Xθ+X T XθX T YX T Y)=0   

得到正规方程:
X T Xθ=X T Y 

那么,
θ=(X T X) 1 X T Y 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值