2.1模型描述
①举例
监督学习中,我们有一个数据集(训练集),算法从数据集中得到相应的正确答案。本例中训练集就是关于房价的数据集,我们的工作就是从这个数据中预测出正确的房价。
②符号表示(定义)
m:表示训练样本的数量
x:表示输入变量或特征
y:表示输出变量(预测的内容)
(x,y):一个训练样本
(x(i) ,y(i)):第i个训练样本
h(x):由x到y的函数(假设函数)
2.2代价函数(平方误差函数)
假设函数:h
θ
\theta
θ(x)=
θ
\theta
θ0+
θ
\theta
θ1x
我们所要做的就是确定
θ
\theta
θ0和
θ
\theta
θ1的值:
∑
i
=
1
m
\sum_{i=1}^m
∑i=1m(h
θ
\theta
θ(x(i))-y(i))2这个式子最小时的
θ
\theta
θ0和
θ
\theta
θ1的值
也可以是使得J(
θ
\theta
θ0,
θ
\theta
θ1)=
1
2
m
\frac{1}{2m}
2m1
∑
i
=
1
m
\sum_{i=1}^m
∑i=1m(h
θ
\theta
θ(x(i))-y(i))2最小时的
θ
\theta
θ0和
θ
\theta
θ1的值
2.3代价函数(1)
为了简化运算,我们首先假设
θ
\theta
θ0为0,只考虑
θ
\theta
θ1:
这里我们看到当
θ
\theta
θ1取1时,J(
θ
\theta
θ1)最小。(J(
θ
\theta
θ1)曲线是关于x=1对称的)
2.4代价函数(2)
我们同时考虑:
θ
\theta
θ1和
θ
\theta
θ0
右图是等价线,同一条线上的J(
θ
\theta
θ0,
θ
\theta
θ1)相等( J(
θ
\theta
θ0,
θ
\theta
θ1)图形是三维空间的对称碗状 );离中心越近J(
θ
\theta
θ0,
θ
\theta
θ1)越小。
2.5梯度下降算法
梯度下降算法步骤:
①设定
θ
\theta
θ0,
θ
\theta
θ1的初始值,一般均设为0
②改变
θ
\theta
θ0,
θ
\theta
θ1的值来使得J(
θ
\theta
θ0,
θ
\theta
θ1)的值变得越来越小,直到取得最小值或者局部最小值。
算法实现
a:其中
α
\alpha
α表示学习率,用来控制梯度下降时我们迈出多大的步子;
b:必须同时更新
θ
\theta
θ0,
θ
\theta
θ1
如下:
下图就是不同时更新的步骤:
三维空间中画出梯度下降的过程:
不同的起点(也就是不同的初始值),会到达不同的局部最小值。
2.6梯度下降算法总结
只考虑
θ
\theta
θ1(
θ
\theta
θ0赋值为0),两边都会往中间最低点靠近。
学习效率
α
\alpha
α的大小的影响:
①太小,梯度下降太慢
②太大,无法到达局部最小值,甚至会渐渐偏离最小值
总结规律:
①如果一开始就在局部最小值点,那么会原地不动
②梯度下降会越来越缓慢,因为导数越来越小(越来越靠近最小值点,最小值点导数为0)
2.7线性回归的梯度下降
梯度下降算法和线性回归模型
算法步骤:
由于线性回归模型的J(
θ
\theta
θ0,
θ
\theta
θ1)是个碗状,所以线性回归得到的一定是全局最小值。(一般情况下只能得到局部最小值)