Machine Learning 笔记

来源:互联网 发布:淘宝同城鲜花速递 编辑:程序博客网 时间:2024/05/29 17:46

梯度算法

首先定义一些符号:

  • 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
原创粉丝点击