第二课 监督学习应用-梯度下降
课程概况:
线性回归、梯度下降、正规方程组
概述
汽车的自动驾驶:人类司机会为汽车提供一系列正确的行驶方向,之后尝试更多正确的行驶方向,以确保汽车始终行驶在路上,就是汽车的任务了。-----监督学习中的回归问题:汽车尝试预测表示行驶方向的连续变量的值。
举例:房价预测
房价由多个因素,比如房子面积,卧室的数量等因素决定
监督学习的任务:学习房价与各因素之间的关系
引入符号:
m 表示训练样本的数据,也就是数据的行数 #training examples
x 表示输入变量 #input variables 或 feature(特征)
y 表示输出变量 #output variables 或 target variable (目标变量)
(x y) 表示一个样本
第i个样本 训练样本列表中的第i行
n 表示特征的数目
学习算法的参数,是学习算法的任务
监督学习的过程
首先找到一个训练集合(m个样本),提供给学习算法,得到一个输出函数h,称之为假设(hypothesis),这个假设可以对新数据x(不在训练集中的)得到一个新的估计y,即假设h的作用是将输入x映射到输出y。
解决房价预测问题
1.对假设进行线性表示
可将式子改写为
2.尝试让学习算法的预测值在训练数据上尽可能准确
我们的目标即求解参数,选取的参数能使预测值和实际值的方差最小
目标函数:
其中表示每个样本经过学习算法得到的预测值。
代表每个样本的真实值
目标: ,求
的最小值
3.求最小值的算法
3.1 搜索算法
基本思想:给定参数向量一个初始值(例如
),不断改变参数向量的值,使得
不断减小,直到
收敛为最小值
3.1.1 批梯度下降算法
其中梯度下降算法(Gradient Descent)是经典的一种搜索算法,其中心思想是寻找下降最大的梯度改变,从而最快收敛至最小值,就像一个人站在山上,环顾四周,寻找最快的下山方式。
的图像表示如图所示:
一开始初始化一个向量作为初始值,假设该三维图为一个三维地表。梯度下降的方法是,你环视一周,寻找下降最快的路径,即为梯度的方向,每次下降一小步,再环视四周,继续下降,以此类推。结果到达一个局部最小值,如下图:
特点:梯度下降的结果依赖于参数的初始值,初始值不同,可能会导致不同的结果。
的更新方程为
每一次将减去
对
求偏导的结果,即沿最陡峭的“山坡”下降
更新方程的推导:(考虑只有一个训练样本)
代入更新方程中:
:学习速度,即决定你下山时每一步迈多大。设的过小,收敛时间长,设的过大,可能会超过最小值
考虑m个样本数量的情况--批梯度下降算法(batch gradient descent)
算法流程:
重复更新的值直到算法收敛
检测是否收敛的方法:
1) 检测两次迭代的改变量,若不再变化,则判定收敛
2) 更常用的方法:检验,若不再变化,判定收敛
该算法的缺点是:每一次更新的时候都需要遍历整个训练样本,对m个训练样本进行求和,所以该算法只适用于小样本。
如果遇到样本数量大的时候,我们将使用下面这个算法
3.1.2随机梯度下降算法
也称为增量梯度下降算法
算法流程如下:
Repeat 直到算法收敛{
for j=1 to m {
(更新所有的
)
}
}
该算法的特点在于:每次更新只使用一个样本数据,适用于样本数量比较大的情况下。但是该算法不会精确的收敛到全局的最小值。
3.2 正规方程组
不再需要迭代的求
定义对函数求导数的符号:
一些关于迹运算符和导数的定理:
如果A是方阵,那么
定义矩阵X,称为设计矩阵,包含了训练集中所有输入的矩阵,第i行为第i组输入数据,即:
那么
将真实值定义为
那么
对目标函数求偏导: