1.5 有监督学习、无监督学习和强化学习
有监督的机器学习(简称有监督学习)是最常见的一类机器学习。在有监督学习中,数据集中的每一个样本都被标注好了相应的输出(目标)值。以表1-1中的数据集为例,学习从年收入和负债到信贷偿还能力评分的映射函数,信贷偿还能力评分就是目标值。为了使用有监督学习,必须给出数据集中每一个样本的目标值。有时候,要标注目标值可能会非常困难,或者成本非常高。一些情况下,不得不请专家为数据集中的每一个样本标注正确的目标值,并为此支付给他们一定的报酬。为数据集中的样本标注目标值的好处就是机器学习算法可以利用这些目标值进行学习。在学习过程中,算法将某个函数的输出值与数据标注的目标值相比较,根据两者之间的差异(或误差)计算出该函数的拟合度,再使用得到的拟合度来指导最优函数的选择。由于这类机器学习算法使用了数据集中标注的目标值,所以它们被称为有监督的机器学习。前文选择算术运算函数的例子就属于这类有监督学习。
无监督的机器学习(简称无监督学习)通常用于数据聚类。比如,一家公司希望将它的顾客分成不同的组,以便为每一组顾客进行针对性的目标市场营销或者产品定制。在无监督学习中,数据集中并没有给出目标值。因此,算法无法直接根据目标值计算候选函数的拟合度。相反,机器学习算法尽量寻找能将相似的样本映射到相同的簇的函数,以使得同一个簇中的样本的相似度高于不同簇中的样本的相似度。注意,这里的簇并不是预先定义好的,至多也只是进行了非常不精确的初始化。例如,数据科学家可以根据数据域的具体情况设定算法需要找到的簇的数量,但是并不能显式地给出簇的大小或每一个簇中样本的特点。无监督学习算法的一般步骤是,首先初始化簇中的样本,然后对簇进行迭代调整(将某些样本从一个簇移到另一个簇)以提高簇对数据的拟合度。无监督学习使用的拟合度度量函数通常会赋予那些使得相同簇中的样本相似度更高且不同簇中的样本差异更大的候选函数更高的拟合度。
强化学习更多地用于在线控制任务,例如机器人控制和博弈游戏。在这类任务中,代理需要学会如何根据所处的环境采取合适的行为以获得收益。在强化学习中,代理的目标就是学习从对当前环境的观测和自身的内部状态(即其记忆)到它应该采取的行为之间的映射:比如,机器人应该前进还是后退,国际象棋计算机程序应该走卒还是吃掉对方的王后。代理的策略(即函数)的输出就是代理根据当前情况下一步应该采取的行为。要为这类任务创建历史数据集非常困难,因此,强化学习常常是以在线实时方式进行的:将代理置于实验环境中,并赋予其不同的策略(开始时,一般采用随机策略),随后根据环境给予它的反馈不断更新其策略。当某个行为导致了正激励反馈时,从相关的环境观测及状态到该行为的映射就会被代理的策略采纳;反之,如果反馈是负面的,代理的策略就会减少使用该映射。与有监督和无监督学习不同,强化学习的学习过程是在线和实时的,这意味着它的训练和推断是不断交替进行的。代理决定下一步需要采取的行为,同时根据来自环境的反馈学习如何更新其策略。强化学习的一个独特之处在于学习到的函数的目标输出(也就是代理的行为)与激励机制之间是解耦的。代理收到的激励取决于多个行为,有可能在采取某个行为后代理并不能立即收到不管是正面还是负面的激励反馈。例如,在国际象棋中,当代理赢得比赛时激励为+1,而输掉比赛时激励为-1。然而,在比赛进行到最后一步之前这样的激励反馈并不存在。因此,强化学习面临的挑战之一就是训练机制的设计,强化学习的训练机制需要能够将一系列行为后的激励适当反馈给代理,以使代理能够恰当地更新其策略。谷歌的DeepMind技术通过用强化学习技术训练深度学习模型来为七种不同的Atari电脑游戏学习控制策略[33],因而吸引了很多人的关注。该系统的输入是电脑显示器上的原始像素值,而它的控制策略会指出代理在游戏中的每一步需要对操纵杆执行的动作。电脑游戏代理可以与电脑游戏系统进行数千场比赛,从中学到成功的策略,而无须承担创建和标注含有正确操纵杆动作的大规模数据集所需的成本,因而电脑游戏特别适合采用强化学习。对于上述七种游戏中的六种,DeepMind系统击败了之前所有的计算机系统,甚至在其中的三种游戏中还击败了人类选手。
深度学习适用于上述三类机器学习:有监督学习、无监督学习和强化学习。考虑到有监督学习是最常用的一类机器学习,本书的大部分内容将会聚焦于有监督学习中的深度学习。但是,其中涉及的深度学习的大多数要点和原理同样适用于无监督学习和强化学习。