模型描述
我们知道机器学习可以分为监督学习和无监督学习,简单来讲监督学习就是每个样本都有正确的答案,而无监督学习没有。
监督学习又包括了回归问题和分类问题,回归问题就是预测一个具体数值的输出,分类问题就是预测离散值的输出
线性回归解决的是最小化问题,接下来我们要学的代价函数和梯度下降函数就为我们提供的是我们要最小化什么以及如何最小化。
代价函数 cost function
线性回归是要预测一个具体值的输出,所以首先我们要有一个输出预测结果的假设函数:
h θ ( x ) = θ 0 + θ 1 x h_θ(x)=θ_0+θ_1x hθ(x)=θ0+θ1x
上式中有两个参数
θ
0
θ_0
θ0和
θ
1
θ_1
θ1,我们要做的就是确定这两个参数的值。
我们都知道监督学习中每个样本都有正确的答案,我们的假设函数
h
θ
(
x
)
h_θ(x)
hθ(x)也会有一个预测值,那么为了使我们预测的结果接近真实值,也就是找到能使预测值和实际值差的平方误差和的1/2m最小的θ0和θ1的值,这样就得到了所谓的代价函数:
J
(
θ
0
,
θ
1
)
=
1
2
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
J(θ_0,θ_1)=\frac{1}{2m}\sum_{i=1}^{m}(h_θ(x^{(i)})-y^{(i)})^2
J(θ0,θ1)=2m1∑i=1m(hθ(x(i))−y(i))2
对于大多数的线性回归问题都用的是代价函数
梯度下降
我们的目标是使代价函数最小,梯度下降法就可以将代价函数J最小化。
下面就是梯度下降算法的定义
就是先随便用一个数初始化
θ
0
θ_0
θ0和
θ
1
θ_1
θ1,然后一直改变
θ
0
θ_0
θ0和
θ
1
θ_1
θ1的值直到收敛,改变的方法如下图:
其中α学习率表示用来控制梯度下降时我们迈出多大的步子,α值大梯度下降就很迅速
梯度下降要对θ0和θ1进行同步更新,即对θ0和θ1都更新完了以后再进行赋值,不能先计算出θ0的值就用这个新的值算θ1
如果已经处于一个局部最优点,下一步梯度下降将不会改变,因为局部最优点的导数为0
当我们接近局部最低点时,导数值会变得越来越小,梯度下降将会采用较小的幅度
线性回归的梯度下降
把线性回归的代价函数代入我们就得到了线性回归的梯度下降
线性回归的代价函数总是下图这样的弓形函数,也叫凸函数,它没有局部最优解,只有一个全局最优
通过右边的代价函数J慢慢找到全局最优解,也就得到了拟合好数据的假设函数,然后就可以用这个假设函数做预测了
上述梯度下降算法为batch梯度下降算法,也就是每一步梯度下降都用了整个训练集的样本,也就是在梯度下降计算偏导数的时候计算的是m个训练样本的总和。
关于梯度下降更详细的东西在我之前的笔记里:
https://blog.csdn.net/zxfhahaha/article/details/81385130