问题分类:

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.