问题分类:
1.监督式学习:learning from data with label
classification:离散型数据
regression:连续型数据
2.非监督式学习:learning from data without label
clustering:聚类
线性回归
举例:一元线性回归问题。
最先讲到的是梯度下降算法。
首先设定初始值theta0,thata1.
其次,重复迭代直到收敛{
注意要同时更新theta0,theta1.
} alpha表示学习速率。代表着下降的速度。
这一种方法的最大问题是:如何辨别求解的结果是局部最优解还是全局最优解。所以,初始值,以及学习速率的选择就
很有讲究。
对J求导:
“batch” Gradient Descent:
下降的每步都会用到所有的训练数据。
多元线性回归
n表示featrue的数量。
表示第i组训练资料。
那么第i组训练数据的各个特性值为:
并且,由于:
便于计算,定义:
for any i
总结为:
这时梯度下降算法为:
1. set initial value of vector theta.
2. repeat until convergence{
注意要保持n+1个同时更新。
特征缩放
特征缩放的意义在于:将函数J的等高线图尽量分布均匀并对称,使得迭代次数减少,加快求解。
处理方法有许多,比如mean-normalization。
即,求出特征的平均值,标准差或者是样本的range,进行正态化。Making sure gradient descent is working correctly.
收敛条件:abs(Jn+1 –Jn )<0.001.
选取α的值可以多次尝试,优中选优:
0.001, 0.003 ,0.01 , 0.03 , 0.1 , 0.3 , 1 , 3 , …
Polynomial regression
例如:
Normal Equation
两种方法对比
Gradient Descent | Normal Equation |
Need to choose α | No need to choose α |
Needs many iterations | No need iterations |
Work well when n is large | Need to compute inversed matrix Slow when n is large |
N = 10000 is also OK.
When N is lager,gradient descent is the one to take.
Normal Equation Noinvertibility
可能存在线性相关的向量,
可能数据量不够,m<n,可以删除部分特征或进行regularization。
由梯度下降法推导最小二乘方程
梯度下降法:
两边同时取极限 n->正无穷。则有:
所以,即Normal Equation.