机器学习II. Linear Regression with One Variable (Week 1) 单特征线性回归

来源:互联网 发布:电信网络电视多少钱 编辑:程序博客网 时间:2024/05/26 17:47

Model Representation 模型描述

线性回归(Linear Regression)是一种有监督机器学习方法,通过学习数据(已知样本,training data),建立模型,然后接收新的输入数据,预测目标数据(连续型), 先学习只有一个特征的线性回归。

首先通过一个例子引入,波特兰房价问题:


横轴为房子面积,竖轴是房价,红色的点就是已知的数据,作为training set。要实现一个算法给一个新的房子面积,预测它的房价。简单模型如下:


h是学习算法的假设函数(模型), 针对房价问题如何假设h?


这是一个单特征的线性回归模型,θ是参数,x是输入特征。


Cost Function 价值函数

学习算法不断修改θ让模型的预测更为准确,但如何评判一个模型预测的好坏呢?

单特征线性回归是得出一条直线(h)进行预测,它不一定会完全拟合训练数据(一般不能),这时有的点不会落在直线上,我们计算纵坐标(要预测的数据)平方差之和(sum of square error)来表示整体的误差,如图:


我们的目标是使平方差之和尽可能小,即使下面的式子尽可能小:


J  称为价值函数Cost Function, 式子前面的是为了数学上计算更加方便(梯度下降求偏导的时候)。

注意h和J的区别,h是我们提出的模型,是输入特征x的函数;J代表整个模型的误差,合适的参数θ可使误差尽可能小,J是θ的函数。这种经典的最小二乘法价值函数可应用于很多机器学习方法。

下面以简单的例子直观理解价值函数J。


,训练数据只有三个点(1, 1), (2, 2), (3, 3)。


当θ1 = 1 直线完全通过训练数据的三个点时,整体误差为0,J = 0。


θ1 = 0.5时的直线无法完全拟合数据点,产生误差,这时J为大于0的某值。


当θ1 = 0时误差更大,J的值也更大。实际上此例θ1取不同值时J的曲线如上图,我们的目标是找到让J最小的那个θ。

当有两个参数θ0,θ1时,J的图像画出来是一个碗形(bowl shape):



Gradient Descent 梯度下降

梯度下降法是求很多函数极小值的一种方法,这里用于求价值函数J。

直观理解梯度下降是“站在山上随机的一点,环顾四周,选择最陡的一个方向前进一个步长,重复此过程直到到达一个谷底(不一定全局最低)。”如下图,选择不同的起始点可能到达不同的谷底。


数学上是以求偏导方式选择“最陡方向”。梯度下降算法如下:


所以参数要在每次循环内同时更新更新。


右边的方式有不同的数学性质,不推荐。

α是学习速率,选取的太小,“下山”的步长很小,价值函数J收敛很慢,影响算法性能;α选取过大,有可能导致价值函数J上升,如下图所示:



Gradient Descent for Linear Regression 

将梯度下降算法引入线性回归


一般单特征线性回归问题的价值函数都是一个碗形(bowl shape),所以梯度下降会取得全局最优。

这种基础的梯度下降算法叫批梯度下降("Batch"Gradient Descent),即一次更新使用所有训练数据(数据量大时比较慢)。