2 单变量线性回归

2.1 模型描述(Model Representation)

2.1.1 模型常用表示符号

一般情况下,模型算法的变量表示如下:

  • m:表示训练样本的数量;
  • x:表示输入参数,或者称为特征;
  • y:表示输出变量,即预测的目标变量;
  • (x,y):表示一个训练样本;
  • h:表示一个输出函数,是x->y的映射函数,称为假设函数,也是用来预测的函数。

单变量线性回归计算公式为:

在坐标系中绘制出来的图形如下图所示:

2 单变量线性回归_第1张图片

2.2 代价函数(Cost Function)

成本函数(Cost Function,又称为代价函数、平方误差函数、平方误差代价函数)要做的就是对J(theta0,theta1)求最小值。,计算公式为:

目标为:

2.3 代价函数(一)(Cost Function - Intuition 2)

本节课中,为了便于更好的理解成本函数,将假设函数中的常量假设为0,即经过原点的假设函数,坐标系中的图形类似下图:

2 单变量线性回归_第2张图片

则此时的成本函数优化目标变为:

经过上述假设后,成本函数的优化目标中只剩下一个参数。

对于假设函数(hypothesis function)htheta1(x),当参数theta1固定时,假设函数变成了关于x的函数。而成本函数则是关于参数theta1的函数,它控制着假设函数直线的斜率。

成本函数的优化目标即线性函数的目标函数为成本函数值最小的点对应的theta1的值。

2.4 代价函数(二)(Cost Function - Intuition 2)

本节课学习的基础是要了解等高线图或等高线图像(contour plots/figures)。与上一节课内容不同的点在于,本节课将假设函数的常量参数theta0保留,此时可以得出成本函数图形变为三维图形,图形类似碗状,如下图所示:

2 单变量线性回归_第3张图片

我们将成本函数的值改为用等高线图的形式来表示,得到下图:

2 单变量线性回归_第4张图片

上图中,每个圈上的点代表了成本函数相同的点。

2.5 梯度下降(Gradient Descent)

梯度下降是很常用的算法,它不仅被用在线性回归上,还被广泛应用于机器学习的众多领域。在后面课程中,我们将用梯度下降算法最小化其他函数,而不仅仅是最小化线性回归的代价函数J。

本节课将讲解用梯度下降算法最小化任意函数J,在后面的课程中我们再讲用梯度下降算法最小化线性回归的代价函数J,这种情况是函数J的一种特例。

任意函数J的参数有可能是多个,那么最小化这个函数实际上就是找到若干个参数的其中一种组合使得函数J的值最小,为了便于书写,我们用两个参数的函数J来代替通用的函数J的写法。

梯度下降算法的思路:

  1. 给定参数theta0和theta1的初始值,初始值可以是任意值,但通常习惯将theta0和theta1初始化为0;
  2. 不断的一点点的改变theta0和theta1的值,来使函数J的值更小。

重复第二步,直至找到J的最小值或局部最小值。

下图中图形表面的高度即表示函数J的值。

2 单变量线性回归_第5张图片
函数J图形

梯度下降算法的伪代码及计算公式如下,算法中不断执行中间的计算公式,直至收敛:

2 单变量线性回归_第6张图片

其中,

  • :=代表赋值;
  • alpha代表学习率,用来控制梯度下降时的步长,值越大,梯度下降越快,这个参数的设置技巧将在后面的课程中讲解;
  • 最后一部分为导数计算公式,将在后面的课程中进行推导,并说明其作用。

=代表判断等号两边的值是否相等,是做的判断操作,而非赋值操作。这是Andrew推荐使用的Octave的语法。

梯度下降算法的正确做法是同时更新函数J中的多个参数的值,而非更新一个参数之后再更新另一个参数。虽然二者之间的差别非常细微,但非同步更新所有参数的方式是其他的算法,并非我们通常意义上的梯度下降算法。

2.6 梯度下降知识点总结(Gradient Descent Intuition)

本节课主要讲解上一节中的梯度下降算法的实现代码中的公式中学习率alpha及导数公式的过程及意义。

2 单变量线性回归_第7张图片

2.7 线性回归的梯度下降(Gradient Descent For Linear Regression)

梯度下降法的偏导数推导过程如下所示:

2 单变量线性回归_第8张图片

分别计算参数theta0和theta1的偏导数,得到:

2 单变量线性回归_第9张图片

则梯度下降算法的代码中公式可以替换为上述两个结果:

2 单变量线性回归_第10张图片

线性回归函数的代价函数始终是一个凸函数(Convex Function),其图形类似于弓形。这个函数没有局部最优解,只有一个全局最优解。

Batch梯度下降法就是在每一步梯度下降过程中,对所有的训练集样本进行计算。

其实,在线性代数中有相关的方法可以直接计算出代价函数J的最小值,而无需通过梯度下降法这么复杂的迭代过程,这种方法被称为正规方程组方法。二者的区别在于,梯度下降法更适用于数据集较大的情况。

你可能感兴趣的:(2 单变量线性回归)