一、引言

Machine Learning,它的广义定义为通过使用经验(experience)来提高算法性能并对未知数据做精准预测的计算方法。经验(experience)指的是能够为学习者提供有用的历史信息和数据,收集数据并做可行性分析。这些数据(data)可能来自于有标签的训练集,或者是通过环境交互下的其他类型的信息,数据的好坏和数量多少对于学习者预测的成功与否起着至关重要的作用。

时间复杂度空间复杂度,但在机器学习领域我们需要额外的对样本的复杂度进行评估,需要算法去学习一系列的概念。理论分析表明,算法是由所分析概念的复杂性和样本的大小共同决定的。

统计概率优化相结合的产物。

二、机器学习的应用和相关问题

       机器学习理论现在已经成功的应用到如下的领域:

  • 文本分类
  • 自然语言处理(NLP)
  • 语音识别、语音合成、说话人检测
  • 光学符号识别(COR)
  • 计算生物学应用
  • 计算机视觉(图片识别、人脸检测)
  • 欺诈检测和网络入侵
  • 各种游戏(象棋、围棋)
  • 自助车辆控制(机器人,自动导航)
  • 医学制药
  • 推荐系统、搜索引擎、信息提取系统

机器学习概述_机器学习

       机器学习主要应用于以下几个领域:

  • 分类(Classification):为每一项分配一个类别。例如,新闻分类可以分为政治类新闻、经济类新闻、体育类新闻等等。图片分类可以分为风景类图片、肖像类图片、动.物类图片等等。有些分类比较少,有些分的类别就会比较多,甚至是无限分类。
  • 回归(regression):为每一项预测一个真实值。例如对股票行情的预测或者明天下雨的概率。对于错误分类的惩罚取决于样本真实值和预测值的差值,和分类问题不同的是,各个类别之间没有关联性。
  • 排序(ranking):根据一些标准为每一项进行排序。例如,网页搜索,返回与搜索查询相关的网页。在信息提取或自然语言处理系统的设计过程中,还会出现许多类似的排序问题。
  • 聚类(Clustering):将每一项划分到性质相同的区域。聚类经常被用于较大的数据集中。例如,对于社会网络的分析,聚类算法尝试着在很大一部分人群中分辨相同特点的人。
  • 降维(Dimensionality reduction)流形学习(manifold learning):将一些项的初始表示转化为这些项的低维表示,并且保存这些项初始表示时的特征。例如在计算机视觉中处理数字图像。

       机器学习的主要实践目标就是对未知项甚至是更大规模的问题设计高效和鲁棒性的算法产生精准的预测,由此便产生了大量的算法和理论性问题。

三、机器学习的定义和相关术语

       本部分将使用垃圾邮件检测作为一个标准的例子来阐述机器学习的一些定义和相关术语。

  • 示例(Examples):用于学习或评估的数据项或实例。在垃圾邮件检测问题中,这些示例就是我们将用于学习和测试的邮件集合。
  • 特征(Features):示例属性的集合,经常用向量来表示,与示例相关联。对于邮件,一些相关的特征可能是信息的长度、发送者、文件中的关键句子等等。
  • 标签(labels):示例的类别或者数值。在分类问题中,示例经常被分配特定的类别。例如,二分类中的垃圾邮件和非垃圾邮件。在回归问题中,项目被分配实时标签。
  • 训练样本(Training sample):被用来训练一个学习算法的示例。在垃圾邮件分类问题中,训练样本是由一系列的带有标签的邮件示例组成的。
  • 验证样本(Validation sample):当使用有标签数据训练学习算法时,那些用于调节算法参数的示例。学习算法通常有一个或多个自由参数,验证样例用于为这些模型参数选择适当的值。
  • 测试样本(Test sample):用于评价算法性能的示例。测试样本与训练样本和验证样本不放在一起,在算法的学习训练阶段不发挥作用。在垃圾邮件分类问题中,测试样本由一组邮件组成,学习算法需要基于特征来预测邮件标签(是否为垃圾邮件)。然后将这些预测值与测试样本的真实标签进行比较,来评估算法的性能。
  • 损失函数(Loss function):用来计算示例的预测标签和真实标签之间的差异或损失的函数。 可以用机器学习概述_机器学习_02来定义样本标签的集合,样本标签的所有可能的预测集合用机器学习概述_垃圾邮件_03来表示,损失函数机器学习概述_机器学习_04就是这样一个映射:机器学习概述_垃圾邮件_05。在大多数情况下,机器学习概述_垃圾邮件_06,损失函数是有界的,但这些条件并不总是成立。常用的损失函数包括0-1损失,机器学习概述_数据_07机器学习概述_数据_08的范围上定义。平方差损失是机器学习概述_机器学习_09机器学习概述_机器学习_10上的定义,机器学习概述_数据_11通常是一个有界的区间。
  • 假设集(Hypothesis set):一组函数将特征(特征向量)映射到一组标签机器学习概述_机器学习_02上去。本例中,一系列的函数有可能就是将邮件的特征映射到 机器学习概述_数据_13。它们可以是线性函数,将电子邮件的特征向量映射为分数机器学习概述_垃圾邮件_14,高分的垃圾邮件比低分的更具有指示性。

将样例随机划分为训练样本、验证样本和测试样本。验证样本的多少可以取决于算法中的自由参数的多少,当示例数相对来说较少的话,分配训练样本的数量一般要多于测试样本,因为算法的学习性能是直接受训练样本的多少导致的。

找到与样例相关的特征,有利的特征能够加快学习算法的训练反之则会对学习算法造成误导,所以这一步是至关重要的。这就要看是否对这种样例的特征值的选取有足够的了解,这样会对最终算法的性能造成巨大的影响。

用选好的特征通过固定不同的自由参数值来训练学习算法。对于这些参数的每一个值,算法都会从假设集中选择一个不同的假设。我们从这些假设中选择一个在验证样本上表现最好的假设。最后利用该假设对测试样本中的样本标签进行预测。算法的性能是通过使用相应的损失函数(例如垃圾邮件检测任务中的0-1损失)来比较预测的标签和真实的标签的差值。

评价一个机器学习算法的好坏不是看它在训练样本中的精确度而是看它在测试样本中的预测精准度。甚至有的学习算法已经能够在训练样本中实现了0的训练误差却在测试样本中的表现出很差的性能。这种学习算法仅仅是对有限个样本的分布的一个机械的记忆,并不适用于对未知数据的预测,这种算法的泛化能力(generalization)是极差的。具体问题的讨论将在以后的博文中论述。

四、交叉验证

机器学习概述_垃圾邮件_15折交叉验证(n-fold cross-validation),用于利用标记数据进行模型选择(算法自由参数的选择)和训练。

机器学习概述_数据_16表示算法中自由参数的向量。方法是将样本集机器学习概述_垃圾邮件_17划分为机器学习概述_数据_18个子样本集,每个样本集中样本数量是机器学习概述_机器学习_19个,其中的第机器学习概述_数据_20折的样本集就是机器学习概述_数据_21。训练方法就是每次将除了第机器学习概述_数据_20个样本集作为测试样本外,其余的机器学习概述_数据_23个样本集作为训练集对学习算法进行训练。产生了一个假设机器学习概述_垃圾邮件_24后用第机器学习概述_数据_20个样本集进行测试,最后参数机器学习概述_数据_16机器学习概述_垃圾邮件_24的平均值作为评估,叫做交叉验证误差( cross-validation error),相关的公式定义为:

机器学习概述_数据_28

,其中机器学习概述_数据_29是第机器学习概述_数据_20折中假设机器学习概述_垃圾邮件_24的误差。

机器学习概述_数据_18通常选择在5至10之间,最后通过机器学习概述_垃圾邮件_33计算出机器学习概述_数据_16的最小值机器学习概述_数据_35。在接下来,算法用于对测试样本进行检测的过程中则全部将机器学习概述_数据_35来替代机器学习概述_数据_16值。

机器学习概述_数据_18折交叉验证的特殊情况是当机器学习概述_机器学习_39时的情况,这种情况叫做留一交叉验证(eave-one-out cross-validation),也就是说每次的测试集中只有机器学习概述_机器学习_40个样本,在以后的博文中我会写到,留一平均误差是一个算法的平均误差的无偏估计。一般来说,留一误差的计算对计算机来说是花销还是蛮大的,因为它需要对机器学习概述_机器学习_41个样本训练机器学习概述_数据_18次,但对于某些算法有可能会存在一些简便运算。

机器学习概述_机器学习_43

n折交叉验证


机器学习概述_垃圾邮件_44

随着样本数量增大损失下降


五、机器学习的学习场景

       下面将简短的描述一下机器学习的学习场景。这些场景在学习者可获得的训练数据类型、接收训练数据的顺序和方法以及用于评估学习算法的测试数据方面有所不同。

  • 监督学习(Supervised learning)学习者接收一组带有标签的样例作为训练数据,并对所有未知数据进行预测。这是与分类、回归和排序问题相关的最常见场景。前一节讨论的垃圾邮件检测问题是监督学习的一个实例。
  • 无监督学习(自监督)(Unsupervised learning)学习者接收到一组没有标签的数据并对所有未知数据进行预测。这种情乱下,没有标记的样例很难对学习者所学到的算法模型的性能进行定量的评估。聚类和降维是无监督学习问题的一个例子。(博主本人在研一的时候曾经搞过一段时间的自监督,后来换了课题)
  • 半监督学习(Semi-supervised learning)学习者收到一个既有带标签又有不带标签的数据训练样本,并对所有不可见点进行预测。半监督学习在一种未标记的数据很容易获得但是有标签数据很难获取的情况下常见。应用程序中出现包括分类、回归或排序工作,都可以作为半监督学习的实例。希望通过学习者接收到未标记数据的分布能够帮助他们获得比在监督环境下更好的性能体现。分析在什么条件下才能真正实现这一点,是许多现代理论和应用机器学习研究的主题。
  • 转导推理(Transductive inference):在半监督的情况下,学习者收到一个有标记的训练样本和一组没有标记的测试点。然而,转换推理的目的是仅预测某些特定测试点的标签。转换推理似乎是一项更简单的任务,并且与各种现代应用程序中遇到的场景相匹配。然而,就像在半监督的情况下一样,在这种情况下可以获得更好性能的假设是还没有完全解决的研究问题。
  • 线上学习(On-line learning):与前面的场景相比,在线场景涉及多个回合,并且训练和测试阶段是混合的。在每一轮,学习者接收到无标签的训练点,对其进行预测并对照该点的真实标签,计算损失。设置在线集的目的是最小化所有轮的累计损失。与前面讨论的有所不同,在线学习没有分布假设。事实上,在这个场景中,实例及其标签可能是相反的选择。
  • 强化学习(Reinforcement learning):在强化学习中训练阶段和测试阶段也是混合在一起的。为了收集信息,学习者积极的与环境相互作用,在某些情况下还会影响环境,并且还会在每次交互中得到奖励。学习者的目标是在与环境交互的过程中或者一系列的活动中最大化他的回报。然而,环境并没有提供长期的奖励反馈,学习者面临着探索与利用(exploration versus exploitation)的两难境地,因为他必须在探索未知的行为以获得更多的信息和利用已经收集的信息之间做出选择。
  • 主动学习(Active learning):学习者自适应地或交互式地收集训练示例,通常通过查询oracle来请求新点的标签。主动学习的目标是实现与标准监督学习场景相当的性能,但是使用更少的标记示例。主动学习通常用于标签获取昂贵的应用程序,例如计算生物学应用程序。

六、本系列博文的后序发展

       在今后,我会陆续更新机器学习有关的博文,讲述机器学习相关算法,下述是一个后序发展的主线。

  • 概率近似正确(PAC)学习框架(probably approximately correct);有限假设集的学习保证( learning guarantees for finite hypothesis sets)。
  • 无限假设集的学习保证(learning guarantees for infinite hypothesis sets),Rademacher复杂度(Rademacher complexity),VC维(VC-dimension)。
  • 支持向量机(SVMs),间隔理论(margin theory)。
  • 核函数(kernel methods),正定对称核(positive definite symmetric kernels),表示定理( representer theorem),有理核(rational kernels)。
  • 提升方法(Boosting),经验误差分析(analysis of empirical error),泛化误差( generalization error),间隔边界(margin bounds)。
  • 在线学习(online learning),误差边界( mistake bounds),加权多数算法( the weighted majority algorithm),指数加权平均算法(the exponential weighted average algorithm),感知器(Perceptron)和Winnow算法(Winnow algorithms)。
  • 多类别分类(multi-class classification),多类别支持向量机(multi-class SVMs),多类别提升方法(multi-class boosting),一对多( one-versus-all),一对一(one-versus-one),错误修正方法( error-correction methods)。
  • 排序(ranking),SVMs排序( ranking with SVMs),RankBoost二部排序(bipartite ranking)基于偏好的排序(preference-based ranking)。
  • 回归(regression),线性回归( linear regression),内核岭回归(kernel ridge regression),支持向量回归(support vector regression),Lasso
  • 稳定性分析(stability-based analysis),分类和回归的应用
  • 降维(dimensionality reduction),主成分分析(principal component analysis),核主成分分析(kernel PCA),Johnson-Lindenstrauss引理
  • 学习自动机(learning automata),语言(languages)。
  • 强化学习(reinforcement learning),马尔科夫决策过程( Markov decision processes),计划和学习问题(planning and learning problems)。