1.2 机器学习的分类及典型算法
1.2.1 机器学习的分类
机器学习算法有很多,如线性回归、朴素贝叶斯、随机森林、支持向量机、神经网络等。机器学习算法按照学习方式分类,可以分为监督学习(Supervised Learning)、非监督学习(Unsupervised Learning)、半监督学习(Semi-supervised Learning)、强化学习(Reinforcement Learning)。按照学习策略分类,可以分为机械学习、示教学习、类比学习、基于解释的学习、归纳学习。按照学习任务分类,可以分为分类、回归、聚类。按照应用领域分类,可以分为自然语言处理、计算机视觉、机器人、自动程序设计、智能搜索、数据挖掘和专家系统。
深度学习是机器学习的一个分支,它与机器学习的关系如图1-11所示。
图1-11 深度学习与机器学习的关系
深度学习的实质是深度神经网络,一般的神经网络有3~4层,而深度神经网络包含上百层,深度学习的提出和发展归功于大数据的出现和计算性能的提高。深度学习和传统机器学习的共同点是对数据进行分析,不同之处在于传统机器学习需要人工对数据进行特征提取,然后应用相关算法对数据进行分类,利用已有数据特征和数据标签(或者没有数据标签)对数学模型进行训练以达到最优,继而对新数据进行分类和预测。深度学习不需要人工对训练数据进行特征提取,直接利用深度神经网络对数据特征进行自学习、分类,因此人类也不知道机器是如何进行学习的。图1-12是传统机器学习和深度学习过程的区别。
图1-12 传统机器学习和深度学习过程的区别
1.2.2 监督学习
1.监督学习的定义
监督学习是指在给定的训练集中“学习”出一个函数(模型参数),当新的数据到来时,可以根据这个函数预测结果。监督学习的训练集要求包括输入和输出,即特征值和目标值(标签),训练集中数据的目标值(标签)是由人工事先进行标注的。
监督学习流程图如图1-13所示,其中包括准备数据、数据预处理、特征提取和特征选择、训练模型和评价模型。
图1-13 监督学习流程图
Step1:准备数据。监督学习首先要准备数据,没有现成的数据就需要采集数据或者爬取数据,或者从网站上下载数据。可以将准备好的数据集分为训练集、验证集和测试集。训练集是用来训练模型的数据集,验证集是确保模型没有过拟合的数据集,测试集是用来评估模型效果的数据集。
Step2:数据预处理。数据预处理主要包括重复数据检测、数据标准化、数据编码、缺失值处理、异常值处理等。
Step3:特征提取和特征选择。特征提取是结合任务自身特点,通过结合和转换原始特征集,构造出新的特征。特征选择是从大规模的特征空间中提取与任务相关的特征。特征提取和特征选择都是对原始数据进行降维的方法,从而去除数据的无关特征和冗余特征。
Step4:训练模型。模型就是函数,训练模型就是利用已有的数据,通过一些方法确定函数的参数。
Step5:评价模型。对于同一问题会有不同的数学模型,通过模型指标的比较来选取最优模型;对同一数学模型,通过模型指标的比较来调整模型参数。模型评价的基本思路是采用交叉验证方法。
2.监督学习的任务
监督学习有两个主要任务:回归和分类。回归用于预测连续的、具体的数值;分类是对各种事物进行分类,用于离散预测。
3.监督学习具体算法
监督学习算法发展史如图1-14所示。
图1-14 监督学习算法发展史
其中典型的监督学习算法有朴素贝叶斯、决策树、支持向量机、逻辑回归、线性回归、k近邻等,常见的8种监督学习算法的特点如表1-1所示。
表1-1 监督学习常见算法
1.2.3 非监督学习
1.非监督学习的定义
非监督学习是指在机器学习过程中,用来训练机器的数据是没有标签的,机器只能依靠自己不断探索,对知识进行归纳和总结,尝试发现数据中的内在规律和特征,从而对训练数据打标签。
2.非监督学习的任务
非监督学习的训练数据是无标签的,非监督学习的目标是对观察值进行分类或者区分。常见的非监督学习算法主要有三种:聚类、降维和关联。聚类算法是非监督学习中最常用的算法,它将观察值聚成一个一个的组,每个组都含有一个或几个特征。聚类的目的是将相似的东西聚在一起,而并不关心这类东西具体是什么。降维指减少一个数据集的变量数量,同时保证传达信息的准确性。关联指的是发现事物共现的概率。
3.非监督学习具体算法
非监督学习算法主要用于识别无标签数据的结构,常见算法如表1-2所示。
表1-2 非监督学习常见算法
1.2.4 半监督学习
1.半监督学习的定义
机器学习中的监督学习通过对大量有标签的样本进行学习,建立模型预测未知样本。然而,现实世界中有大量的无标签样本和少量的有标签样本。如果只用少量的有标签样本训练机器,学习系统往往很难具备强泛化能力,同时大量的无标签样本得不到利用,也会对数据资源造成极大的浪费。如何在少量的有标签样本下,利用大量的无标签样本改善机器学习性能,成为机器学习研究者关注的问题之一。
目前,利用无标签样本的主流技术有(纯)半监督学习、直推学习和主动学习,这三种学习方式的共同点是利用大量无标签样本来辅助少量有标签样本的学习,如图1-15所示。
图1-15所示三种机器学习方式的相同点是训练数据集中都包含少量的有标签数据和大量的无标签数据,利用这些数据对模型进行训练。不同点在于主动学习将抽取部分无标签数据,交由专家进行人工标注,将标注后的数据放入有标签数据集中,一起对模型进行训练。而(纯)半监督学习和直推学习没有专家对训练数据集中的无标签数据进行标注的过程。(纯)半监督学习和直推学习的不同之处在于训练完的模型预测的对象不同,(纯)半监督学习是预测待测数据,而直推学习是预测训练数据集中的无标签数据。
图1-15 (纯)半监督学习、直推学习和主动学习
图1-15 (纯)半监督学习、直推学习和主动学习(续)
2.半监督学习的基本假设
半监督学习的成立依赖于模型的假设,当模型假设正确时,无标签样本能够帮助改进学习性能。半监督学习中两个常用的假设是聚类假设和流形假设。聚类假设是指处在相同聚类中的样本有较大可能具有相同的标签。在这一假设下,大量无标签样本的作用就是帮助探明样本空间中数据分布的稠密和稀疏区域,从而指导算法对利用有标签样本学习到的决策边界进行调整,使其尽量通过数据分布的稀疏区域。流形假设是指在一个很小的局部区域内的样本具有相似的性质,其标签也相似。在这一假设下,大量无标签样本的作用就是让数据分布变得更加稠密,从而更准确地刻画局部区域的特性,使决策函数更好地进行数据拟合。
3.半监督学习具体算法
从不同的学习场景看,半监督学习算法可分为4大类:半监督分类、半监督回归、半监督聚类和半监督降维,如图1-16所示。
半监督分类算法的基本思想是在无标签样本的帮助下训练有标签样本,获得比单独使用有标签样本更好的分类器,弥补有标签样本不足的缺陷。
半监督回归算法的基本思想是在无输出的输入的帮助下训练有输出的输入,获得比只使用有输出的输入训练得到的回归器性能更好的回归器。
半监督聚类算法的基本思想是在有标签的样本信息的帮助下,获得比只使用无标签的样本更好的簇,提高聚类的精度。
图1-16 半监督学习算法分类
半监督降维算法的基本思想是在有标签的样本信息的帮助下,找到高维输入数据的低维结构,同时保持原始高维数据和成对约束的结构不变。
1.2.5 强化学习
1.强化学习的定义
强化学习强调基于环境而行动,以取得最大化的预期利益。其灵感来源于心理学中的行为主义理论,即智能体(Agent)在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。强化学习的主要特点是智能体和环境之间不断进行交互,智能体为了获得更多的累计奖励而不断搜索和试错。强化学习主要由5个部分组成,分别是智能体、环境、状态、行动和奖励,如图1-17所示。
图1-17 强化学习的组成
图1-17中的智能体指计算机,计算机在强化学习过程中采取行动来操纵环境,从一个状态转变到另一个状态,当它完成任务时,系统就给予它奖励,当它没完成任务时,系统就不给予奖励,这就是强化学习的核心思想。
2.强化学习的分类及算法
强化学习可以分为两大类,一类是有模型的强化学习,另一类是无模型的强化学习。有模型的强化学习有动态规划法,无模型的强化学习有蒙特卡罗法和时间差分法,如图1-18所示。
图1-18 强化学习的分类
动态规划法是实现决策过程最优化的数学方法,其主要思想是求问题的最优解,求解的大问题可以分解成小问题,分解后的小问题存在最优解,将小问题的最优解组合起来就能够得到大问题的最优解。分析思路是从上往下分析问题,从下往上求解问题。
蒙特卡罗法也称统计模拟法、统计试验法,其主要思想是首先根据实际问题构造概率统计模型,问题的解恰好是模型的参数或数字特征;然后对模型进行抽样试验,给出所求解的近似值;最后统计处理模拟结果,给出问题解的统计估计值和精度估计值。