Machine Learning 笔记
来源:互联网 发布:淘宝同城鲜花速递 编辑:程序博客网 时间:2024/05/29 17:46
梯度算法
首先定义一些符号:
m :训练样本大小x :输入变量y :输出变量(x,y) :一个样本(X i ,X i ) :表示第i个样本
以房价预测为例,
于是,当我们有n个特征的时候:
房价
基于样本有目标函数:
搜索算法
- 初始化
θ=0 ⃗ - 更新
θ 的值使得J(θ) 最小 - 判断是否收敛,不收敛执返回行步骤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
收敛 条件是ΔJ≈0
注意到,更新公式中每次更新一个参数都需要进行求和运算,因此并不适合大量样本。下面提出一个新的算法解决这个问题。随机梯度下降算法
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 ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ n∗1 J(θ) 的梯度是一个雅可比矩阵, 于是之前我们得到更行公式可以表示为:θ:=θ−α∇ θ J(θ)
如果记A是一个m*n的矩阵,
f(A)−>R,f 是A 到实数集的映射函数那么:
∇ A f(A)=⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ αfαA 11 ⋮αfαA m1 …⋮… αfαA 1n ⋮αfαA mn ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ m∗n
结论
- 如果
A∈R n∗n ,那么trA=∑ n i=1 A ii trAB=trBA trABC=trCAB=trBCA - 如果
f(A)=trAB , 那么∇ A trAB=B T ∇ A trABA T C=CAB+C T AB T
下面是使用以上结论,推导出正规方程的过程:
这里由于第1个样本
那么
则,
我们一项一项拆开看:
注意到其
∇ θ 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
于是
得到正规方程:
那么,
- 【Machine Learning】笔记:Online Learning
- 【Machine Learning】笔记:Transfer Learning
- stanford machine learning 笔记
- Machine Learning 学习笔记
- Machine Learning 笔记
- Machine Learning笔记
- machine learning 学习笔记
- 【Machine Learning】笔记:SVM
- Machine Learning 课程学习笔记
- 【Machine Learning】SVM学习笔记
- stanford machine learning 笔记 1
- 学习笔记-machine learning foundaton2
- Machine Learning Andrew笔记-Mark
- 【Machine Learning】笔记:Overfitting 问题
- 【Machine Learning】笔记:训练神经网络
- 【Machine Learning】笔记:anomaly detection
- machine learning 学习笔记<一>
- machine learning学习笔记<二>
- 七、适配器模式
- LTE中的HARQ学习(1)——基本概念
- (八) Python函数
- ls命令的简要实现
- PB技巧:DataWindw中批量删除行或恢复行
- Machine Learning 笔记
- IE浏览器兼容问题
- Google Protocol Buffers浅析(四)
- C#.NET里面抽象类和接口有什么区别?
- 在mac 10.10 上安装ruby 和 rails
- Sicily 14173. Administrative Difficulties
- 几种常见的误差评估方法
- 成功安装mysql后,为何服务管理器里找不到MYSQL服务名
- AndroidManifest.xml android:process元素说明