第一章 线性回归(Linear Regression)

0. 前言

以下内容是根据coursera上《机器学习》课程所做的学习笔记,笔记中摘录了课程上的部分图片,也加入了自己的理解,为了能更好的的让自己回顾所学内容并且和大家分享,以中文形式进行阐述。

本篇文章仅供学习交流使用,需要获取更多信息还请大家登录官方网站https://www.coursera.org/。

由于是初次写博客,其中必然有很多地方考虑不到的地方,我会在之后做出修改,还请大家包涵。

1. 线性回归的模型表示

  1. 使用x(i)表示输入变量,也叫“输入特征”; 使用y(i)表示输出变量,也叫“目标变量”
  2. 一个(x(i), y(i))对称为一个训练样例
  3. 我们用来训练的数据集是一个训练样本列表(x(i), y(i)), i = 1,...,m
  4. 我们使用X,Y分别表示输入变量和输出变量的取值范围

2. 对于supervised learning的正式表述

给出一个训练数据集,我们要找到这样一个函数h:X → Y使得h称为对于输出的一个好的预判,这个函数称为hypothesis,记为hθ

3. 成本函数cost function

为了评价hypothesis方程的精确性,定义一个cost function

我们可以看到成本函数与统计学上计算样本的方差较为类似。

4. 对cost function 的直观理解

第一章 线性回归(Linear Regression)_第1张图片
只有一个参数的cost function

第一章 线性回归(Linear Regression)_第2张图片
有两个参数的cost function(用等值线图表示)

5. 梯度下降法(gradient descent)

5.1 梯度下降法的表述

由于我们已经有了评价hypothesis方程适应数据程度的方法(cost function), 那么接下来的任务就是如何找到cost function 的最小值, 梯度下降算法是其中的一个方法.

给定一组训练数据集,我们根据采用不同的θ0, θ1得到不同的hypothesis方程hθ0, θ1),并计算出了它的cost function Jθ0, θ1), 综合所有的θ0, θ1绘制成下图

第一章 线性回归(Linear Regression)_第3张图片
梯度下降法

我们的目标是找到Jθ0, θ1)的最小值,也就是图中的最低点。那么如何找到这个最低点呢?

假如我们站在图中的任何一点,假设是A点。梯度下降法的做法是“环顾四周,找到一个方向使得我沿着这个方向走一小步下降的距离最大”,于是我环顾四周,找到B点。 然后我重复上述过程,找到C点,然后继续重复上述过程...,最终我来到了箭头所示的最低点。总体上来看,我通过“梯度下降法”来到了图中的一个局部极小值点。

那么这个方法的正式表述是什么呢?

第一章 线性回归(Linear Regression)_第4张图片
梯度下降法的规范表述

这个方法有几个需要注意的地方
1.α的含义
α称为learning rate,它表现了梯度下降的速率,也就是我们每一步的“大小”,我们会在接下来对它详细的介绍
2.":="的含义
在接下来的讨论中,我们使用符号":="表示先计算右侧的值,再将它赋给左侧(类似于C++的=)。而"="的含义是表示两侧是否相等(类似于C++的==)
3. 同时更新
由于我们要更新的θ值有很多个,在每一次梯度下降时要注意“同时更新”,即:=右侧的值都算出来后,再同时对左侧赋值

第一章 线性回归(Linear Regression)_第5张图片
同时更新

5.2 对梯度下降法的直观理解

对于梯度下降法的某一个变量,如下图是J(θ1)关于θ1变化的曲线,这个曲线是一个凹函数,有最小值。

第一章 线性回归(Linear Regression)_第6张图片
θ1的梯度下降过程

由梯度下降公式
[图片上传失败...(image-27f54c-1529201544341)])
当θ1位于右侧时,导数那一项是大于零的,我们一般将learning rate 设置成正数,因此相当于θ1减去一个正数再对θ1进行更新,结果是使θ1减小,也就是使得θ1的值向左移动。
当θ1位于左侧时,导数那一项是小于零的,因此相当于θ1减去一个负数再对θ1进行更新,结果是使θ1增大,也就是使得θ1的值向右移动。

通过这样一步一步的对参数θ进行更新,在保证learning rate α的合理取值的情况下,我们就可以最终获得使得cost function J(θ0, θ1)取得最小值的参数集合。

但是这里存在两个疑问

问题1:如何才算对α的合理取值?

这个需要通过具体的实验一步步的确定,但是我们可以肯定的是,learning rate取值过小或者取值过大都会对算法造成不利的影响

如下图,是α取值过小的情况,我们可以看到每一步迈出的距离都特别小,造成了对于时间的大量损耗。

第一章 线性回归(Linear Regression)_第7张图片
α 取值过小

而下图则是α 取值过大的情况,我们可以看到,假设我们一开始在A点,此时更新的结果应该是θ 1向右移动,但是由于learing rate 过大,导致更新之后的θ 1越过了最小值点,直接来到了B点;不幸的是,由于learning rate 还是过大,B点更新后直接越过最小值来到C点,如此这般,使得θ 1 非但没有收敛,反而变得发散,这是我们不愿见到的。
第一章 线性回归(Linear Regression)_第8张图片
α 取值过大

问题2:α的值在梯度下降过程中是变化的吗?

答案是否定的,如下图,如果α的值在一个合理的范围内,导数项是随着更新过程逐渐减小并趋向于零的,也就是会逐渐趋向于最小值,而不是直接越过它


第一章 线性回归(Linear Regression)_第9张图片
α的值是固定的

5.3 线性回归的梯度下降法(gradient descent for linear regression)

我们结合线性回归的cost function的表述


得到线性回归的梯度下降法的规范表述

第一章 线性回归(Linear Regression)_第10张图片

这个结果可以通过简单的代入求导得到,对于没有学过微积分的同学,请自行查阅相关书籍。
由于这样的梯度下降法使用了所有的训练用例,机器学习界通常也将它称为 batch gradient descent

你可能感兴趣的:(第一章 线性回归(Linear Regression))