机器学习的基本概念和术语

在人类世界里有 “吾日三省吾身”“知错能改,善莫大焉”“温故而知新,可以为师矣”这些话。这些话都是人类取回顾过去发生的事情,通过发生过的事务去总结经验或者从旧的事务中总结规律。总之,这是几十万年来人类一直都具备的天性,我们称之为人类的学习。

为什么我会选择机器学习

每一个热爱技术的人心中都有一个信条,那便是——技术改变世界。或许每一个人心中都曾经有过改变世界的想法,少部分人做到了并得到了大家的认可,还有一大部分人也做到了只不过自己没有发现。 对于我来讲,9年前初学编程的时候,梦想是有一天能去给国家放卫星,虽然后来没有实现,不过我也换了其他的方法去报效自己的祖国,并为之付出了八年的青春。

通过技术,我或多或少的贡献了一些自己的力量,随着时代的发展很多原本被称之为技术的东西降级成了技能,很多新的东西出现成为新的技术,也有很多以前没有被实现的想法被重新翻出来尝试,然后升级为技术,机器学习就是后者。随着技术的进步与降级,我逐渐开始思考,技术的本质可能就是很早以前就有的那句话——解放生产力。而当下最真实的写照非人工智能莫属了。

对我来说,学习机器学习或人工智能,就是在攀登技术的高峰(也许对别人来讲就是一个小土坡),为了不被时代所淘汰,为了自己曾经引以为傲的某种被称作编程的技术降级成为技能之后,自己手里还有东西好让我继续我保持某种奇怪的优越感。

什么是机器学习

在人类世界里有 “吾日三省吾身”“知错能改,善莫大焉”“温故而知新,可以为师矣”这些话。这些话都是人类取回顾过去发生的事情,通过发生过的事务去总结经验或者从旧的事务中总结规律。总之,这是几十万年来人类一直都具备的天性,我们称之为人类的学习。

在机器的世界里,机器也可以进行类似的学习,对于机器来说过往的经验就是历史数据。计算机从数据中学习,产生一个模型,然后用这个模型去解决一类问题,这样的过程被叫做机器学习。

一个更形式化的定义[Mitchell,1977]:假设用P来评估计算机程序在某任务类T上的性能,若一个程序通过利用经验E在T中任务上获得了性能改善,则我们就说关于T和P,该程序对E进行了学习。

机器学习的数据和术语

巧妇难为无米之炊,没有数据机器学习就无法开始。

假设我们收集了很多数据,这些数据的集合就被称之为 数据集(data set) ;单个拿出来一条记录,称为一个 示例(instance)样本(sample) ;记录中有一些对数据的描述,我们称之为 属性(attribute) 或者 特征(feature);这些属性一般都有一个具体地内容来形容(比如数值,形容词),我成称之为 属性值(attribute value) ; 属性值张成的空间则被称为 属性空间(attribute space)样本空间(sample space)输入空间

用公示表达就是, $D={x_1,x_2,…,x_m }$ 同时 $x_i=(x_{i1},x_{i2},…x_{id})$。对着这两个公式,其中D是一个包含了m个示例$x_i$的数据集,每个示例有d个属性,$x_i=(x_{i1},x_{i2},…x_{id})$实在d纬样本空间$X$中的一个向量,$x_i \in X$,其中$x_{ij}$是$x_i$在第j个属性上的取值,d称为样本$x_i$的维数。

从数据中学得模型的过程称之为 学习(learning)训练(training), 训练过程中使用的数据称为 训练数据(training data),其中每一个样本被称之为训练样本(training sample), 训练样本组成的集合称为训练集(training set); 学习模型对应了许多关于数据的某种潜在规律,称之为假设(hypothesis).

监督学习:离散和连续,分类与回归

在训练过程中,已经知道训练集中$x_i$已经被标记(label),习得的模型最终解决问题的具体体现则是根据一个新样本的特征的到对应的标记,这样的学习被称为监督学习(supervised learning)

分类和回归是监督学习的代表。

如果最终得到的标记是离散值,比如某一组形容词(好,不太好,坏),那么此类学习任务被称为 分类(classifacation);如果最后要预测表的标记是连续值,比如(1,0.75,0.5),那么此类学习被称作 回归(regression)

一般地,预测任务是希望通过对训练集${(x_1,y_1), (x_,y_2), {\cdots},{x_m,y_m}}$进行学习,建立一个从输入空间$X$到输出空间$Y$的映射:$f:x \to y$.

对于分类问题:按照类别的数量区分有二分类任务和多分类任务.
如果只涉及两个类别的分类,这中分类被称为 二分类 (binary classifation), 通常成其中一个分类为 正类(positive class), 另一个自然就是 反类(negative class); 对于二分类任务,得到的结果,通常是让 $Y={-1,+1}$ 或者 ${0, 1}$
如果设计多个类别的时候,则称为 多分类(multi-class classifation).对于多分类任务$|Y| > 2$.
由于回归问题得到的输出是连续纸,所以$Y=R$, R为实数集.

非监督学习

有些时候,参与训练的数据集并没有被标记,这个时候可以对这些数据进行 聚类(clustering),这有点类似于google和百度的新闻页面,当打开页面之后很多新闻自动的被放置在了一个组内。 把训练集分成若干个组,这样的组被称为 簇(cluster),这些自动形成的簇可以自动的对应一些潜在的概念划分,如军事新闻,政治新闻,娱乐八卦,但事实上我们并没有类似“军事新闻”、“政治新闻”这类的标记和概念。

聚类是非监督学习的代表。

假设空间与假设的选择

上面提到了假设 hypothesis, 事实上学习的目的就是为了得到一个预测模型,而在这个过程中我们需要不断地去尝试,提出假设,而所有假设的集合,被称为假设空间。换句话说:在对应的函数中,已知$x$,$y$,我们可以提出假设$h(x)=y$,那么所有的的$h(x)=y$的函数的集合,就是假设空间。

但是当样本的维数特别大的时候,对应的假设空间也很大,我们几乎有无限个假设,到底应该选择哪一个假设呢?

每一个假设坑能在预测中对不同的特征值有不同的权重,这个时候我们一般优先选择最简单的那个假设,换句话说就是排除一些不必要的特征的干扰,把复杂问题简单化。用函数来代表假设的话,按照上面的原则,函数应该尽量简单。上面的原则被称作“卡奥姆剃刀原则”,感觉提到这个词用的很形象哈(莫名回想起多年以前挥洒过热血的剃刀高地和剃刀沼泽)

卡奥姆剃刀原则:若有多个假设与观察一致,则选择最简单的那个。

但是,卡奥姆剃刀原则也并不是唯一可行的原则,到底什么样的模型更好,也就是算法的归纳和偏好是否与问题本身匹配,大部分时候直接决定了算法能否取得好的性能。到底如何却设计算法的归纳和偏好大部分时候取决于我们研究的问题,脱离实际单纯的去谈哪一个算法好,那一个算法不好本身就是不科学的(PS:天下没有免费的午餐定力定力就证明了在所有问题同等重要的时候高明的算法也罢,笨拙的算法也好,他们的期望性是相同的)。

本文是对周志华教授《机器学习》的学习笔记的整理和部分内容的摘录。

文章目录
  1. 1. 为什么我会选择机器学习
  2. 2. 什么是机器学习
  3. 3. 机器学习的数据和术语
  4. 4. 监督学习:离散和连续,分类与回归
  5. 5. 非监督学习
  6. 6. 假设空间与假设的选择