- OpenCV 4机器学习算法原理与编程实战
- 朱斌编著
- 1596字
- 2021-04-30 21:23:51
3.1 机器学习的基本概念
3.1.1 机器学习的定义
机器学习一个比较早的定义是于1959年由IBM的Arthur Samuel给出的:“在不直接针对问题进行明确编程的情况下,赋予计算机学习能力的研究领域”。
机器学习另一个比较现代且更宽泛的定义是由Tom M. Mitchell给出的。Mitchell是卡内基梅隆大学的机器学习主席,他对机器学习的定义经常被学术界引用:“如果一个计算机程序针对某类任务T能用性能标准P来衡量,且能根据训练经验E来自我完善,那么我们称这个计算机程序在从经验E中学习该任务。”
例如,对于学习下西洋跳棋的计算机程序,它可以通过和自己下棋获取经验。它的任务是参与西洋跳棋对弈,它的性能标准是衡量它赢棋的能力。通常,为了更好地定义一个学习问题,我们必须明确三个特征:任务的种类、衡量任务提高的标准和经验的来源。
对于西洋跳棋学习问题:
◎ 任务T:下西洋跳棋。
◎ 性能标准P:在比赛中击败对手的百分比。
◎ 训练经验E:和自己进行对弈。
3.1.2 机器学习的分类
机器学习按照学习形式可以分为监督学习(Supervised Learning)、无监督学习(Unsupervised Learning)和强化学习等。我们把在机器学习任务中用于训练、验证或测试的数据都称为样本,其中,用于训练的样本集简称为训练集,用于验证模型好坏的样本集简称为验证集,用于测试的样本集简称为测试集。
监督学习使用的是标注过的带有标签(Label)的数据进行训练,通常用于回归(Regression)、分类(Classification)等任务。训练集中的每个样本,都由一个输入对象和对应的标签组成——(x(i), y(i)),其中,x(i)为第i个数据,y(i)为该数据的标签。在手写数字识别任务的训练数据中,每一幅图像x(i)都有一个标签y(i)与之对应。在图3-1所示的手写数字图像中,四幅图像对应的标签依次为0、2、0、1。因此对于监督学习而言,为了获得足够多的训练样本供机器学习算法使用,需要花费大量的时间给样本标注正确的标签。
图3-1 手写数字图像
无监督学习使用无标签的数据进行训练,通常用于聚类(Clustering)、异常检测(Anomaly Detection)等任务。机器从没有标签的数据中寻找隐藏的模式,发现数据之间内在的特征和相互关系,从而将其划分为不同的类别。
强化学习与监督学习类似,模型在学习过程中以获得对没有学习过的问题做出正确解答的泛化能力为目标,但使用的是无标签的数据。在强化学习过程中,算法对预测结果进行自我评估,从而不断改进。
下面具体介绍几种不同的机器学习任务类型,只有了解了任务类型,才能更好地从OpenCV机器学习算法库中挑选合适的算法。
1. 回归
考虑一个以d次方的实数向量x作为输入样本,实数值y作为输出样本的函数y=f(x)的学习问题。在监督学习中,真实函数关系f是未知的,训练集的样本是已知的。但由于在观测中存在噪声,即输出样本的真实值yi=f(xi)与实际观测到的样本有区别。二维空间中的回归如图3-2所示,f(x)为原始函数,(x)表示学习得到的函数,(x)的取值是连续的实数值。
图3-2 回归
2. 分类
以实数向量x作为输入样本,所有的输入样本都可以被划分为c个类别的问题进行说明。训练集的输入样本、输出样本是已知的,但是,分类问题中的输出样本yi, 并不是具体的连续取值的实数,而是分别代表类别的1, 2, 3, …, c。在这样的任务中,得到输出类别1, 2, 3, …, c的函数y=f(x)的过程就是分类机器学习的过程。分类如图3-3所示。
图3-3 分类
3. 聚类
聚类与分类相似,也是模式识别问题,但聚类属于无监督学习的一种,聚类如图3-4所示。即只给出输入样本,判断各个样本分别属于1, 2, 3, …, c中的哪一个簇。隶属于相同簇的样本之间具有相似的性质,不同的簇之间具有不同的性质。在聚类问题中,如何准确地计算样本之间的相似度是关键。
图3-4 聚类
4. 异常检测
异常检测是指检测出输入样本中所包含的异常值。在已知正常值与异常值的例子的情况下,异常检测与有监督的分类问题是相同的。但一般情况下,在异常检测任务中,对于什么样的数据是异常的,什么样的数据是正常的,通常是未知的。在这样的无监督异常检测问题中,一般采用密度估计的方法,把靠近密度中心的数据作为正常值,把偏离密度中心的数据作为异常值,如图3-5所示。
图3-5 异常检测