在学习具体的机器学习算法之前,有几个知识需要弄清楚,算法的模型表示、什么是损失函数以及梯度下降算法,了解这些会帮助我们更好的理解和学习具体的机器学习算法。我们学习第一个算法是线下回归,接下来会通过线性回归来具体介绍什么样的模型更重要以及监督学习的过程,顺便复习前一章的内容。
一、模型表示
首先我们举一个例子,利用前一章中的预测房价(这是一个监督学习任务并且是一个回归问题)。现在我们拥有某一个城市的住房价格数据。基于这些数据,绘制如下的图形,在已有的房价数据中,部分房子已经售出并且知道这些房子的大小和价格,现在你有一个房子其大小是1250平方英尺,那么如何基于房价数据来预测其可能的售价?
如果用一条直线去拟合数据,那么你的房子可能的售价是$220,000。为了更好的描述模型,我们根据其数据集的格式定义一些符号。
- 表示训练集中实例的数量
- 表示输入变量(或者说是特征),这里是房间的大小
- 表示输出变量(或者说目标值),这里是房价
- 表示一条训练样例,表示第i个样本例,如(2104, 460)是第一条记录
监督学习的过程如下图:
我们将训练的数据集丢给(feed)学习算法,学习算法输出一个函数h(这里的h其实就是hypothesis假设),h的任务就是给定一个输入x,然手输出房子的估价y。所以,h是一个从x映射到y的函数,有的人会问为什么函数h会被成为假设,ng表示说这只是机器学习的标准术语,不必要纠结。但是我们如何来表示函数h呢?根据房价预测问题,我们可以用一种直线去拟合数据(如第一张图),因此在这里,h函数的一种可能方式就是:
所以这里的函数h其实就是我们的模型表达方式, ,这里只含有一个输入变量(特征),因此这样的问题也叫做单变量线性回归问题。
二、损失函数
在上一节中,用来预测房价的函数是