1.4 机器学习分类 |
|
根据训练数据是否有标注,机器学习问题大致划分为监督学习(Supervised Learning)和无监督学习(Unsupervised Learning)两大类。
在社会中,我们在很小的时候就被大人教授这是鸟啊,那是猪啊,这个是西瓜,那个南瓜,这个可以吃,那个不能吃啊之类的,我们眼里见到的这些景物和食物就是机器学习中的输入,大人们告诉我们的结果就是输出,久而久之,当我们见得多了,大人们说得多了,我们脑中就会形成一个抽象的模型,下次在没有大人提醒的时候看见别墅或者洋楼,我们也能辨别出来这是房子,不能吃,房子本身不能飞等信息。上学的时候,老师教认字、数学公式、英语单词等等,我们在下次碰到的时候,也能区分开并识别它们。这就是监督学习,它在我们生活中无处不在。每个输入样本都有标注,这些标注就像老师的标准答案一样“监督”着学习的过程。
监督学习又大致分成两类:分类(Classification)和回归(Regression):
● 分类问题:标注是离散值,比如用户“点击”和“不点击”。如果标注只有两个值,则称为二分类,如果标注有多个值,则称为多分类。
● 回归问题:标注是连续值,比如如果问题是预测北京市房屋的价格,价格作为标注就是一个连续值,属于回归问题。
假如你想预测一下现在的房价,这是一个数据集,横轴是房子的大小,纵轴是房价。例如你有一套100平方米的房子,你想知道能卖多少钱,那么机器学习算法怎么帮助你呢?它会根据数据集拟合出一个函数,让函数尽可能匹配到所有的数据。当你输入房子的大小,它就会返回给你一个目前市场上比较合理的价格。这是一个监督学习的例子,是一种回归(Regression)问题,意指要预测一个连续值的输出。例如上面的房价,给定房价的数据集,对于里面的每套房子大小数据,算法都知道其对应的正确房价。
再看一个监督学习的例子,这是一个胸部肿瘤的数据集,横轴表示肿瘤的大小,纵轴表示肿瘤是否为良性的。假如有人非常不幸,胸部长了肿瘤,对应的机器学习算法就是,根据肿瘤的尺寸,估算出一个概率,即肿瘤为良性肿瘤的概率或者恶性肿瘤的概率。当然这是一个分类(Classification)问题。分类就是要预测一个离散值的输出,这里是0/1,也就是良性/恶性。
总结一下,在有监督的学习中,我们得到一个训练数据集,监督学习的训练集要求包括输入输出,也可以说是特征和目标,训练集中的目标是由人标注的。数据集中的每个样本有相应的“正确答案”,即认为输入和输出之间有一个关系。我们从给定的训练数据集中学习出一个函数(模型参数),当新的数据到来时,可以根据这个函数预测结果。根据这些样本做出预测分成两类:回归问题和分类问题。回归问题举例,例如:预测房价,根据样本集拟合出一条连续曲线。分类问题举例,例如:根据肿瘤特征判断良性还是恶性,得到的是结果是“良性”或者“恶性”。
我们事先没有任何训练数据样本,需要直接对数据进行建模。比如去参观一个画展,我们对艺术一无所知,但是欣赏完很多幅作品之后,我们面对一幅新的作品之后,至少可以知道这幅作品是什么流派的吧,比如更抽象一些还是更写实一点,虽然不能很清楚地了解这幅画的含义,但是至少我们可以把它分为哪一类。
在无监督学习中,我们没有属性或者标注这个概念了。也就是所有的数据都是一样的,没有什么区别。所以在无监督学习中,我们只有一个数据集,没人告诉我们应该怎么做,我们也不知道每个数据点是什么意思。它只告诉你,这里是一个数据集,你能在其中找到某种结构或者规律吗?
基于给出的数据集,无监督学习算法可以给出不同的聚类,这就是所谓的聚类算法。举个例子,给定一组不同的个体,对于每一个不同的个体,检测它们是否拥有某个特定的基因,然后我们运行一个聚类算法,把不同的个体归入不同的类,这就是无监督学习。因为没有提前告诉我们的算法,这种基因类型具体属于哪一类的人,我们只是告诉算法这里有一堆数据,我也不知道这些数据是什么,但是你要帮我自动找到这些数据中的类型。
无监督学习使我们能够解决那些事先不知道结果的问题。训练样本没有标注,无监督学习解决的典型问题是聚类(Clustering)问题。虽然我们并不知道变量的影响,但是我们可以从数据中提取结构。我们可以根据数据中变量之间的关系对数据进行聚类,从而得出这种结构。比如对一个网站的用户进行聚类,看看这个网站用户的大致构成,分析一下每类用户群的特点是什么。
总结一下,无监督学习就是:输入数据没有被标记,也没有确定的结果。样本数据类别未知,需要根据样本间的相似性对样本集进行分类(即聚类,Clustering),试图使类内差距最小化,类间差距最大化。在实际应用中,不少情况下无法预先知道样本的标签,也就是说没有训练样本对应的类别,因而只能从原先没有标注的样本集开始学习分类。
这里先解释一下强化学习这个名字。为什么叫强化学习呢?因为这个过程是不断重复、不断强化认知,英文Reinforcement Learning中的Reinforcement更准确的中文翻译就是“强化”。
这里最关键的因素是三个:智能体(Agent)、状态(State)和奖励(Reward)。对于Agent来说,自身具备的选择决策的能力,叫作策略。这个策略意思就是,观测到了环境现在处于什么状态,而选择做出什么动作来。现在智能体处于一个很暗的环境之中,它并不知道这个环境里面到底是什么,我们希望它能够通过和环境打交道来适应这个环境,学会做什么动作才是最好的。这个智能体不是做一次决策就完成了学习的过程。实际上,它要做的是一个序列的决策。我们怎么评判智能体策略的好坏呢?评判的形式就是,它能拿到的奖励会有多大。每一步都可能有奖励,所以评判的形式是把总的奖励加起来看看它有多大。
为了更好地认识强化学习,我们通过一个现实世界中与其类似的场景进行理解。如图1-16所示,使用强化学习来训练狗的一般过程。
在这种情况下,强化学习的目标是训练狗(Agent代理)在一个环境(Environment)中完成一项任务,这里的“环境”包括狗所处的物理环境和训练者。首先,驯兽师发出一条命令或指示,狗会观察(Observation),然后狗会做出反应。如果动作接近期望的行为,训练者可能会提供奖励(Reward),如食物或玩具,否则,将不提供任何奖励或提供负面奖励。在训练开始的时候,狗可能会做出更多的随机动作(Action),比如当命令是“坐下”时,它会翻身,因为它试图将特定的观察与动作和奖励联系起来。观察和动作之间的这种关联或映射称为策略(Policy)。
图1-16
从狗的角度来看,最理想的情况是它能对每一个提示做出正确的反应,这样它就能得到尽可能多的奖励。因此,强化学习训练的全部意义在于“调整”狗的策略,使它学习期望的行为,从而获得最大的回报。训练完成后,狗应该能够观察主人并采取适当的行动,例如,当命令它“坐下”时,它应该使用它“发展”出的内部策略来“坐下”。
强化学习同样没有标签(Label),但是拥有回报函数(即奖励)来判断你是否更加接近目标。例如让学生搜寻某个正确答案,学生靠近正确答案,就进行奖励—比如给一个棒棒糖,如果更加偏离答案,就被扣一分,久而久之,学生会越来越靠近正确答案。