说在前面

  • 作者是按照吴恩达的Machine Learning学习的,同时结合周志华的西瓜书,作为一名初学者肯定有一些写的不恰当的地方,大家可以直接指正,共同进步。

1.定义

  • TOM定义机器学习

    Tom Mitchell provides a more modern definition: “A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.”

    计算机程序从经验E中学习,解决某一任务T,进行某一性能度量P,通过P测定在T上的表现因经验E而提高。

2.分类

  • 监督学习(Supervised Learning)

    我们给出一个数据集,其中包含了正确答案,算法的目的就是给出输入和输出之间的函数,从而给一个输入就可以预测出输出结果,从而给出相应的更多的正确答案。

    监督学习又分为回归问题和分类问题:

  • 回归问题(Regression)

    我们想要预测连续的数值输出,设法预测连续值的属性。(给出大量值的某些特性值,预测某一值对应的特征值)通常要拟合回归直线。

  • 分类问题(Classification)

    预测的结果只有两种,输出是离散值(0/1),有时可以有多个离散值(通过大量数据有几种结果,通过给出数据来预测是哪一种结果,可以有多个属性来决定一种结果)例:对肿瘤的分析是良性还是恶性的,收入的邮件是是正常邮件还是垃圾邮件等。

  • 无监督学习(Unsupervised learning)

    有一个数据集,其中没有正确答案,无监督学习主要把一些数据分成几个不同的簇,这就是聚类算法(把一些具有相同性质的放在一起形成聚类)。

3.模型和代价函数

  • 首先是一个根据不同房子的尺寸估计房价的例子,他是一个回归问题,对一个样本的size来预测对应的price,由图可知这是一个简单的线性回归的问题。

这里设线性回归方程(假设函数)为:

x为房子的尺寸,h(x)为房子的价格,θ:参量

所以我们的任务就是选取合适的θ0和θ1,让计算出来的h(x)曲线为我们用来训练的数据(x,y)来尽量接近实际的y,即给定一个x,通过h(x)函数有一个对应的h值与对应的y的距离越接近则越好。

  • 所以我们用一个代价函数(Cost Function)来评估这个估计的误差:

使用1/2m主要是后面求导的时候比较方便,h(x)为预测值,y为真实值,算的就是预测值与真实值的差的平方和,m是数据组的个数,我们的目标就是使J(θ0,θ1)最小,这样得到的h(x)就是我们所想要的拟合出来的回归方程。

  • 为了更好的体会代价函数,下面先举一个单变量的代价函数J(θ1),对应的假设函数为h(x) = θ1x.

这里有三个数据构成的数据集,采用h(x)去拟合,假设θ1 = 1,那么得到的代价函数J(θ1)=0

当使θ1取不同的值时得到的代价函数也不同,通过计算可以得到代价函数的图像如下,由图可知,当θ1=1时,J(θ1)=0为最小值。即找到了θ1。这就是我们想要的函数。

  • 同时考虑θ0和θ1的代价函数

这里假设θ0=50,θ1=0.06,显然这个不是一个好的假设,通过假设多组值求解代价函数,得到的J(θ0,θ1)图像如下:(当同时考虑θ0和θ1时,这个时候就是一个三维图了,让我们需要求的J(θ0,θ1)就是三维面上每一个点的高度。这个时候就可能存在不同的θ0、θ1对应相同的J(θ0,θ1))

下面把他的等高线图画出来,对于不同的θ0和θ1有不同的h(x),和对应的J(θ0,θ1),从图11的右边的图可以看出,不同的θ0和θ1会存在相同的J(θ0,θ1),当这个圈上的点越往中心靠近时,则J(θ0,θ1)越来越小,同时h(x)也越接近我们需要的回归线

  • 所以我们需要做的就是从任意的 θ0和θ1出发,进行不断地改变两个的大小,来减小J(θ0,θ1),从而找到使J(θ0,θ1)最小的θ0和θ1。

结尾

  • 下面一篇会讲到如何求解代价函数的最小值条件,并由具体的演示实例。