1.定义
- 机器学习定义
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,由图可知这是一个简单的线性回归的问题。
这里设线性回归方程(假设函数)为:
h θ ( x ) = θ 0 + θ 1 x h_\theta(x) = \theta_0 + \theta_1x hθ(x)=θ0+θ1x
x为房子的尺寸,h(x)为房子的价格,θ:参量
所以我们的任务就是选取合适的θ0和θ1,让计算出来的h(x)曲线为我们用来训练的数据(x,y)来尽量接近实际的y,即给定一个x,通过h(x)函数有一个对应的h值与对应的y的距离越接近则越好。
- 所以我们用一个代价函数(Cost Function)来评估这个估计的误差:
J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m [ h θ ( x i ) − y i ] 2 J(\theta_0,\theta_1)={1\over 2m}\sum_{i=1}^m[h_\theta(x_i)-y_i]^2 J(θ0,θ1)=2m1i=1∑m[hθ(xi)−yi]2
使用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。