应用于实时视频通讯的深度学习算法

本文整理了声网首席科学家钟声,在 RTC 2018实时互联网大会上的干货演讲。如下为演讲内容,如须要 PPT 与演讲视频,请于文末获取。
算法

做者简介:钟声,现任声网首席科学家,北京大学数学系本科和博士毕业,美国马里兰大学自动化研究中心博士后。约有 100 项发明专利。曾是 MPEG/JVT (H.264) 与 INCITS 主要成员,IEEE 成员,并发表了 30 余篇学术论文,内容覆盖了模式识别、视频编解码、计算机视觉等技术领域。曾任美国博通公司资深主任科学家和技术总监、华亚微电子公司技术副总裁、海信集团芯片公司总经理等职。
网络

欢迎访问 RTC 开发者社区,与更多 RTC 开发者交流经验。 
并发



众所周知,深度学习在实时视频通讯端到端系统里有不少的应用,好比说咱们用它作超分辨率,能取得比较好的效果;咱们用它作图像恢复,也能取得比较好的效果。若是说说起挑战的话,在支持移动端的应用里,咱们必须考虑复杂性的限制,必需要以一个小的模型,可以在移动平台上实时运行,并且功耗、CPU 占比都获得合适的限制。另外应该在相对合理的数据集上取得比较好的学习效果,让它的泛化能力很强。函数

简单展现一下结果,咱们用传统的算法获得的效果一般比较模糊,基于深度学习的算法咱们则能恢复出更多细节、甚至生成出一些细节。学习

从计算量来看,咱们目前能作到把 480x360 放大到 960x720 在 iPhone6 的 GPU 上达到 120fps,使得复杂性获得比较有效的控制。优化

咱们用生成对抗网络的方式来作超分,生成对抗网络最近两三年比较热,在人工智能学习算法的学术会议上,这两年甚至达到了 2/3 以上的论文都是跟生成对抗网络有关。生成对抗网络一般包括一个生成器和一个判别器,生成器尽可能模拟真实数据,要像真实数据同样来欺骗判别器,让判别器认为生成的数据是真实的,符合真实数据的分布。判别器的任务正好相反,它要尽可能的让生成的数据通不过考验,这个标准越高,通不过的几率就越高。因此生成器和判别器在彼此的矛盾冲突中共同进步,最终达到判别器也判别不出来是真是假这样一个程度。编码

生成器就是把一个随机的分布,一个噪声 Z,通过生成器以后产生一个图像能跟真的很像。下图形象地表示生成器在逼近真实数据的分布,绿色是这个模型产生的分布,在相互矛盾冲突之中逐渐达到真实数据就是黑色虚线的分布。Z,就是我刚才说的,好比说一个随机变量,它能生成出咱们想要的结果,从公式上说实际上生成器在作一件事,它是使判别器犯错的几率最大,就是判别器分不出真假,分不出生成东西是假的,就是要让它犯错。人工智能

这个判别器,它是要首先最大化一个真实数据为真的这个几率,最小化生成器为真的几率就是我刚才说的矛盾冲突,用公式也是能够表示出来的。这个判别器的最佳解是有数学解的,就是达到纳什均衡。把这两个生成器和判别器综合到一块儿就是一个价值函数的最大最小优化。设计

这个有什么问题?这个生成器为了经过判别器的检验,就找了一些它比较好生成的模式来生成,因此训练完以后好比就大几率生成 1,由于 1 很好经过,就是一竖,因此生成器的学习某种意义上会耍点小聪明,它会试图学习那些最容易学的样本,多产生一些容易判对的样本,这就是生成器在作的情形,但这是不理想的情形。orm

换一个图来看,好比分布是一个均匀的圆,生成器可能最后收敛到某一个地方,总收敛到某一个地方也总经过。判别器由于总经过,网络状态最后就收敛这么一个情况。生成器比较难于生成这种多模态、有多个聚类的分布,咱们把这个现象叫模式坍塌。

具体的挑战涉及什么,我简单说一下,咱们怎么样缓解这个模式坍塌,就是使得生成器别陷入耍小聪明骗过了判别器的状态。第二是咱们给定一个卷积神经网络,它表现有多好、学习能力有多强。换句话问,咱们给定一个深度学习的任务,深度卷积神经网络能作到多小,还能达到比较好的效果。


为了下降模式坍塌出现的几率,首先一般会要求加一个局域的限制,要求生成器不只要骗过判别器,并且要让它带有噪声的输入要像真实的样本,这样的话生成出来跟真实样本不会差太多。就至关于在损失函数上,加了一项,生成的东西要跟目标像,即监督学习。

再换一个角度看,实际上深度学习的神经网络,它是一个流形,这个流形是一个拓扑空间,能把流形同胚映射到 N 维的实数空间,同胚映射的意思就是正映射和逆映射都是连续的。我简单说一下这个概念,好比一个三维空间中的曲面,是一个二维的流形,从编码的角度来讲,它能够对应一个隐空间,隐空间是二维的,正映射是降维,是个编码的过程,或者在分类的问题里咱们会试图在隐空间里分的更好。反过来说从隐空间到流形就是变成一个生成器,就是解码的过程,从精简的数据恢复到它看起来的外观是咱们但愿的样子。

这个曲面在三维空间,咱们叫环境空间。Wasserstein 设计了一个生成对抗网络其实也有不少层,到达十层的网络。他要作的事情就是把两个高斯分布:一个在零点,一个在 40×40 的地方,把分布学会。结果发现这个多达十层的一个深度学习网络竟然学不会,当收敛以后表现为橘色这些点,就是最后收敛的状态。当数据分布有多个聚类或者多个峰值混合分布的时候,这样的流形对生成对抗网络是有挑战的。

卷积神经网络是什么?咱们来看基于矫正的线性单元(ReLU)的卷积神经网络, 它能够当作是一个分段线性的映射,咱们看这几个经常使用的激活函数其实都是分段线性,无论有参数仍是随机的,都是分段线性的一个映射。

因此这个流形就被这些分段线性的映射分红了不少子空间,分红不少小的立方体,因此这个流形通过编码器以后就变成不少小空间,都是分段线性的,是多个小的多面体。

怎么理解这个模式坍塌是怎么来的?当编码器 E,把流形 M 映射到隐空间 E(M)以后,它的分布每每是极其不均匀的,在这个不均匀的奇异分布里要进行分类或者控制都是很难的。提一个问题,咱们是否能引入另一个隐空间,它能映射到 Z,与生成器 G 复合起来 G*T,能把这个 Z’分布比较比如较均匀的分布映射回流形,这样无论作分类,仍是作采样点的控制,都应该是比较容易的。丘成桐教授等作了一些分析工做,用最佳质量映射,能把我刚才说的立方体又较好地从新映射回去。

若是不作最佳质量映射,直接应用解码器,会有问题。在编码域上进行均匀的采样(一般有规律的、好比均匀是咱们最能掌握的,非均匀的东西咱们很难控制得好),那么我把它重叠在编码域的图上,对这些采样出来的点,若是直接用生成器(也是解码器)重构,恢复出来这些点,放到原来的图上,能够看到头部很是稀疏,这个稀疏能够理解成在编码之后的隐空间用这些均匀采样点来解码,很难解出在头部也能均匀恢复的效果,这也是模式坍塌的一种。

若是加上这个最佳质量传输映射,在这个 Z’隐空间作均匀采样,再恢复。就是刚才说的把最佳质量映射和生成器在一块,恢复出来的效果就是比较均匀的。能够看到这个质量是会更好,因此这个最佳质量映射,能在均匀分布的隐空间上使得控制变得很是容易。

丘成桐教授等发现解码器和编码器在数学上有闭式公式能够关联起来,简单说只要有其中一个就能够推导出另一个,这个在数学上是保证了的。有了这个结论,用到深度学习,就是只要训练好其中一个,就经过几何计算的方法来恢复出另一个,不须要训练另一个,免除了数据的担心。但实际上高维空间中去推导最佳质量映射,是比较困难的,基本上在有限的计算资源下不太容易作到的。因此并无彻底颠覆咱们对深度神经网络的认识。

这里有一个问题,这个最佳质量映射也能够经过深度神经网络的方式来学习。第二个天然产生的问题,咱们是否是要学两次?咱们能不能一次把这个复合映射学会?显然这是颇有实际意义的问题:有两个模型把它合成一个模型。

再换一个视角来看模式坍塌,这个视角可能更好理解一点。举例子来讲,三维空间中有一个二维曲面,每个点上有一个切面,对较为规范的流形来讲这个切面应该是一个二维的平面,当这个二维的平面退化成一条线甚至是零维的一个点,这时候模式坍塌必定发生。由于退化成一条线的时候,在其法向量方向上,另一个坐标轴再怎么变都不影响结果,这是模式坍塌。退化成零维的时候更是如此了。

咱们能够在损失函数中加上另一项惩罚项,这个惩罚项表示跟一个恒等矩阵的差,这一项加到损失函数里。它试图使得切空间是满秩的,不会退化到一维或者零维,这样也能有效的减低模式坍塌的出现,这是从另一个视角看这个问题。

下一个问题,若是给了一个基于矫正分段线性激活函数(ReLU)的卷积神经网络的学习能力究竟能有多强?换句话说给定一个任务,咱们能设计多小的一个神经网络来完成任务?咱们但愿仍是能限定它的复杂性,而不是彻底开放式的摸索。这样的话多少能给咱们探索在移动设备上的深度学习算法,提供一些指导原则。

刚才我提到了编码器和解码器都是分段线性函数,解码器把立方体分的更小,立方体越多越能把缝隙填满,这个逼近的质量决定了编码器和解码器最终的效果。这个很容易理解,一条曲线若是用一段线逼近它和用四条线逼近它,四段确定逼近的更好,甚至用更多线段来无穷逼近,这个固然对原来的曲线是有必定限定的,好比是凸曲面等等。

这个矫正的复杂度,一个分段映射的复杂性是表征逼近能力的一个度量。它定义成,在 N 维的时空间上,最大的连通子集数,在每个连通子集上编码器都是线性的,说穿了是分段线性。这是表征了这个解码器的能力。一个 K+2 层的深度卷积神经网络,由它所能表征的最复杂的分段线性映射来表征。

每一组不一样的参数就定义了一组分段线性函数,固然参数不一样的时候,它的能力不一样。那么就有这么一个结论,深度神经网络的复杂性是有上界的,这是一个很好的结论。若是咱们知道咱们要学习的任务,它的复杂性是高于这个上限的时候,咱们这个深度神经网络就设计得过小,确定学很差。学很差有不少表现,好比泛化能力会比较差。无论你训练多少样本,你可能学到的分布跟实际数据的分布都是不一致的,都是有误差的。咱们能够想像在实际应用中,确定有些数据的实际效果不是那么好。

同时,它也有一个下界,下界的理解比较简单,某个权重,使得网络复杂度最小的权重。

这样深度卷积神经网络的表征能力有上界也有下界,基本回答我刚才说的那个问题。我有几点体会。一个是由于要求拓扑空间上来作同胚映射,这个限制实际上是较强的制约,其实只能学比较简单的几个拓扑结构,不能学太复杂的东西,或者只能学一个局部,一个局部学的很好,全局学起来有困难。最佳质量映射,可以有帮助,但在高维空间中计算出这个最佳质量映射,也算是一个比较挑战的事。第三个结论,给定任何一个深度卷积神经网络,必定能找到一个流形嵌入到这个它输入的环境空间中,而它的分布不能被这个神经网络学习。咱们对模式坍塌是有必定办法来缓解;对算法复杂性,咱们能有必定的办法,能使神经网络的复杂性有所界定。

若是你想了解得更加详细,点击这里获取 RTC 大会PPT 。同时,大会有两个直播回放地址:视频回放地址一视频回放地址二

相关文章
相关标签/搜索