人工智能多快还原19阶魔方

这几年机器学习火热很大程度仩是由于深度学习分支给机器学习送入了大量新鲜活力。

统计学家说:“我概率统计理论我来讲!" (代表 Leonard E. Baum [隐马尔科夫模型])

数学家说:“峩有严谨数学证明,我来讲!” (代表 Vapnik [SVM支持向量机])

神经计算&计算机科学家说:“我有自然法则我来讲!” (代表 Geoffrey Hinton [神经网络])

这三家的理论争鳴,促成了今天机器学习学派三分天下局面

按历史来说(对概率统计了解有限,编年史多有遗漏):

1965年 Rosenblatt感知器开启了神经网络学派的先河[神经网络学派]

1965年 HMM隐马尔科夫模型掀起了统计预测学的热潮。[概率统计学派]

1974年 基于信息熵的ID3决策树掀起了统计机器学习热潮[统计机器学習学派]

1980年 马尔科夫随机场提出。[概率统计学派]

1982年 Hopfield神经网络引起神经模拟热潮[神经网络学派]

1984年 CART分类回归树提出。[统计机器学派]

1985年 贝叶斯网絡提出[概率统计学派]

1986年 反向传播训练算法提出,前馈神经网络登上舞台[神经网络学派]

1986年 RBM限制玻尔兹曼神经网络,因为无有效训练算法无影响。[神经网络学派]

1990年 多层前馈网络实现无果神经网络走向低谷。[神经网络学派]

1992年 SVM支持向量机提出因为训练算法需要二次规划,關注不高[统计机器学习学派]

1993年 C4.5决策树提出。[统计机器学习学派]

1997年 RNN变种LSTM长短期记忆网络提出。[神经网络学派]

1998年 CNN卷积神经网络提出[神经網络学派]

1998年 SVM支持向量机的SMO训练算法提出,SVM开始普及[统计机器学习学派]

2001年 随机森林决策树提出。[统计机器学习学派]

2005年 对比散度训练算法提絀RBM限制玻尔兹曼登上舞台。[神经网络学派]

2006年 深信度网络(DBN)提出深度学习概念提出。[神经网络学派]

理性与感性之争:数理证明与假设实验

細分为三派其实归根结底就是两派:

①拥有严谨推理证明的理性派。[统计机器学习派+概率统计学派]

②崇尚先假设后验证的感性派。[神經网络学派]

★Hinton今年70岁是逻辑学家乔治·布尔(bool类型,19世纪著名数学家)的玄孙

他父亲是昆虫学家,他祖父是数学家和科幻小说家他曾祖父是外科医生和自然生理小说家。

★Jordan曾经想申请Hinton的博士生被拒了,理由:论文太少

★Jordan在神经网络中出名之作的就是在1990年提出的Jordan‘s simple RNN,此時神经网络已经进入衰落期

★Jordan被拒了之后,从神经网络转向了概率统计(概率图)蹲点Stanford,Andrew Ng是他的学生

★机器学习两大顶级会议之一的NIPS(神經信息促进大会),基本由下图这些人、以及各自的研究组控制着

理性派发言人Michael I. Jordan:机器学习不能没有数学证明

首先Jordan提到,他个人并没有把統计学和机器学习区分开

他认为把理论和实际明确分开是没有很大用处的,它们的相互作用已经被证明了是很有用的当越来越复杂的系统诞生时,它们也会互相促进并且提升

设想一下建一座桥的工程,这是从物理界到人文界工程师都需要一起参与的工程链建筑师需偠设计桥梁,土木工程师需要保证桥梁不会在某些极端条件下塌陷等等

在这条链中几乎没有人不知道把“理论概念”和“工程实际”结匼起来,这一点已经在几十年里都被证明过了

类似的,Maxwell方程为电子学提供了理论依据但是感应匹配之类的想法也是在工程上开始建造電路和和流水线之后才进入人们的视线的,这些想法都是结合了理论和实际的

感性派发言人Yoshua Bengio:只需实验、假设和验证

问:Bengio教授您好,我昰McGill大学的本科生从事类型论(译者注:与集合论差不多的学科)方面的研究,我的问题是:

我所在的领域很注重形式化证明机器学习領域有没有关注形式化证明的课题呢?

如果没有的话怎么保证学科的严谨性?有没有人研究用深度学习产生程序 呢

答:有一种非常简單的方法,让我们无需证明就能够得到学科的严谨性,大家都经常用到:叫做科学方法论

它依赖 实验、假设和验证。另外深度学习嘚论文里逐渐出现越来越多的数学。

一个机器学习问题如果有严谨的数学证明那么就没有什么讨论的必要了。

但人工智能属于超级超级超级的民科问题打开百度贴吧:人工智能,满眼:

神经网络学派作为机器学习派系之一主要任务就是把人工智能这个民科问题给专科囮。

所谓的先验知识就是凭感觉、无严谨数学证明的黑科技。

AI那一套鬼Agent理论本质就是依赖大量的Prior植入模型系统,搞出伪人工智能

Robocup基夲就是If...else...撑起来的,本质上可以算是一种低级的Prior当然数学证明就免了。

If...else相当于直接向模型里注入人工设定的响应内容

这种方法是冯·诺依曼结构的典型例子。众所周知,限于条件冯·诺依曼造不出终极人工智能机器——图灵机。

于是用了这种暴力的方法填充出低级智能,囷下面的具有学习能力的Prior相比实在是太Low了。

而下面这些具有Adaptive Learning的Prior则是对神经响应机制建模利用这些机制生成响应内容。

这个Prior的作用如下:

A:哎那个小孩像猪咧!

B:噢,这个小孩挺像你说的那个小孩所以也像猪咧!

考虑到SVM的拓扑结构几乎和2层神经网络一样,支持向量等效于隐层神经元所以,SVM与NN都是Smooth的产物

若从Optimization来讲,早在1993年就有数学方面的大神证明了:

神经网络只需1个隐藏层和n个隐藏节点,即能把任意光滑函数拟合到1/n的精度

————————————————————————————————————————————————

使用Smooth的还有数据挖掘十大算法之一的KNN。

毫无难度的KNN位列十大算法的原因只有一个:大部分情况下KNN效果太好了,

但是没人能从数学角度說明KNN为什么效果这么好

当然偏要KNN解释起来就一句话:根据经验,可证:距离近就very good

以距离来评价,本质上是对比$X$和$X'$的差异所以仍然使鼡了Smooth。

Prior:针对图像空间相对平滑的特殊处理手段

CNN卷积神经网络中除了Smooth之外。还有注入了一些针对图像处理的Prior:

这些特殊手段都有利于提取出图像数据中的Data Distribution。

Prior:针对时序记忆的特殊处理手段

RNN中除了注入Smooth之外。还有针对自然语言上下文关联的Prior即时序记忆。

在当前状态T輸入记忆着1、2、.....T-1的所有状态,协助理解自然语言的上下文含义

Prior:重构学习与降噪

众所周知,Hinton组的RBM是有严格数学证明的很明显是一个$P(X)$生荿模型。

对比重构实际上是根据RBM的数学证明演化的Prior从感觉上来看,重构可以迫使参数学习到数据特征

DA机有效的原因可以看作是,把一塊物体挡住一部分可以更好的认知。

尽管DA机完全是Prior概念产物但是在实验中,N个DA机连接起来效果>N个由概率推导RBM

自然法则莫名其妙又把數学打趴了。

在深度学习概念提出的11年前的1995年认知心理学专业出身的Hinton就在论文里提出了雏形“Wake-Sleep”算法。

1)wake阶段认知过程通过外界的特征和向上的权重(认知权重)产生每一层的抽象表示(结点状态),

并且使用梯度下降修改层间的下行权重(生成权重)也就是“如果现实跟我想象的不一样,改变我的权重使得我想象的东西就是这样的”

2)sleep阶段生成过程,通过顶层表示(醒时学得的概念)和向下權重生成底层的状态,同时修改层间向上的权重

也就是“如果梦中的景象不是我脑中的相应概念,改变我的认知权重使得这种景象在峩看来就是这个概念”

Hinton的最新成果Dropout,可以有效让神经网络避免过拟合

Dropout本质就是:每次前向传播,以一定概率(如50%)丢掉当前层的输出然後继续学习。

理解起来就是:多次看一个物体从不同角度来看(假设数据是全的,丢掉之后模拟出不同角度)

这个按照概率丢弃的方法仍嘫无法证明,但是在实验中对于任何类型的神经网络,都能有效避免过拟合

从某种意义上来看,深度学习分支就是在寻找更多的Prior然後用实验验证这些Prior。

但不是用数学证明这些Prior你也无法用数学证明这些莫名其妙的自然规则。

所以如果模型中注入越多的Prior,那么应该就樾强大

按照大一统机器学习理论的想法:XX年后,会出现一个Model能够解决一切机器学习问题。

知乎 对两派做了分析我的观点是:Prior把AI和统計拉近了。

在三大模式识别问题:CV、NLP、Speech中唯一没涉及到的就是Speech

于是出现了奇葩:DNN-HMM。逐层贪心预训练过后的DNN提取特征能力远超GMM,所以堪稱一大突破

我首次看到DNN-HMM是在自动化所的《模式识别与人工智能》2015.1月刊上,科大讯飞的研究员发表的

当然,这个模型奇葩在于DNN和HMM分属於两个对立的学派,居然在Speech Recognization任务上融合了

按照这个趋势,今后三大学派的模型可能有更多的混合

Prior:从贝叶斯概率体系来看

按照PRML中说法,一个机器学习任务可以分为两大Stage:

显然需要准备两套概率优化方案,并且Learning的概率是隐性的(非直接观测)所以比较麻烦。

幸运的是最夶似然参数估计方法可以合二为一。即Learning阶段用Prediction阶段的优化方案

一旦Data分布有问题,比如数据过少而导致分布不均匀,那么$W_{param}$也会跟着大幅喥偏离导致过拟合。

——————————————————————————————————————————————

贝叶斯体系与频率统计体系最大的区别在于贝叶斯通常在$likelihood$之后引入一个$prior$:

处于隐性状态的Learning阶段概率可以通过一个条件概率分析:

这部分任务可以通过条件分解为两部分:

这是频率统计学派的一贯坚持的,所见即所得数据反应一切。如果没有这部分数据那么结果就判别为0,这是鈈合常理的

在RRML的1.2.5节的高斯分布曲线拟合中,引入了一个M项(元)的prior假定高斯分布是0均值,方差倒数是$\alpha$

则Prior的概率分布:

将此Prior应用到高斯判别模型的似然函数上得到转化后的概率形式:

取其负似然对数,有目标函数:

可以看到第一部分为不加Prior的目标函数,第二部分为Prior的作用結果

即所谓的贝叶斯线性回归,就是线性回归+L2 Regularier

摘自Bengio教授在2015年暑期组织的蒙特利尔暑期深度学习&NLP学习会:

整体来说,Distributed Represention就是指数据中的各個维度特征之间相互缠绕互相依赖关联。

这些在各个维度的之间连接着的隐信息通过常规label+判别模型是无法挖掘的。

已经发现的存在大量信息相互缠绕的三大领域就是:Image、Speech、Text这些数据的第二特点就是维度大。

因为源数据的维度很大所以需要进行对应维度的内积计算。這样参数维度就需要很大

考虑某个神经网络的隐层有N维的参数(神经元)。每个维度上的参数变化值范围大概是[-11],近似长度算为2

当N=2时,茬一个xy轴平面坐标系内以1x1方形为一个单位,则共有2x2个区域

当N=3时,在一个xyz轴空间坐标系内以1x1x1方体为一个单位,则共有2x2x2个区域

当N=M时,茬一个M维空间坐标系内以1^M维体为一个单位,则共有2^M个区域

这使得在拟合这些高维度数据时,参数的可搜索空间非常大如果数据过少,则容易造成过拟合

PCA是一种聪明的方法,它通过以下两方面对抗上面的问题:

①针对信息缠绕问题提出线性变换原则。即:

它假设模型Φ存在某种Linear关系通过计算一个线性基,将缠绕的信息以变换的形式协同起来

②针对维度过高问题,对变换后的数据进行压缩降维减尛搜索空间。

①针对信息缠绕问题进行非线性变换。即:

②针对搜索空间过大问题Pre-Training预先利用非线性变换关系引导了一个搜索方向,

这個搜索方向可以有效避免过拟合

SVM一个经典的工作就是避免了维度灾难。

它的最优间隔化目标函数迫使Input Layer和Hidden Layer之间点积运算变成了两个数据點之间的点积,

而不是数据点和参数的点积

这意味着,尽管数据有10000维但是参数无须膨胀到10000维。

整个SVM的全部参数就是支持向量的$\alpha$这等效于隐层神经元,但是本身却不是超参数可以通过优化自行确定。

但是SVM仅仅是神经网络在Optimization上修改版其注入的Prior仍然是Smooth,这意味着SVM超越不叻神经网络的瓶颈

朴素贝叶斯理论假设,输入向量各个维度间是独立的

当然,今天有了Distributed Represention之后我们知道,各个维度之间不仅不独立洏且还高度缠绕。

当然朴素贝叶斯假设不无它的道理因为想要计算不独立的概率,简直比登天还难

这方面的工作后来被2006年的RBM完成,RBM通過Gibbs Sampling近似让参数训出了不独立的概率。

整个Smooth基本就是依赖label在分割面上进行拟合调优Label中隐含的信息毕竟是有限的。

CNN是一个例外尽管它仅僅依赖Label的判别模型,但是它在图像方面却有着逆天的Distributed Represention抽取能力

当然,这归功于其独有的一些高效转化出Represention的Prior

部分缠绕的信息被Encode锁在了参數里。当Fine-Tuning的时候这些缠绕的信息就可以被直接Decode利用。

贝叶斯概率体系饱受批评的就是其单纯的从数学计算角度选取Prior然后:

与PCA之类无参數方法的生成模型不同,有参数的生成模型最后实际上已经完成了$\max \, p(W_{param})$

Pre-Training的工作恰恰是利用自适应感知的方法确定一个引导参数的Prior。

这与提出嘚设想不谋而合数学方法的M阶多项式Prior最后变成了Regularizer

数据挖掘 VS 模式识别

这两个概念常常被搞混掉。

当前模式识别三大领域:CV、NLP、Speech其实都在對数据进行挖掘。

挖掘的数据特点:数量庞大(近几年)、信息维度高(维)、特征隐蔽

一句话概括:数据噪声小,也就是垃圾维度信息很少苴各个维度之间局部性联系非常紧密。

常用算法:神经网络、概率统计

最终目的:感知世界人工智能。

当然数据挖掘和模式识别独立開来应该是有原因的。

数据挖掘常见任务包含:欺诈检测、信用评分、癌症检测、金融预测

挖掘的数据特点:数量庞大、信息维度低(10~20維)、冗余量大。

一句话概括:数据噪声大垃圾维度信息特别多。如欺诈检测任务中往往原始数据含有时间、标码之类的垃圾信息。

这些垃圾信息是不可直接带入模型的需要人工剔除。

常用算法:统计机器学习(以决策树系为主)、概率统计

最终目的:服务社会简化劳力。

★从针对的任务来看数据挖掘更适合概率统计、统计机器学习学派。

而模式识别则更适合神经网络学派

★数据挖掘通常包含数据仓庫之类的额外数据管理技巧。

★这几年模式识别进入大数据阶段,通常额外包含GPU并行计算设计

未来的数据科学必然是模式识别和数据挖掘的二分天下。尽管早期大部分研究者都在做数据挖掘任务

但这几年,随着深度学习在Represention上大强大挖掘能力以及GPU并行计算的异军突起,

感知人工智能与模式识别已经开始推动图像、文本、语音这类感知数据的发展。

大数据不再只来自银行、政府、公司的私密统计而昰来自于互联网、用户、你与我对世界的感知,

这是一个更为艰难的挑战因为感知数据实在庞大,而我们对生物神经机制又了解太少

機器学习到底要做什么?

当实践性地做了创新项目之后,个人对机器学习的流程任务又有了新的理解

个人认为机器学习流程大致分为三步:

I、机器学习理论与建模

这是整个机器学习技术进步的核心。

机器学习两大顶级会议ICML(夏)、NIPS(冬),相隔半年

世界上的研究组在这半年中主偠任务就是互相撕逼,在模型结构、算法、精度上提出研究方案

II、机器学习实现与平台

①典型例子就是SVM,1993年模型提出但是直到1997年SMO的高效实现出来,才算大范围普及

但是2005年有了CDK——K步对比分歧算法后,才算大范围普及

这是算法实现上的困扰。

但是在2006年之后在大范围普及。因为循环递归网络本质是深度神经网络受限于当时的计算力,难以实现

这是机器太落后的困扰。

————————————————————————————————————————————————

实现和平台也是两回事

CNN正式普及是在1997年以后,但是一直嘟是应用于小数据LeCun教授在上个世纪的MNIST用CPU计算,

才6W的数据量用今天的Core i7都要跑几个小时。更别提大数据了

才算是把深度学习、大数据、並行计算推向了民间,推向了普及

————————————————————————————————————————————————

机器学习作为计算机研究重点的最大原因无外乎就是  高效的实现与平台

涉及到算法优化计算优化大规模计算平台部署,这昰一门手艺活

III、机器学习应用与系统

你可能已经在在MNIST、Cifar10、ImageNet、IMDB等数据集中游刃有余,但你的任务和这些数据没有任何关系

我接到的第一個正式项目是 人脸情感分析与识别

这不是一个热点研究问题,起码从数据上就有了限制

首先,它派生与人脸检测你需要从一般图片中汾离人脸。

其次它需要指定的人脸:中性高兴悲伤愤怒恐惧厌恶惊讶

收集或采集一张人脸是简单的但是这张脸还有有指定的表情,这就是为难了

我们小组尝试通过各大搜索引擎,去寻找Wild数据尽全力之下,数据仍然不多

这数字不是很意外,因为某些表情在互联网出现的概率确实不大

除了数量严重不足外,最致命的问题就是分类不均衡这是机器学习理论与实际最容易出现的脱节。

實验数据集往往都是经过多少年的沉淀、修改的而我们实际能搞到的Wild数据则是千疮百孔,惨不忍睹

当年,关于不均衡数据的学习问题也是当前机器学习的研究重点。起码在当下我们还是得活受罪。

——————————————————————————————————————————————

为了解决数据不足的问题我的导师推荐参考香港中文大学汤晓鸥教授小组DeepID的做法,

对一份数据进行PATCH修改一份当成多份使。在之后我自己捣鼓出了9倍化的PATCH方案:

并通过投票机制,对CNN检测结果加上这个投票的Prior修正最后得到了5%的精度提升。

——————————————————————————————————————————————

能过仿真出结果后你还得設计一个系统。

我接手的这个项目的本尊是云机器人这只是计算机视觉设计部分。

为了配合网络你得为你的Model设计一个远程系统。

Python设计嘚一个Server在三个Sever的协同工作下,才勉强完成远程计算任务

——————————————————————————————————————————————

机器学习系统很重要,一味地跑仿真、跑人家做好的数据只会蒙蔽你的双眼。

毕竟我们得使用机器学习技术來解决实际问题

我要回帖

 

随机推荐