机器学习与数据挖掘机器学习和人工智能入门

我的学习姿势很多:机器学习,学习种类略述

2017-09-14  本文已影响100人  坂本龙一

虽说站在外面看向当前机器学习领域的话,可能看到的几个概念就是人工智能、深度学习这些被媒体炒得不可开交的概念。但当你稍稍走近一些,会发现还有很多小的概念镶嵌其间,如果不仔细了解还可能被这些概念搞得头晕目眩。

比如说除了机器学习这个学习,它下面还有一大堆的各种各样的学习,深度学习、迁移学习、强化学习... 除了具体的分类外,里面很多可能只是为了一个口号。比如说深度学习现在这么火,除了它确实很有效,还有就是深度学习这个名字很能制造噱头,很有冲击力。

所以有时被这些概念忽悠进来后,却发现往往并不是那么一回事,而且真正读论文很多概念的定义也比较模糊。各有各的说法,所以刚开始吃了很多苦头,摸来摸去,还是搞不清谁是谁。但是之后读得多了,上手实践过一些,也就慢慢对这些概念有个大致了解。

于是就把这些学习姿势,做个小小的总结。

机器学习 (Machine Learning)

首先是最大的概念机器学习。机器学习说白了,就是希望能够让机器模拟人类学习,利用过去经验为未来新的情况作出有效决策的学科。

机器学习

研究的是,利用一定的学习算法,从过去获得的经验数据中,学习到一定的规律。获得一个可以实践这个规律的模型,之后这个模型在遇到新数据时能做出有效判断。

深度学习 (Deep Learning)

机器学习中的大明星,可以说是现在人工智能领域快速发展主要的驱动力量。

全称是深度神经网络学习,就是把之前的神经网络,如感知机这样的加深,有了更多的隐藏层。

过去因为模型过于复杂、计算能力不够、数据太少等原因,导致很易训练不够、泛化性不强,造成过拟合。但现在随着科技发展问题都得到了解决。

深度学习成功的关键是,它对数据特征的逐层捕捉能力,可以进行逐层训练,从简单特征到复杂特征。这些特征也能共享,比如说现在预训练好的VGG、ResNet这些模型,可以直接拿来用于各种视觉任务,并取得很好的结果。

CNN 与 RNN

其中最主要的两个网络是,卷积神经网络 (Convolutional Neural Network) 和循环神经网络 (Recurrent Neural Network).

卷积网络主要利用权共享,来对局部区域的特征进行捕捉,主要用于计算机视觉处理。而循环神经网络,则主要是处理序列数据有很强优势,可以捕捉到序列元素之间的联系,主要用于自然语言处理。

监督学习 (Supervised Learning)

先是主要学习分类,领头的必须是监督学习,现在工业界得到大量应用的都是监督学习。

监督学习主要做的是,在标注了的数据上,通过训练获得数据与标签的关系,能够预测新数据的标签。

最原始的数据,都是没有什么特定目的,对人也没什么用处。只有当人们为了一些目的要利用数据时,为了这些目的给数据贴上一些标签,于是才可以让这些数据向特定任务得以用途。

比如说猫检测器,原始的图片可能有各种信息,但我们希望能够检测出猫,就给有猫图片标注好,之后希望系统能够从标记好的数据学习,之后自动检测出猫。

监督学习设定

X是输入的数据,比如说图片,y是给这些数据的标注,有没有猫。我们希望系统学习到它们之间的关系,怎么检测出猫。

监督学习典型例子是分类 (Classification) 和回归 (Regression)。

无监督学习 (Unsupervised Learning)

对于无监督学习,相信最有名是Lecun那句,无监督学习就是蛋糕本身。因为比起标记好的数据,现实世界中更多的是没有标记的数据。如果能让机器主动利用好这些数据,那么效果将是惊人的。

无监督学习设定

无监督学习的一般设定如上,只有数据X,没有标注。要单单从这些未标记数据中学习出一定的规律出来。

一个无监督学习的例子是,比如有一个衣服厂家,有很多用户的身体资料。之后我们可以利用无监督学习,把用户数据自动分块,然后从小到大,给编上S、M、L等等。之后生产衣服,也可以按照这些数据来设计满足大量用户。于是优衣库穿惯M的我,进入Gap只能穿XS​😂​。

无监督学习典型例子是,分布估计 (Distribution Estimation) 和降维 (Dimension Reduction)。

半监督学习 (Semi-supervised Learning)

既然叫半监督学习,那自然就有一点监督学习,也有一点无监督学习。

一般设定是这样子,有一些标记好的数据,也有一些其他数据,这些数据可以是标记好的其他任务的数据,也可以是完全没标记数据,如下图。那么如何利用其他数据,来帮助学习我们需要的任务呢。

半监督学习设定

这里面我们真正想要的还是Xy的关系,问题只是对于这个任务,因为各种原因,标记好的数据太少了。需要其他帮助。

其实半监督学习定义和之后多任务学习、迁移学习等等,都有些关系。

多任务学习 (Multi-task Learning)

以上是些大的学习概念。接下来这些,一定程度上可以从属于上面大的概念。但因为目的和背后的思想不同,有些小的设定不同,也慢慢火起来,就单独说说。实际上有些都还没有一个公认的定义。

多任务学习的基本理念是,同时训练多个相关的任务,通过分享底层一些表征,使得多个任务的性能同时得到提高。但实际上,从最近 Google 的论文 One Model Learn Them All 里面,发现有些看上去完全不相关的任务,可能都对彼此性能有帮助。

多任务学习设定

基本设定是,一个输入X对应多个标签,也就是多个任务。这也印证了之前说的,数据是没有目标的,是因为人为了用它来完成某些任务,而给了特定标签。也可以用这些标签训练不同任务。

多任务学习中注重的是多个任务同时的表现

举一个多任务学习的实例,拿吴教授在他深度学习课上举得例子。

多任务学习例子

这是一个自动驾驶车的视觉识别系统,有摄像头的输入,但同时想要训练多个物体的识别能力。那么这时候,因为这些任务的相关性很高,所以就可以直接多个任务一起训练,共享底层特征。一般来说,这些任务的数据都不是很多。

虽然基本设定中,只有一个输入X, 但实际上对多个不同任务,有各自不同输入也是允许的。

迁移学习

迁移学习实际上很多方面和多任务学习很像,很多方法也能够直接拿过来用。但和多任务学习不同的是,它的主要目的是,如何利用其它数据充足的任务来提高主要任务的性能。

迁移学习也是启发自人类的一些行为方式,比如说两人学钢琴,其中一个之前没学过乐器,而另一个学过吉他,那么可想而知学吉他的会更加容易上手,因为他可以迁移一些乐理知识来学习钢琴。

基本设定,可以看见测试时只考虑主要任务。

迁移学习设定

通常迁移学习情况是,如果有一个任务有充足标记数据,可以进行充分训练。而同时有一个任务,只有很少标记数据,那么如何利用第一个任务,来提高之后一个任务性能就是主要目的。

单样本学习,无样本学习 (One-shot and Zero-shot Learning)

这两个词非常吸引人眼球,单样本和无样本,好像用很少的数据就能训练出模型。但实际上并不是指完全不要数据。这两个概念也是启发自人类的一些学习方式。

首先单样本学习,拿人来打个比方,如果给我们一个人的一张照片,那么之后见到他也能很快认出来,即使是不同角度、光线。但对于一般的学习系统就不一样了,如前面说的,有时候要得到一个很好的识别器,是需要大量各种各样的数据进行训练的。

现在的单样本学习,主要是在目标分类中,有一些分类只有一个或少数样本。这种情况下怎么学会分类出这类数据。

然后是无样本学习,同样启发自人。现实中,可能我们从未见过某样东西。但单单从他人嘴中或从书上知道了对这样东西的描述后,之后我们也能识别出来这件东西。

无样本学习,往往是在已知分类数据,还有一些相关的描述下进行训练。而之后测试时,只在一些描述下就能够识别出之前训练中没有的类别。

元学习 (Meta Learning)

比起上述单样本和无样本学习更进一步的是,元学习。之前讲的是关于学习,而元学习则是关于学习怎么学习,怎么学习出最适合的学习方法。

元学习基本流程

灵活性是学习算法一个很重要的特点。但实际上,学习算法大都是在关于数据的某种假设上建立的。这就意味着,一个学习算法可能在某个学习任务中表现很好,但是却在另一个表现很差。这也是当前很多成功学习系统如AlphaGo,往往都知识单一任务上取得很好的表现的原因。

而反过来看人类,会发现不是这样,人类往往能够利用以往经验,快速的掌握新的任务。

因此如何让智能系统利用以往的经验,不再只在单一任务上,而是同时学会新的学习方法,完成新任务、适应新环境。这样子的学习如何学习的方式,就必然是我们需要探索的了。

强化学习 (Reinforcement Learning)

最后一个与上面大多数训练设定有些不同的学习算法,也是一个未来很有望的领域,强化学习。

与之前的输入数据和标记设定不同的是,现在深度强化学习的主要设定如下。

深度强化学习

在强化学习中,主要是代理和环境之间的互动。根据当前环境,代理产生动作,动作又对环境造成影响,环境状态发生改变。之后,再根据环境,代理继续作出反应,,改变环境... 一段时间后,会根据互动情况给予代理一定奖励,最终目的是学会一套行为,使得最终奖励最大。

比较好理解的例子就是电脑游戏。我们与游戏场景互动,获得虚拟报酬。时间长了,就会形成一套自己的策略,来获得最大奖励。正因为这个类似,所以深度强化学习的很多实验都是用电子游戏训练的。

为什么在这刻意提深度强化学习,因为过去这种根据状态决定策略的系统,很多都是手工利用一系列复杂过程设计的,不光非常难,而且还不一定有效。

现在将决策部分换成深层神经网络之后,这个设计过程就会变得简单很多。

上一篇 下一篇

猜你喜欢

热点阅读