【吴恩达机器学习笔记学习笔记02】Cost function

来源:互联网 发布:声音剪辑软件 编辑:程序博客网 时间:2024/06/04 19:26

一、Previously on Note01

【吴恩达机器学习学习笔记01】监督学习和无监督学习介绍

接下来我们学习的第一个算法是线性回归算法。还是一个关于预测房价的例子,数据集包含了俄勒冈州波特兰市的住房价格。如果你有个朋友有1250英尺的房子,那么如图你可以告诉你的朋友大概买220美元就可以了。这是一个回归问题
01
在监督学习里面,我们有一个数据集,这个数据集被成为训练集,包含不同的房屋尺寸和它对应的价格。

现在介绍一些字符:

m:训练集样本的数量(这里有47个样本)X:输入变量/特征量y:输入变量/目标变量(x,y):一个训练样本(x^i,y^i):第i个训练样本(并不是i次方)

02

一般流程:

1、把训练集“喂”给我们的学习算法2、学习算法进行操作,然后输出一个函数我们记为h(这个函数被称为假设hypothesis)3、我们输入x给h,然后输出y的值

怎么去表示这个h?

hθ(x)=θ0+θ1x简写为h(x)=θ0+θ1x为什么是一个线性函数?有时候会是非线性或者更复杂的函数,只是线性是最简单的,比较适合入门。上面的线性模型也被叫做单变量线性回归。

二、Cost Function

1、Definition

这节课讲的是损失函数(Cost function),弄清楚如何把最有可能的直线和我们的数据相拟合。
以下是我们的线性回归的训练集(Training Set)和假设(hypothesis):
03
其中,θi我们称为模型参数。我们现在要讨论的就是如何去选择模型参数,能更好地拟合我们的每一个数据点?那么我们怎么得出这两个值?
我们的想法是:让我们输入x后的预测值尽可能地跟真实值的误差相对较小。所以我们需要比较多的样本点。所以我们要尽量使得
这里写图片描述
的值最小。因为要减少平均误差,因此对求和值的二分之一求最小值,应该得出相同的θ1和θ2,所以问题转化成了求θ1和θ2,使得预测值和真实值的差的平方和的1/2m 最小。因此我们要定义一个代价函数

损失函数1
这个也成为平方误差函数
损失函数2

2、How to use?

再来看一下左边是我们上面说到的假设和损失函数,让我们来简化一下:我们把假设编程如下形式,你也可以看成θ0等于0;
05
然后我们假设一下数据集是(1,1)(2,2)(3,3)
接着设我们的θ1=1,这时候算得的J(θ1)(损失函数)的值为0:
06
然后我们就可以在右边的图标出θ1=1时候的对应点,如图。然后我们再来看一下θ1=0.5的时候:
07
下面是θ1=0的时候:
08
不难发现,对于不同的θ1都能算出对应的J(θ1)损失函数的值在1左右都在单调递增,我们可以画出如下的曲线。而我们学习算法就是想找一个能J(θ1)最小化的值。

3、In addition

09
和上一节不同的是我们的Parameters还是写成θ1和θ0的形式,便于我们对代价函数进行可视化。
10
像上面这个数据集,和我们给出来的假设hθ(x),我们尝试画出它的损失函数的图像。因为前面我们只有一个变量θ1,所以它的损失函数是二维的,但是现在我们的参数有两个:θ1和θ2,因此我们的图像变成了三维,like this:
11
因为三位图像比较难展示,所以用了轮廓图(Contour plots)来进行讲解。
12
通过选取损失函数中的数据点,画出它的对应的假设,我们可以看到这个的拟合程度明显不好。
13
选取比较近的点,我觉得老师讲的顺序有点颠倒,这里应该提前一点。
14
再选择近一点的点,可以看到拟合情况已经好多了,但是还是不够理想。再来看看下面的:
15
最后这个图,并不是轮廓图的中心点,但是已经很接近了。这个点正是我们所需要的,但是我们不可能人工进行筛选啊,所以怎么编写程序让他自动地寻找这个最小值点,将在后面的教程详细讲到!

原创粉丝点击