热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

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

本文整理了声网首席科学家钟声,在RTC2018实时互联网大会上的干货演讲。如果对于演讲内容有任何希望与演讲人交流的问题,欢迎留言。以下为演讲内容

本文整理了声网首席科学家钟声,在 RTC 2018实时互联网大会上的干货演讲。如果对于演讲内容有任何希望与演讲人交流的问题,欢迎留言。以下为演讲内容,如需要 PPT 与演讲视频,请于文末获取。

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


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

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

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

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

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

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

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

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

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


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

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

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

卷积神经网络是什么?我们来看基于矫正的线性单元(ReLU)的卷积神经网络, 它可以看成是一个分段线性的映射,我们看这几个常用的激活函数其实都是分段线性,不管有参数还是随机的,都是分段线性的一个映射。

所以这个流形就被这些分段线性的映射分成了很多子空间,分成很多小的立方体,所以这个流形经过编码器之后就变成很多小空间,都是分段线性的,是多个小的多面体。

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

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

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

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

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

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

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

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

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

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

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

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

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

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





推荐阅读
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 从2019年AI顶级会议最佳论文,探索深度学习的理论根基与前沿进展 ... [详细]
  • 面试题总结_2019年全网最热门的123个Java并发面试题总结
    面试题总结_2019年全网最热门的123个Java并发面试题总结 ... [详细]
  • 深入解析国内AEB应用:摄像头和毫米波雷达融合技术的现状与前景
    本文作者程建伟,武汉极目智能技术有限公司CEO,入选武汉市“光谷3551人才计划”。文章详细探讨了国内自动紧急制动(AEB)系统中摄像头与毫米波雷达融合技术的现状及未来前景。通过分析当前技术的应用情况、存在的挑战以及潜在的解决方案,作者指出,随着传感器技术的不断进步和算法优化,AEB系统的性能将大幅提升,为交通安全带来显著改善。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 当前物联网领域十大核心技术解析:涵盖哪些关键技术?
    经过近十年的技术革新,物联网已悄然渗透到日常生活中,对社会产生了深远影响。本文将详细解析当前物联网领域的十大核心关键技术,包括但不限于:1. 军事物联网技术,该技术通过先进的感知设备实现战场环境的实时监测与数据传输,提升作战效能和决策效率。其他关键技术还包括传感器网络、边缘计算、大数据分析等,这些技术共同推动了物联网的快速发展和广泛应用。 ... [详细]
  • 通过使用CIFAR-10数据集,本文详细介绍了如何快速掌握Mixup数据增强技术,并展示了该方法在图像分类任务中的显著效果。实验结果表明,Mixup能够有效提高模型的泛化能力和分类精度,为图像识别领域的研究提供了有价值的参考。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 拼多多的崛起之路
    随着4G通信技术的发展,互联网产品从PC端转向移动端,图像传输速度更快、更清晰,智能设备的应用提升了用户体验。移动互联网的普及为拼多多的崛起提供了时代背景。 ... [详细]
  • 在多线程并发环境中,普通变量的操作往往是线程不安全的。本文通过一个简单的例子,展示了如何使用 AtomicInteger 类及其核心的 CAS 无锁算法来保证线程安全。 ... [详细]
  • 本文详细介绍了数据库并发控制的基本概念、重要性和具体实现方法。并发控制是确保多个事务在同时操作数据库时保持数据一致性的关键机制。文章涵盖了锁机制、多版本并发控制(MVCC)、乐观并发控制和悲观并发控制等内容。 ... [详细]
  • 深入浅出解读奇异值分解,助你轻松掌握核心概念 ... [详细]
author-avatar
cy45vsf
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有