机器学习入门科普:监督学习和无监督学习都是什么?都能干什么?

自古美人都是妖i 提交于 2019-12-06 16:38:46

640?wx_fmt=gif

导读:学习究竟是什么?简单来说,学习是在外部刺激下记住大部分以往的经验,从而能够实现改变的能力。因此,机器学习是一种工程方法,对于增加或提高自适应变化的各项技术都十分重要。例如,机械手表是一种非凡的工件,但其结构符合静止定律,当外部变化发生变化时会变得没有任何用处。


学习能力是动物特别是人特有的,根据达尔文的理论,它也是所有物种生存和进化的关键要素。机器虽然不能自主进化,但似乎也遵循同样的规律。


640?wx_fmt=png

▲自适应系统的示意图

  • Adaptive System: 适应系统

  • Parameter tuner/ trainer: 参数调整/训练器

  • Input elements: 输入元素

  • Feedback: 反馈

  • Output elements: 输出元素

  • Enviornment: 环境


机器学习的主要目标是学习、策划和改进数学模型,该数学模型可以使用由环境提供的相关数据进行一次或连续多次的训练得到,利用该数学模型推断未来并做出决定而不需要所有影响因素(外部因素)的全部知识。


换句话说,agent(从环境中接收信息的软件实体,选择达到特定目标的最佳行动并观察其结果)采用统计学习方法,通过确定正确的概率分布,来预测最有可能成功(具有最小错误)的动作(值或决策)


我更喜欢使用术语推断而不是预测,只是为了避免把机器学习看成是一种现代魔法(这种看法但并不罕见)。此外,可以引入一个基本的声明:一个算法只有在影响实际数据时,才能推断出一般的规律,并以相对较高的精度来学习算法的结构。虽然术语预测可以自由使用,但其具有与物理学或系统理论相同的含义。在复杂场景下,例如使用卷积神经网络的图像分类问题,即使信息(几何,颜色,特征,对比度等)已经存在于数据中,模型也必须足够灵活以便提炼和永久学习。



01 监督学习


监督学习中有教师或监督者的概念,其主要功能是提供误差的精确度量(直接与输出值相比)。在实际算法中,该功能由多组对应值(输入和期望输出)组成的训练集提供。基于训练集,可以修正模型参数以减少全局损失函数。在每次迭代之后,如果算法足够灵活并且数据是相关的,则模型总体精度增加,并且预测值和期望值之间的差异变得接近于零。


当然,监督学习的目标是训练一个系统,且该系统能够预测以前从未见过的样本。因此,有必要让模型具有泛化能力,以避免一个常见的称为过拟合的问题。过拟合将导致由于拟合能力过剩而导致过度学习。


可以说,过拟合的主要影响是虽然能够正确预测用于训练的样本,但其他样本的误差却很大。


下图中,圆圈表示训练样本点,细蓝线表示完美的泛化(图中连接成简单的线段)


640?wx_fmt=png

  • Stock price: 股票价格

  • Days: 天数

  • Final price: 最终的价格


使用相同的数据集训练两个不同的模型,分别对应于红线和绿线。红线所表示的模型不能被接受,因为它的泛化能力差且预测精度低,而绿线代表的模型在趋势和预测分析中,对残差和泛化性能有非常好的折中。


一般来讲,前面所示的例子称为回归,其基于连续的输出值。相反,如果只有一个离散量表示的结果(称为类别,则该过程被称为分类。有时,除了预测实际的类别,最好是确定其概率分布。例如,可以训练一种算法来识别手写字母,其输出(英文中的26个字母)是分类。


另一方面,对于人类来说,当无法确定是哪一个字母时,会导致多于一个可能的结果。这意味着通过离散概率分布可以更好地描述实际输出,例如,使26个字母表示的连续值归一化,使得它们的总和为1。


下图是一个具有两个特征的数据集的分类实例,该实例是一个线性问题。大多数算法尝试通过施加不同的条件来找到最佳的分割超平面。在分类过程中,目标是相同的,即减少错误分类的数量并增加对于噪声的鲁棒性。例如,对于接近分割超平面(此处为直线)的三角形的点(其坐标约为[5.1-3.0]),当第二个特征受到噪声的影响时的坐标值远小于3.0时,略高一点的超平面就可能会错误地将该点分类。我们将会在后面的章节中讨论一些强大的技术来解决这类问题。


640?wx_fmt=png

  • Object classification: 目标分类

  • Feature 1: 特征1

  • Feature 2: 特征2


常见的监督学习的应用包括:


  • 基于回归的预测或分类

  • 垃圾邮件检测

  • 模式检测

  • 自然语言处理

  • 情绪分析

  • 自动图像分类

  • 自动序列处理(例如音乐或语音)



02 无监督学习


无监督学习方法没有任何监督,而只能基于对绝对误差的衡量。当需要对一组数据根据其相似度(或距离)进行分组(聚类)时,需要采用无监督学习方法。


例如,前面的分类图中,不需要考虑颜色或形状就可以立即识别出两个类。事实上,圆点(以及三角形)确定了一个集合,不管集合内的点之间的分离程度如何,圆点所代表的集合很容易与三角形代表的集合分离开来。这就像是当理想的样本是海洋时,仅仅考虑岛屿之间的相互位置和内部联系就可以将海洋分成几个区域。


下图中,每个椭圆表示一个聚类,类中的点用相同的记号标记,类之间的边界点(例如,与圆形区域重叠的三角形)通过特定标准(通常是权衡距离度量)来确定所属的类别。对于模糊的分类,好的聚类方法应该考虑异常值的存在并对它们进行处理,以增加内部一致性(意味着选择使局部密度最大化的分类)和群之间的距离。


640?wx_fmt=png

  • Object classification: 目标分类

  • Feature 1: 特征1

  • Feature 2: 特征2


举例来说,分类时可以优先考虑单个点和质心之间的距离,或者属于同一聚类的点和其他聚类的点之间的平均距离。图中所有边界上的三角形彼此接近,因此最近的点是另一个三角形,其属于同一类。然而,现实生活中的分类问题往往存在着部分重叠的边界,这意味着根据特征考虑某些点时具有不确定性。


分类问题还可以从概率分布的角度进行解释,可以将每个椭圆看成是用最小和最大方差界定的多元高斯分布的面积。在整个区域中,单个的点(例如一个蓝色星号标记的点)可能属于任何一个类,但第一类(左下角)给出的概率最高,因此决定了该点属于第一类。一旦所有高斯分布的方差和平均值(即形状)变得稳定,则边界点在特定的高斯分布范围内(除了在相等概率的情况下)


从技术上讲,可以说这种方法最大限度地提高了给定的某个数据集的高斯混合分布的可能性。这是在很多不同应用程序中用到的非常重要的统计学习的概念


对于涉及标记和未标记数据的问题,所使用的方法为半监督学习。当需要对只含几个完整(标记)的样本的大量数据进行分类时,或者当需要对聚类算法施加一些约束时(例如,分配一些样本到特定的聚类或从某些特定聚类中去除一些样本),一般采用半监督分类方法。


常见的无监督应用包括:


  • 对象分割(例如用户,产品,电影,歌曲等)

  • 相似性检测

  • 自动标记



03 强化学习


在无法提供实际的监督数据时,强化学习使用基于环境提供的反馈来进行学习。在这种情况下,反馈得到的更多是定性的信息,并不能确定其误差的精确度量。


在强化学习中,这种反馈通常被称为奖励(reward)(有时候,负面的反馈被定义为惩罚),而了解在一个状态下执行某个行为是否是正面的是非常有用的。最有用的行为的顺序是必须学习的策略,以便能够为得到最高的即时和累积奖励做出最好的决策。


换句话说,一个动作可能是不完美的,但就整体策略而言,它必须能够提供最高的奖励。这个概念的基础是理性的决策总是追求增加总财富。看的能力是高级agent的显著标记,而短视者往往无法正确评估其即时行动的后果,因此他们的策略总是次优的。


当处于经常动态变化的不确定环境时,无法实现对误差的精确测量,因此强化学习成为一种非常有效的方法。在过去几年中,通过在深度神经网络中使用许多经典算法,来学习玩Atari视频游戏(注:Atari video games,美国流行的电子游戏)的最佳策略,并教授agent如何将正确的动作与表示状态的输入(通常是屏幕截图或内存转储)相关联。


下图给出了训练深度神经网络玩著名的Atari游戏的示意图。输入是一个或多个连续的截图(捕获临时的动态画面就足够了),通过网络中的不同层的处理,产生表示特定状态转换的策略的输出。应用输出策略后,游戏产生反馈(作为奖励或惩罚),将反馈用于优化输出直到网络变得稳定。在这种情况下,能够实现游戏的状态的正确识别,保证输出的策略始终是最佳的。最终,总奖励超过了预定义的值。


640?wx_fmt=png

  • Environment: 环境

  • Neural Network: 神经网络

  • Convolutional /Pooling Layers: 卷积/池化层

  • Hidden Layers: 隐含层

  • Policy Layer: 策略层


关于作者:朱塞佩·博纳科尔索(Giuseppe Bonaccorso),拥有12年机器学习和大数据方面的经验,担任过公共管理、军事、公用事业、医疗保健、诊断和广告等多个业务领域的IT工程师,使用Java、Python、Hadoop、Spark、Theano和TensorFlow等多种技术进行过项目开发与管理。

本文摘编自《机器学习算法》,经出版方授权发布。


机器学习算法

作者:[意]朱塞佩·博纳科尔索(Giuseppe Bonaccorso)

当当 广告
购买

延伸阅读《机器学习算法

转载请联系微信:togo-maruko

点击文末右下角“写留言”发表你的观点


推荐语:书中有大量的代码示例及图例,便于读者理解和学习并实际上手操作。


推荐阅读


我们研究了853场世界杯比赛,发现了这几条稳赔不赚的竞猜攻略

2018世界杯数据清单:真球迷看球必备,伪球迷速成指南(附完整赛程)

到底需要多少人口,才能找出11个会踢球的?

科普:大数据、人工智能、机器学习与深度学习都是什么?有什么关系?



Q: 监督or无监督,你搞清楚了吗?

欢迎留言与大家分享

觉得不错,请把这篇文章分享给你的朋友

转载 / 投稿请联系:baiyu@hzbook.com

更多精彩,请在后台点击“历史文章”查看

640?wx_fmt=jpeg

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!