人工机器:作为归纳系统的深度学*
深度学*为深度神经网络机器学*。07年最先引起注目的是DNN,在语音识别上有突出的表现;深度CNN在机器视觉领域的超常表现引领模式识别领域科学界和工业界的潮流,基于图像数据本身的二维结构天然适合CNN处理;RNN对时序和变长数据的处理优势促使语音识别和视频分析又有较大发展;此外可应用于增强学*的新的深度网络形式可以完成游戏策略训练过程,提供端到端的 模型训练方式:DeepMind用ReinforcementLearning玩游戏。
原文链接:专家深谈:深度学*成功的启示,以及,为什么它不能解决全部AI问题?
本文对原文有少量引用,观点不尽相同。
作为归纳系统的深度学*
AI的一个重要理论分支为模式识别,其中另外一个理论系统为专家系统;模式识别分离处基于ND系统的模式识别和基于数据的模式识别即是机器学*;机器学*有众多方法,大多数分类器在数学模型上可形式化为不同形式的神经网络。
理论上:一个分类模型发展到更多的类和更精准的回归/识别准确率,需要极其复杂的函数映射,可以将问题空间的问题准确映射到一维向量空间中的离散个点上。每个类别映射对应的函数形成的函数丛极其复杂,而特定结构的集成学*算法只能描述特定类型的函数映射,结构上难以灵活完成此任务。
形式上:特定结构的神经网络理论上可以以任意精度逼*任意复杂的函数映射,只要参数足够。神经网络弱化了函数丛的表象,以网络参数的形式完成函数层级映射。根据连乘的组合分析,分层的思想可在保证函数个数一致同时降低参数个数,因此在识别运算过程中降低了总乘法次数,降低计算量。此外,集成学*方法因函数映射形式固定,参数降低也只能根据在模型框架约束下进行,效果相对较差。
深度学*的优势
更多的类别,更高的精度。理论上需要更复杂的函数丛,因此需要更多的数据进行训练,在训练过程中需要大量的计算。
集成学*的思路是由少到多,以此解决多类分类的精度问题,而深度学*以逐层分解的思想来解决类别问题和精度问题,最终表现为相同效果的模型深度网络的参数更少,这样在分类 和回归的时候计算量更小。此外,VC维作为模型学*能力的描述,发现集成学*模型有其固有的约束,在超多类分类和精确度上都有特定的工程化困难。
大数据不是深度学*的特性,只是多类和高精度的必然。但不可否认,即使训练相同的类数和精度的模型,深度学*比集成学*方法仍需要更多的数据,模型训练时也需要更多的计算量,这是由神经网络的本质所决定的。
优势:不受限制的VC维带来更多类的识别能力,以及分层思想带来更快的分类速度。
深度学*走*人工智能
AI的标准测试为图灵测试,即所见即所得。ANN多年未靠*AI,而DNN为何被称为希望。因为整个智能可以简单地划分为分类和决策过程(分类+触发器),更高级的智能意味着感受更复杂的环境,得出更精确的判断和决策(更细的粒度、更小的损失),形式上类似于实现更多的分类。
在数学默描述上有相似之处,DNN参数的减少带来的超多类的识别在特定的领域足以覆盖简单的智能范畴,并可以看似无缝的领域集成,因此DNN被称为AI的希望。此外,网络层状结构更接*于人类已知的智能决策过程,更被注入更多接*智能结构的希望。
第一哲学原理:世界并不是以小包的形式来到我们面前,但智慧代表着我们对他们怎么划分以及怎样应对和决策,更高的智慧要求更精细的划分,整个哲学即是找到完备的划分以及应对完备划分的通用决策策略。
特征学*与结构学*
深度学*以“数据驱动”范式颠覆了“人造特征”范式,完成“特征学*”,这是一个重大的进步。但与此同时,它自己又陷入了一个“人造结构”窠臼中。06年hinton教授发表在nature上的最初的论文,多层压缩映射。给出的深度学*的方案是无监督学*获取网络结构,之后再通过有监督学*优化参数,DNN网络的引爆点恰恰是结构学*。大量利用未标记数据学*网络结构是深度学*最初的构想。
但无论Hinton教授组最初设计的AlexNet,还是后来的VGG,GoogLeNet,ResNet等等,都是富有经验的专家人工设计出来的。给定一个新问题,到底什么样的网络结构是最佳的(如多少卷积层)却不得而知,这在一定程度上阻碍了深度学*在更多智能任务上的普及和应用。因此,同时学*网络结构和网络参数是一个值得大力关注的研究方向。
而2006年Hinton教授等人倡导的却恰恰是利用无监督学*来对深层神经网络进行预训练。利用超量的数据学*网络结构是一个更耗费时间和计算能力的事情。此后,特别是DCNN兴起之后,无监督的预训练似乎已经被很多研究者所抛弃(特别是在CV领域)。
直接从大量无监督数据中学*模型确实是非常困难的,即便是人这部“机器”,也有“狼孩”的例子警告我们“无师自通”似乎是不现实的。但“少量有导师数据+大量无导师数据”的模式也许是更值得大力研究的。
人工智能与局部最优
古老的哲学难题里有一个重要的人生哲理的隐喻,推广到了人生意义的所有选择与价值讨论,即是走过一遍的麦田问题,如何选取最大的麦穗。当然以这个哲学问题讨论最优是不恰当的,时间线上更具有未知的复杂性。而面对更多的约束函数,如何选取最优解,当全局优化计算能力不够时,分治法是解决问题的一般方法。
天然的人工智能永远是局部最优的,让一个人变得聪明比让一个机器变得聪明更加困难。从工程学的角度看,复杂问题的解决思路永远是分治法,复杂度分解是构架师最先掌握的技能,把大的问题分解为简单、清晰的子问题,逐个解决,得到最后的解。尽管从深度学*的视角来看,其劣势是明显的:子问题最优未必意味着全局的最优,每个子步骤是最优的也不意味着全过程来看是最优的。但对于智能系统来说,这是一般的解决问题的思路。
哲学用离散性来分析问题域,而机器学*模型引入非线性来表示问题复杂度。在机器学*的范畴里,众多复杂问题本质上是高度非线性的,而深度学*实现了从输入到输出的非线性变换,这是深度学*在众多复杂问题上取得突破的重要原因之一。
在深度学*之前,众多线性模型或*似线性模型曾大行其道。特别是从上个世纪90年代开始,以判别式降维为目的的线性子空间方法得到大家的重视,如主成分分析,Fisher线性判别分析,独立成分分析等。后来,为了处理非线性问题,Kernel技巧、流形学*等非线性处理方法相继得到重视。其中Kernel方法试图实现对原始输入的非线性变换,但却无法定义显式的非线性变换,只能借助有限种类的kernel函数,定义目标空间中的点积,间接实现非线性。
而2000年之后曾一度广受重视的流形学*方法则试图通过对样本点之间测地距离或局部邻域关系的保持来学*非线性映射,遗憾的是这类方法难以真正实现对非训练样本的显式非线性变换。而深度学*则通过作用于大量神经元的非线性激活函数(如Sigmoid或ReLU),获得了可以适配足够复杂的非线性变换的能力。
深度学*更强调端到端的学*(end-to-end learning),即:不去人为的分步骤或者划分子问题,而是完全交给神经网络直接学*从原始输入到期望输出的映射。相比分治策略,端到端的学*具有协同增效(synergy)的优势,有更大的可能获得全局上更优的解。当然,如果我们一定要把分层看成是“子步骤或子问题”也是可以的,但这些分层各自完成什么功能并不是我们预先设定好的,而是通过基于数据的全局优化来自动学*的。作为归纳系统的深度学*
整个机器学*系统,现有流行的CNN以及各种变体,用于语音和视频处理的RNN,“特征学*”以及“结构学*”,都是一种归纳学*。通过大量标记数据训练,使用梯度下降法得到一个逼*精确的回归模型,则完成学*过程,这也正是监督学*的精髓所在。而非监督学*可以视为非人为设计结构的数据驱动归纳系统,由数据自动学*调整模型的结构,作为一个数据驱动的模型归纳系统。
归纳与演绎以及学*与泛化
从一般原理出发进行演绎是人类的另一重要能力,特别是在认知和决策过程中,我们大量依赖演绎推理。而演绎推理在很多时候似乎与数据无关。例如,即使不给任何样例,我们也可以依赖符号(语言)描述,来学会识别之前从未见过的某种物体。这样的zero-shot学*问题看似超出了深度学*的触角范畴,但也许未必不可企及。例如,*年来越来越多的基于深度学*的产生式模型正在努力实现从符号(概念)到图像的生成。
往DNN里面塞入成千上万个苹果的图像,必然可以让模型识别在图像二维张量空间*邻分布的所有苹果。但一个小孩子也许只见过一个苹果,就会知道以后见到的水果是苹果还是不是苹果,而这个智能过程隐藏了未能分析到的特征归纳和演绎过程,这个过程到底能不能被深度学*所最终模仿,也许是深度学*能不能最终靠*AI的本质能力。