PyTorch深度学习实战:从新手小白到数据科学家
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 机器学习的分类

在机器学习算法中,按照学习方式大致可以分为四大类,分别是监督学习、半监督学习、无监督学习和强化学习。

2.1.1 监督学习

监督学习利用一组带标签的数据,学习从输入到输出的映射关系f,然后将学习到的映射关系f应用到未知的数据上,用于预测未知数据的类别或数值。例如,手写字体识别任务中识别出“1”“2”“3”;垃圾邮件识别任务中识别出“垃圾邮件”和“非垃圾邮件”;情感分类任务中预测出“积极”和“消极”;垃圾分类任务中识别出“可回收垃圾”“厨余垃圾”“有害垃圾”“其他垃圾”,如图2.1所示,这类任务便属于监督学习中的分类任务,其特征是预测的标签属于离散的类别。

图2.1 监督学习中的分类任务

和分类任务对应,如果预测的标签是连续数值类型的任务,则是回归任务,如股价预测、房价预测、体重预测等,这类任务的目标值是连续的数值而非类别。房价预测回归任务如图2.2所示。

图2.2 房价预测回归任务

监督学习任务的数据都带有明确的标签,因此学习更有目的性。在监督学习任务中,通过寻找目标函数输出值与标签值的差异,利用优化器不断进行优化,可以使目标函数逐渐接近标签值,从而达到学习的目的。

基于监督学习的过程,前辈们总结出了一句话:“数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。”好的数据和特征决定了机器学习任务,因此在机器学习任务中,算法工程师会在数据收集和特征处理方面花费大量时间。

2.1.2 半监督学习

半监督学习属于监督学习的延伸,这种学习方式的输入数据小部分有标签,而大部分没有标签。现实生活中缺乏的不是数据,而是带标签的数据。搜集数据并打上标签是非常耗时、耗力的,需要大量的人力成本,对于很多中小型公司来说是不现实的。这也是半监督学习兴起的原因,它利用少量带标签的数据进行学习,在未标记数据上进行预测,有时候需要通过人工的介入,对预测的结果进行审核和确认,并打上标签,确认通过的则认为预测正确,而没有通过的则认为预测错误,再次加入训练数据中进行模型训练,以滚雪球的方式逐渐优化和提升模型的性能。

半监督学习可进一步划分为纯(Pure)半监督学习和直推学习(Transductive Learning),如图2.3所示,前者假定训练数据中的未标记数据并非待测数据,而后者则假定学习过程中所考虑的未标记数据是待测数据,学习的目的就是在这些未标记数据中获得最优泛化性能。

图2.3 半监督学习

2.1.3 无监督学习

在无监督学习中,学习的数据没有任何标识,学习是为了标识出数据内在的结构和规律。常见的无监督学习包括关联规则分析、数据降维、聚类算法、词嵌入等。

著名的“尿不湿和啤酒”就是关联规则的应用,通过挖掘顾客购物车中尿不湿和啤酒销量的关系,找出这两种商品内在的规律。

常见的数据降维算法有主成分分析(Principal Component Analysis, PCA)、t-SNE、奇异值分解(Singular Value Decomposition, SVD)等,它们在最大限度地保留数据内部信息的同时,将数据从高维降到低维,便于数据的计算和可视化。

聚类算法也是无监督学习中比较常见的算法,如K-Means聚类、基于密度的DBSCAN聚类、层次聚类算法等,它们采用不同的度量依据(如轮廓系数等)进行算法训练,将数据划分为不同的簇,通常的应用场景是噪声异常数据识别、新闻聚类、用户购买模式(交叉销售)、图像与基因技术等。

在自然语言处理中,无监督学习的应用是非常成功的,如Word2vec及GloVe算法,它们通过神经网络语言模型,学习单词在隐藏层中的向量化表示,从而得到每个单词在低维空间中的向量,简化了自然语言处理模型输入数据的维度。手写字体MNIST数据集经过降维之后的聚类结果如图2.4所示。

图2.4 手写字体MNIST数据集经过降维之后的聚类结果

2.1.4 强化学习

学习是智能体提高和改善其性能的过程,能够学习是计算机程序具有智能的基本标志。在诸多可以实现机器学习的方法和技术中,强化学习(Reinforcement Learning, RL)以其生物相关性和学习自主性在机器学习领域与人工智能领域引发了极大的关注,并在多个应用领域体现了其实用价值,最著名的就AlphaGo击败了专业棋手李世石。

强化学习的思想源于行为心理学(Behavioural Psychology)的研究。1911年,Thorndike提出了效用法则(Law of Effect):在一定情境下让动物感到舒服的行为,动物就会与此情境加强联系,当此情境再现时,动物的这种行为也更容易再现;相反,让动物感觉不舒服的行为会减弱动物与此情境的联系,此情境再现时,此行为很难再现。换句话说,哪种行为会被记住取决于该行为产生的效用。例如,在主人扔出飞盘时,狗叼回飞盘给主人的行为获得了肉骨头,将会使“狗叼回扔出的飞盘”这个行为和“主人扔出飞盘”这个情境加强联系,“获得肉骨头”的效用将使狗记住“叼回扔出的飞盘”的行为。

在给定情境下,得到奖励的行为会被“强化”,而受到惩罚的行为会被“弱化”。这样一种生物智能模式使动物可以从不同行为尝试获得的奖励或惩罚,并学会在该情境下选择训练者最期望的行为。这就是强化学习的核心机制:用试错(Trail-and-Error)学会在给定情境下选择最恰当的行为。Sutton对强化学习的定义如下:通过试错学习如何最佳地匹配状态(State)和动作(Action),以期获得最大的回报(Reward);通过对环境的观察(Observation),决定下一个动作。强化学习的过程如图2.5所示。

图2.5 强化学习的过程

强化学习不仅直接模仿了生物学习的智能模式,而且也不像其他大多数机器学习方法,智能体需要被告知要选择哪种动作。使用强化学习的智能体能够通过尝试不同的动作,自主发现并选择产生最大回报的动作。正如Tesauro所描述的那样:强化学习使智能体可以根据自己的经验进行自主学习,既不需要任何预备知识也不依赖任何外部智能“老师”的帮助。Q-Learning算法已经成为强化学习的代表,在工业机器人、教育培训、健康医疗领域都得到了应用。