第一周
什么是机器学习?
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.
Example: playing checkers.
E = the experience of playing many games of checkers
T = the task of playing checkers.
P = the probability that the program will win the next game.
通常来说,任何机器学习问题可以被分为以下两个种类:
1. 监督学习
预测房价问题,某学生已经从某地收集了数据集,横坐标是不同房子的面积,纵轴是放假,根据已有数据,假设你朋友有栋房子,70平米,想知道这房子可以卖多少钱?
学习算法可以绘出一条直线,让直线尽可能匹配到所有的数据,但这不是唯一的,或许还有更好的。比如平方函数等。
监督学习:给出一个算法,需要部分数据集已经有了正确答案,比如预测房价问题,对于里面已经有的数据,算法都知道对应的正确房价,算法的结果就是算出更多的正确价格,比如你朋友想要卖出的房子价格。用更术语的方式来定义,监督学习又叫做回归问题(Regression),应该是回归属于监督中的一种,指要预测一个连续值的输出,比如房价。
肿瘤预测问题,让我们通过看医学记录,并预测胸部肿瘤,恶性肿瘤有害又危险,良性肿瘤则是少害。我们有一个收集好的数据集,横轴表示肿瘤的大小,纵轴用0或1表示肿瘤是恶性或是良性。现在假设某人杯具地得了胸部肿瘤,你能估算出一个概率,即肿瘤为恶或者为良地概率?
专业的来说,这是一个分类问题(Classification),分类是要预测一个离散值输出,这里是0或1。分类问题有时会有超过两个的值,输出的值超过两个。
学习算法会画条直线,将两类肿瘤分开,然后就可以判断你的朋友的肿瘤是..的了,如果在良性那边,则概率很大是良性。
监督学习基本思想:对于数据集的每个数据,都有相应的正确答案,(训练集)算法就是基于这些来做出预测。就像房价或者肿瘤问题,通过回归来预测一个连续值的输出,或者通过分类来预测离散值的输出。
2. 无监督学习
在无监督学习当中,没有属性或者标签这一概念,所有的数据都是一样的,没有区别。我们只有一个数据集,没有人可以告诉我们该怎么做,我们也不知道每个数据点有什么含义。相反,他只告诉我们,现在有一个数据集,你能在其中找到某种结构吗?对于给定的数据集,无监督学习算法可能判定,该数据集中包含两个不同的聚类。
无监督学习算法,会把数据分成两个不同的聚类,这就是所谓的聚类算法。聚类算法被用在许多地方,谷歌新闻,基因学,社交网络分析,市场分割,天文数据分析等。
无监督学习是一种学习机制,你给算法大量的数据,要求它找出数据中蕴含的类型结构。
典型的无监督学习问题:鸡尾酒宴问题
Linear’regression
1.1 Model representation
以预测房价问题为例子。
用h来表示一个函数,输入是房屋尺寸大小x,输出是房屋售价y。
h代表hypothesis(假设) ,定义。其中
表示为第i个样本,x表示输入值,y表示输出值,上标表示样本。定义m表示样本数量。
对于假设h我们可以用一条直线描述,用线性函数预测房价值, 。其中我们把θ称作模型参数。我们要做的就是如何选择这两个参数值,来让它很好拟合数据。
1.2Cost function
为了提高h(x)的精度,我们引入了代价函数。我们取怎样的θ值可以使预测值更加准确呢?
我们应使得每一个预测值和真实值差别不大,可以定义代价函数如下
This function is otherwise called the "Squared error function", or "Mean squared error". The mean is halved as a convenience for the computation of the gradient descent, as the derivative term of the square function will cancel out the
term. The following image summarizes what the cost function does:
我们这里用轮廓图可以更加直观看到代价函数和h(x)的关系,轮廓图的每一圈表示代价函数相同的所有点的集合,对应左边的h(x)图。代价函数最小的点就是一系列同心椭圆最中心的点。
1.3parameter Learning
梯度下降(Gradient descent)用来将代价函数J最小化。
好比我们下山,每次在一点环顾四周,往最陡峭的路向下走,用图形的方式更形象的表示
但是如果你的起始点偏移了一些,你就会得到一个非常不同的局部最优解。
在这里被称作学习速率,在梯度下降算法当中,它控制了我们下山时会迈出多大的步子,如果
的值很小,那么我们会迈着小碎步下山,那样会花费很多时间,但是如果
的值很大,我们会错过山谷(也就是最低位置)。
还有重要的一点就是,在梯度下降中,我们要“同时”更新theta0和theta1
Gradient descent for linear regression
虽然梯度下降容易受到局部极小值的影响,但是我们在这里提出的线性回归问题只有一个全局最优值,没有其他局部最优值,因此梯度下降可以收敛到全局最优。