首先我们要明白机器学习的基本的原理,那就是把现实世界当中要研究的对象通过特征值将其数字化,然后让计算机通过这些已有的数字学习“经验”,从而有了判断的能力,这时如果有了新的输入,计算机就能够根据这些经验来做出判断。比如下面的例子就是要计算机判断西瓜是好瓜还是坏瓜,我们把西瓜对象提取出三种类型的特征值,然后通过算法让机器去学习,从而拥有了判断西瓜好坏的能力。我们把这个可以将经验(数据)转化为最终的模型(model,也就是那个能判断好瓜还是坏瓜的程序)的算法称之为学习算法(learning algorithm)
西瓜数据集
我们可以看出现实世界的任何事物其实都可以通过属性或着特征来进行描述,上图给出的就是通过三个属性来描述西瓜的一组数据。属性的数目我们称之为维数,本例中表示西瓜用了三个特征,因此就是三维。
下面的图表示样本空间(sample space)或者属性空间(attribute space),我们也可以看到这是一个三维空间。
每个样本根据其特征值都会落在样本空间的一个点上,这个点由一组坐标向量来表示,因此样本又叫做特征向量(feature vector)
机器学习的过程就是通过这些样本数据进行训练学习的过程,通过训练,我们可以得出自己的模型,这个模型我们可以理解为经过训练的机器大脑,这个机器大脑可以帮助我们做判断,比如判断一个西瓜的好坏,判断的越准确,说明我们的模型越好。
当我们开始训练我们的模型的时候,只有上面所示的数据集是不够的,我们还需要一组带有判断结果的数据,如下
((色泽=青绿;根蒂=蜷缩;敲声=浊响),好瓜)
判断结果我们叫做“标记”(label),带有标记信息的样本,则称之为样例(example)。
所有标记的集合叫做“标记空间”(label space)或“输出空间”
通常我们训练模型就是为了找到输入空间到输出空间的对应关系,即给定输入空间的一个特征向量,能够对应到输出空间的一个值。
如果我们想让我们的模型只是简单地去判断(通常叫预测)一个瓜是好瓜还是坏瓜,即分成两类,这种学习任务称为“分类”(classification),它预测的是离散值;如果是想让其预测的是连续值,如预测西瓜成熟度0.95, 0.88,此类学习任务就叫做“回归”(regression)
在我们的示例中只是简单地分为“好瓜”,“坏瓜”两类,此种分类称为“二分类”(binary classification),通常一个称为“正类”(positive class)也有翻译为“阳类”,另一个称为“反类”(negtive class)也翻译为“阴类”。
如果是多个类别的话,就称为“多分类”任务。
如果我们想将训练集中的西瓜分成若干组,每组就称之为一个“簇”(cluster),这个过程就叫做“聚类”(clustering)。这些簇可能对应一些潜在的分类,比如“浅色瓜”,“深色瓜”等。而这些分类可能是我们事先并不知道的,就是说学习算法在做聚类分析的时候是自动产生的类别,通常训练样本中也不需要标记信息。
根据训练数据是否有标记信息,学习任务可分为监督学习(supervised learning)和无监督学习(unsupervised learning)。分类和回归是监督学习的典型代表,而聚类则是无监督学习的典型代表。
假设空间
每种特征的组合都认为是一个假设(hypothesis),如,(色泽=青绿;根蒂=蜷缩;敲声=浊响)是一种假设,所有假设的集合我们称之为假设空间。
如果“色泽”,“根蒂”,“敲声”分别有3,2,2种可能,(每种特征值都要加一种任意值可能)那么假设空间的规模就是4x3x3 + 1 = 37
从这幅图可以看出,每种特征值在计算可能性的时候都加了一种可能,就是任意值可能,我们用“*”表示,最后结果加1是由于存在一种可能就是根本没有“好瓜”这个概念,或者说“好瓜”跟这些特征都没有关系。当给定一个训练集进行训练的时候,模型会逐渐删除那些与正例不一致的假设和(或)与反例一致的假设,最后获得与训练集一致的假设。而剩下的这些假设可能有多个,我们把剩下的这些假设的集合称之为“版本空间”(version space)。
归纳偏好
在上文中我们可以发现版本空间中可能有多个假设,究竟选择什么样的假设作为模型的基础呢?比如是越特殊越好,还是越泛化越好呢?比如倾向于色泽还是让敲声有更多的权重?这些针对某种类型的假设的偏好,就叫做“归纳偏好”或者简称“偏好”。而具体到实际的问题解决,往往就是这个偏好的设置最为关键,直接决定了算法的效果。
另外在机器学习领域有一个著名的定理叫NFL定理(No Free Lunch Theorem)是说在所有问题的解决上,不同算法的总误差相同。实际应用时,由于我们只针对特定问题,所以选择不同的算法还是有差异的。
参考:
周志华《机器学习》