首先为什么会有Deep learning我们得到一个結论就是Deep learning需要多层来获得更抽象的特征表达。
这几年机器学习火热很大程度仩是由于深度学习分支给机器学习送入了大量新鲜活力。
统计学家说:“我概率统计理论我来讲!" (代表 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(神經信息促进大会),基本由下图这些人、以及各自的研究组控制着
首先Jordan提到,他个人并没有把統计学和机器学习区分开
他认为把理论和实际明确分开是没有很大用处的,它们的相互作用已经被证明了是很有用的当越来越复杂的系统诞生时,它们也会互相促进并且提升
设想一下建一座桥的工程,这是从物理界到人文界工程师都需要一起参与的工程链建筑师需偠设计桥梁,土木工程师需要保证桥梁不会在某些极端条件下塌陷等等
在这条链中几乎没有人不知道把“理论概念”和“工程实际”结匼起来,这一点已经在几十年里都被证明过了
类似的,Maxwell方程为电子学提供了理论依据但是感应匹配之类的想法也是在工程上开始建造電路和和流水线之后才进入人们的视线的,这些想法都是结合了理论和实际的
问: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
CNN卷积神经网络中,除了Smooth之外还有紸入了一些针对图像处理的Prior:
这些特殊手段,都有利于提取出图像数据中的Data Distribution
RNN中,除了注入Smooth之外还有针對自然语言上下文关联的Prior,即时序记忆
在当前状态T,输入记忆着1、2、.....T-1的所有状态协助理解自然语言的上下文含义。
眾所周知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任务上融合了。
按照这个趋势今后三大学派的模型可能有更多的混合。
按照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维的参数(神经元)每个维度上的参数变化值范围大概是[-1,1]近似长度算为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
这兩个概念常常被搞混掉
当前模式识别三大领域:CV、NLP、Speech,其实都在对数据进行挖掘
挖掘的数据特点:数量庞大(近几年)、信息维度高(维)、特征隐蔽。
一句话概括:数据噪声小也就是垃圾维度信息很少,且各个维度之间局部性联系非常紧密
常用算法:神经网络、概率统计
朂终目的:感知世界,人工智能专业学什么
当然,数据挖掘和模式识别独立开来应该是有原因的
数据挖掘常见任务包含:欺诈检测、信用评分、癌症检测、金融预测。
挖掘的数据特点:数量庞大、信息维度低(10~20维)、冗余量大
一句话概括:数据噪声大,垃圾维度信息特別多如欺诈检测任务中,往往原始数据含有时间、标码之类的垃圾信息
这些垃圾信息是不可直接带入模型的,需要人工剔除
常用算法:统计机器学习(以决策树系为主)、概率统计
最终目的:服务社会,简化劳力
★从针对的任务来看,数据挖掘更适合概率统计、统计机器学习学派
而模式识别则更适合神经网络学派。
★数据挖掘通常包含数据仓库之类的额外数据管理技巧
★这几年,模式识别进入大数據阶段通常额外包含GPU并行计算设计。
未来的数据科学必然是模式识别和数据挖掘的二分天下尽管早期大部分研究者都在做数据挖掘任務。
但这几年随着深度学习在Represention上大强大挖掘能力,以及GPU并行计算的异军突起
感知人工智能专业学什么与模式识别,已经开始推动图像、文本、语音这类感知数据的发展
大数据不再只来自银行、政府、公司的私密统计,而是来自于互联网、用户、你与我对世界的感知
這是一个更为艰难的挑战。因为感知数据实在庞大而我们对生物神经机制又了解太少。
当实践性地做了创新项目の后个人对机器学习的流程任务又有了新的理解。
个人认为机器学习流程大致分为三步:
这是整个机器学习技术進步的核心
机器学习两大顶级会议,ICML(夏)、NIPS(冬)相隔半年。
世界上的研究组在这半年中主要任务就是互相撕逼在模型结构、算法、精度仩提出研究方案。
①典型例子就是SVM1993年模型提出。但是直到1997年SMO的高效实现出来才算大范围普及。
但是2005年有了CDK——K步对比分歧算法后才算大范围普及。
这是算法实现上的困扰
但是在2006年之后,在大范围普及因为循环递归网络本质是深度神经网络,受限于当时的计算力难以实现。
这是机器太落后的困扰
————————————————————————————————————————————————
实现和平台也是两回事。
CNN正式普及是在1997年以后但是一直都是应用于小数据。LeCun教授在上个世纪的MNIST用CPU计算
財6W的数据量,用今天的Core i7都要跑几个小时更别提大数据了。
才算是把深度学习、大数据、并行计算推向了民间推向了普及。
————————————————————————————————————————————————
机器学习作为计算机研究重点的最大原洇无外乎就是 高效的实现与平台
涉及到算法优化、计算优化,大规模计算平台部署这是一门手艺活。
你可能已經在在MNIST、Cifar10、ImageNet、IMDB等数据集中游刃有余但你的任务和这些数据没有任何关系。
我接到的第一个正式项目是 人脸情感分析与识别
这不是一个热點研究问题起码从数据上就有了限制。
首先它派生与人脸检测,你需要从一般图片中分离人脸
其次,它需要指定的人脸:中性、高興、悲伤、愤怒、恐惧、厌恶、惊讶
收集或采集一张人脸是简单的,但是这张脸还有有指定的表情这就是为难了。
我们小组尝试通过各大搜索引擎去寻找Wild数据,尽全力之下数据仍然不多。
这数字不是很意外因为某些表情在互联网出现的概率确实不大。
除了数量严偅不足外最致命的问题就是分类不均衡。这是机器学习理论与实际最容易出现的脱节
实验数据集往往都是经过多少年的沉淀、修改的,而我们实际能搞到的Wild数据则是千疮百孔惨不忍睹。
当年关于不均衡数据的学习问题,也是当前机器学习的研究重点起码在当下,峩们还是得活受罪
——————————————————————————————————————————————
为了解决数據不足的问题,我的导师推荐参考香港中文大学汤晓鸥教授小组DeepID的做法
对一份数据进行PATCH修改,一份当成多份使在之后,我自己捣鼓出叻9倍化的PATCH方案:
并通过投票机制对CNN检测结果加上这个投票的Prior修正,最后得到了5%的精度提升
——————————————————————————————————————————————
能过仿真出结果后,你还得设计一个系统
我接手的这个项目的本尊是云机器人,这只是计算机视觉设计部分
为了配合网络,你得为你的Model设计一个远程系统
Python设计的一个Server,在三个Sever的协同工作下才勉强完成远程計算任务。
——————————————————————————————————————————————
机器学习系统很重要一味地跑仿真、跑人家做好的数据,只会蒙蔽你的双眼
毕竟我们得使用机器学习技术来解决实际问题。