“王杨卢骆当时体,轻薄为文哂未休。 尔曹身与名俱灭,不废江河万古流。”react
— 唐 杜甫《戏为六绝句》(其二)算法
【不要为我为啥放这首在开头,千人千面千理解吧】api
深度学习(DL),或说深度神经网络(DNN), 做为传统机器学习中神经网络(NN)、感知机(perceptron)模型的扩展延伸,正掀起铺天盖地的热潮。DNN火箭般的研究速度,在短短数年内带来了能“读懂”照片内容的图像识别系统,能和人对话到毫无PS痕迹的语音助手,能击败围棋世界冠军、引起滔滔议论的AlphaGo…… DNN在众多应用领域的成功不容置疑。然而,在众多(负责任的和不负责任的)媒体宣传推波助澜下,一部分人过于乐观,以为攻克智能奇点堡垒近在眼前;另外一部分则惶惶不可终日,以为天网统治人类行将实现。做者君对此的态度以下图所示:网络
言归正传,若是不把DNN当作上帝/天网/人工智能终点etc., 也暂不考虑当前DL和人脑思惟之间如有若无的联系,那么DNN和K-Means、主成分分析(PCA)、稀疏编码(sparse coding或Lasso)等众多耳熟能详的模型并没有二致,都属于机器学习中特征学习(feature learning)范畴。假如硬说DNN有什么不一样,那么大概就在一个“深”字上。从数据x中学习特征y,若是(绝大多数)传统模型写成y = f(x)(即学习“一个”特征变换),DNN则能够写成y = fN (… (f2 (f1 (x)))) (即学习“若干个级联”的特征变换)。那么究竟什么使得DNN如此效果拔群?做者君本人概括了三点:app
1)空前庞大的参数(parameter)量(动辄成百上千万),远远超过以往任何模型的参数数量级,使得模型对于复杂映射(mapping)的表达能力极大加强;框架
2)端到端(end-to-end)的训练方式,克服了以往模型分模块训练(hierarchical)、各模块没有彼此优化的劣势;dom
3)前两点主要是理念上的升华,而实际中最重要的进步,是终于找到了能有效训练这样巨大模型的一套手段。尽管这些手段(如后向传播算法)难免simple & naïve,不少也缺少严格的证实和解释;然而在大数据的东风、GPU高性能计算的魔力、及无穷无尽的tricks(如dropout、batch normalization等)加持下,这条荆棘路仍是硬生生被踏出来了。机器学习
应用上的巨大成功并不能掩盖DNN自己理论缺失、“沙上筑塔”的隐忧。传统方法的优良性质和可解释性,在DNN中损失殆尽:缘由既归咎于DNN自己函数的高度非线性和非凸性,也难免受困于求解算法自己的粗糙和经验化。深度学习结构过于错综复杂、性质难以分析的“黑盒子”特质,引起了学术界的众多顾虑和好奇。从2013年开始,已经有学者陆续从不一样的角度,研究DNN和各种传统机器学习模型之间(如小波分析、稀疏表示、高斯过程、条件随机场 )的内在关系,以期理解DNN的工做原理,甚至可能从传统模型的分析方法中掘得金矿,为DNN的理论框架添砖加瓦。本文如下,仅撷沧海之一珠,主要从稀疏编码(sparse coding)角度,初步分析和解释DNN中的一些经验性成功。函数
让咱们暂时忘记DNN,从下面这个简单的带正则项(线性)回归模型看起:工具
其中XX是输入数据,YY是带求解的特征,DD是表示基(basis)。YY除了要求相对于DD能很好地表示(重建)XX外,还受到一个额外正则项r(Y)r(Y)的约束。注意这个模型看似简单,实则众多著名模型(PCA,LDA, sparse coding, etc.)均可以当作其具体例子。以上模型的求解算法能够写成一个迭代的通常表示形式 (k = 0, 1, 2,…):
Y(k)Y(k)是k-iteration的输出,L1L一、L2L二、NN是三个变换算子。这一迭代算法能够等价表示成下图中带反馈系统的形式(目标是求解系统不动点):
对上图反馈循环形式,咱们接着作前向展开(unfolding),得到一个有无限个前向传播单元的级联结构;而后再将这个结构截断(truncate),得到一个固定长度的前向结构:
上图便是一个“展开&截断”后的前向结构示意图(到k=2k=2)。首先,这一结构避免了环形结构/反馈回路的出现,全部信息流都是前向的。其次,读者能够顺着信息前进方向,逐步写出关系式(例如每一个N的输入),不难发现这一结构等价于将原有迭代算法作k步近似,得到一个有限固定迭代步数下“不精确”的回归解。更有趣的是,在不少例子中,L1L一、L2L2是带参数的线性变换,而NN是不带参数的非线性变换。咱们注意到,这和DNN的结构造成了精妙的巧合对应:若是将L1L一、L2L2看作是DNN中能够训练的“层”(layer),看作DNN中的非线性操做如神经元(neuron)或池化(pooling),那么以上“展开&截断”后的前向结构(到k=2)彻底能够看作一个k+1k+1层、有必定特殊结构的DNN。
固然,咱们也能够考虑卷积(convolution)状况下的带正则回归问题:
这一问题的形式、解法和结论都和前面的线性回归模型相仿。事实上,线性回归模型的结论将天然对应DNN的全链接层,而卷积回归模型的结论将对应到DNN的卷积层。
如今,咱们考虑引入1范数约束的稀疏性做为回归模型的正则项:
上式是经典的稀疏表示问题。对应的迭代算法形式以下:
则是著名的软门限算子(soft-thresholding), 形式以下图左所示。熟悉DNN的读者可能很容易从它的形状联想到DNN中最成功的ReLU(Rectified Linear Unit)神经元,其形式以下图右所示。既然ReLU很牛,那么咱们能不能把它请进咱们的框架里呢?
咱们的策略是,加一个对YY的非负(non-negativity)约束到原稀疏表示问题中:
这一约束的直接效果是把软门限算子的负半侧砍掉归0。进一步,咱们能够把本来软门限算子中的门限参数c,移到线性变换当中。最后迭代形式里:
一个小问题:为何能够“硬凑”一个非负约束到原稀疏表示问题中呢?首先“哲学”上,稀疏表达将“部分”线性组合为“总体”,若是这些“部分”还会相互抵消,总以为不太天然 -– 固然此属怪力乱神,不听也罢。不过生物建模上,其实早将稀疏表达和神经元编码联系了起来:稀疏特征的值对应于神经元的“激发率”(firing rate, i.e., the average number of spikes per unit time),天然而然须要非负。另外,图像处理和计算机视觉的研究者,不少都熟悉非负稀疏编码(nonnegative sparse coding, NSC)的大名;此前NSC 亦是学习视觉特征的最成功方法之一。现在风水轮流转,DNN大火,通过各类神经元的经验化设计尝试、大浪淘沙,ReLU脱颖而出 。而从前的非负性和稀疏性假设通过改头换面,又于无心识间悄悄潜伏进了ReLU中;这不能不说是个有趣的发现。
再进一步,上面那个对应非负稀疏编码的“展开&截断”前向结构,若是咱们想避免那些不“特别典型”的中间链接(事实上,这些“捷径”的设计正在成为DNN的新热点,参加ResNet等工做)和权重共享(被重复展开),一个选择是只保留最开始的一部分计算而删掉后面,即让迭代算法从初始值开始只跑一步近似:Y=ReLU(DTX–c)Y=ReLU(DTX–c):
如此便得到了DNN中最典型的构成单元:全链接层 + 偏置 + 神经元ReLU。偏置 来源于本来1范数正则项的加权;在原优化问题中,调整c即调整Y的稀疏度。不难想到,若是将非负稀疏编码换成非负稀疏卷积编码,那么一样能够获得由卷积层 + 偏置 +神经元ReLU组成的单元。这一角度对通常DNN结构的分析提供了不少意味深长的提示。这里限于篇幅,再也不展开。
最后,简单讲讲另外两种形式的稀疏性。其一是将稀疏编码中1范数换成0范数:
按照以上1范数状况下的推导结果,不难解出的形式为经典的硬门限算子(hard-thresholding)。相较软门限,硬门限容易得到零值更多、更稀疏的解,常有利于分类等任务。尤为有趣的是,这一算子在2015年的国际表示学习大会(ICLR)上被DNN研究者们“经验性”地设计出来,并被冠名以thresholded linear unit;实则未免稍稍有重造轮子之憾。另外一个更有意义的例子是:
该问题中的约束条件能够看做池化算子(pooling):即将输入中绝对值最大的M个值保留、其他归0。考虑到0范数约束问题是特征选择的经典形式之一,这也让咱们对本来被视做单纯工程“瞎凑”的池化操做的实际做用,有了更多遐想。
总结一下,咱们在这一部分都目睹了些什么:
DNN和稀疏编码的关系深入且本质;一样,它和其他众多传统机器学习模型间也逐渐被揭示出了千丝万缕的联系。做者组的最近工做还发掘了传统的一阶/二阶优化算法的结构,和今年大火的residual learning、fractal net等特殊网络结构和学习策略,一样有使人吃惊的精巧对应。除了做者组之外,诸如小波(wavelet)祖师Stéphane Mallat教授,压缩感知宗师Richard Baraniuk教授,约翰霍普金斯大学Rene Vidal教授,杜克大学Guillermo Sapiro教授,微软亚洲研究院Daivd Wipf博士…等多个一线研究组,近期也都对本方向投以极大关注,并陆续有优秀工做问世;方兴未艾,能够预见。 限于篇幅,没法尽述,部分参考文献列于文后以飨读者。从以往的特征工程/人工设计特征(feature engineering / crafted feature), 走到今天的以DNN为表明的特征学习(feature learning) + 人工设计结构(crafted architecture), 到将来潜在的特征学习(feature learning) + 结构学习(architecture learning),咱们处在变革的时代,但不是“魔法”的时代;并且这变革和进步显然才到半途,亟待提高。上述工做的核心,是从传统机器学习的角度“解释”DNN中诸多经验性的结构缘何而来;在“解释“的基础上,下一步即是”分析“结构性质,和有的放矢地”创造“新的结构。做者君本人坚信,万事非偶然;这一系列经验性的对应,实实在在向咱们展现了历史的螺旋上升,车轮转过一样的辐条。随着更多此类结构对应关系的发掘,将极大帮助咱们理解和选择DNN的最优结构,创造新的可用结构,以及引入理论分析工具。
注:本文符号按照计算机科学领域习惯,统计学科同窗务必注意和统计学习惯符号间的对应关系。
汪张扬,男,1991年出生;2012年中国科学技术大学电子通讯工程本科毕业;2016年伊利诺伊大学香槟分校电子计算机工程博士毕业;2016年加入德州A&M大学计算机科学系任Assistant Professor。更多信息见主页:www.atlaswang.com