吴恩达《机器学习》一元变量的线性回归

来源:互联网 发布:淘宝一键装修免费模板 编辑:程序博客网 时间:2024/05/17 03:04

  一元变量的线性回归是指通过单输入变量预测单输出结果,通过学习梯度下降算法改善假设函数。输入变量通过假设函数求得输出值。
这里写图片描述
  样本集是指样本的输入和输出值的集合,学习算法这里使用的是梯度下降算法,假设函数是指假设出来的输入和输出之间的关系。x是指已知的输入变量,y是指所求的输出变量。

1假设函数

  一元线性回归的假设函数的一般形式是hθx=θ0+θ1x,一般情况下,hθx可以简写为hx
  但假设函数的初始化是由样本集猜想而来,并不知道初始化的假设函数是否准确。而且假设函数中参数θ0θ1的值会影响梯度下降的结果,因为梯度下降算法有可能收敛扎起局部的最小值。而函数局部最小值,而不一定是全局最小值。

2 成本函数

  成本函数是用来衡量假设函数的准确性的函数。成本函数的值越小,说明假设函数越准确。而我们的目标就是要提高假设函数的精度,故成本函数又称为目标函数。
Jθ0θ1=1/2mm1(hθ(xi)yi)2
  其中hθ(xi)xi根据假设函数计算的预测值,yi是样本的实际值。m是样本的个数,成本函数亦被称之为平均均方误差,除以2是为了方便后面梯度下降算法的计算。

3 梯度下降算法

  成本函数是来衡量假设函数的准确性,那提高假设函数的准确性则要靠梯度下降算法。改变假设函数,其实是改变θ0θ1的值,通过改变θ的值,从而使成本函数Jθ0θ1最小。所以这里的自变量是θ0θ1,因变量是Jθ0θ1
  实际上这是一个求极小值的过程,实际上若是目标函数是可以求导的情况下,参数较少的情况下,个人觉得是可以通过对每个自变量求偏导数,通过让偏导数为零来求得目标函数最小化时的自变量。
  但在不可求导或是参数太多以至于求值很困难的情况下,使用梯度下降算法。该算法目的是找出梯度下降的方向,是自变量沿着梯度逐步减小,最终收敛到局部最小值。

repeat until convergence:
θjθjα/(θj)J(θ0θ1)
θjθjα1/mm1((hθ(xi)yi)xij)
for j = 0 and j = 1
注意:θ0θ1的值是同步改变的

  /(θj)J(θ0θ1)是自变量的偏导数,即自变量在该点的斜率,α是学习速度,为正。表明以多大的幅度来收敛,若幅度太小,收敛步数增加,若幅度太大有可能越过收敛点导致收敛困难。α/(θj)J(θ0θ1)即为斜率乘以幅度得出下降的高度,一般情况下α不变,但是偏导数会随着收敛而逐步变小,故下降的高度会随着迭代次数而减小,而这也是该算法的优点之一。

0 0
原创粉丝点击