「压缩」会是机器学习的下一个杀手级应用吗?

机器学习的研究正进行的如火如荼,各种新方法层出不穷。尽管这样,还有一个问题摆在面前,研究这些算法对于现实有什么用。

特别是当讨论起机器学习在手机和其他设备上的应用时,经常会被问到到:「机器学习有什么杀手级应用?」

机器学习工程师 Pete Warden 思考了很多种答案,包括从语音交互到全新的使用传感器数据的方法等,但他认为实际上短期内最激动人性的一个方向是压缩算法。尽管压缩算法在研究领域基本上是人尽皆知的一个方向,还是有很多人还是会对这个看法感到惊讶。在本篇博文中,Pete Warden 分享了他的关于为什么压缩算法如此有前景的看法。

当我读到一篇名为「神经自适应内容感知的互联网视频分发」(Neural Adaptive Content-aware Internet Video Delivery)的论文的时候,我意识到了这个领域的重要性。这篇文章在总结里说到,通过神经网络,在保证带宽相同的情况下,该方法能够将质量体验指标提高 43%。或者在在保证相同的观看质量下,减少 17% 的带宽使用。实际上还有很多类似研究方向的论文,比如生成式压缩(https://arxiv.org/pdf/1703.01467.pdf )和自适应图像压缩(https://arxiv.org/pdf/1705.05823.pdf ) ,但为什么没有听说到更多的关于压缩算法的机器学习实际应用呢?

目前还没有足够的计算能力

所有这些基于机器学习的压缩方法都需要相对较大的神经网络,并且所需的计算量与像素数量成正比。这意味着高分辨率图像或者高帧率视频需要更多的计算能力,可能远远超过当前移动电话或类似设备能够提供计算量。目前大多数CPU能够处理每秒几百亿次的算术运算,而在高清视频上运行机器学习压缩算法很容易就需要十倍以上的计算量。

好消息是现在有了一些新的硬件解决方案,比如 Edge TPU 等,在未来可能能够提供更多可用的计算资源。我希望我们能够将这些资源应用于各种压缩问题,从视频和图像以及到音频。

自然语言是最终极的压缩

我认为机器学习非常适合于压缩算法的另一个原因是,我们最近在自然语言处理中得到了很多有趣的结果。如果你仔细琢磨图片的话,其实是可以将图像描述看作是图片的一种终极压缩方法。我一直以来都希望创建一个项目,一个能够以每秒一帧的速度给照相机拍下的图片配上描述文字,之后将这些描述文字写入到日志文件中。通过这个就能够得到一个非常简单的故事,讲述着相机随着时间的推移看到了什么。我认为这就可以看作一个能够叙事的传感器。

我将这种东西叫做压缩的原因是,我们其实可以使用一个生成神经网络来根据字幕生成图片。这个生成出的图片并不一定要与输入图片完全一样,只要它们具有同样的意思就可以了,这就可以看作是一个解压缩算法。如果想要输出的结果与输入尽可能相似的压缩算法,可以参考图像风格化的算法,将图片压缩为每个场景的轮廓线。这些算法与传统压缩算法的共同之处在于,它们找到了输入中对于我们人类最重要的信息,而忽略了其他的细枝末节。

不仅仅是图像

语言世界也有类似的趋势。语音识别技术正在迅速改进,合成语音的能力也在迅速提高。识别过程可以看作是将音频压缩为自然语言文本的过程,而合成则正好反过来。而人之间的对话可以通过将音频翻译为文字表示而的到极大的压缩。我现在还很难想象是否需要走那么远,但是似乎有可能通过我们对与语言特征的新理解来实现更好的压缩质量以及更低的带宽。

我甚至看到了将机器学习压缩算法应用到文本本身的可能。Andrej Karpathy 的 Char-RNN(https://github.com/karpathy/char-rnn)展示了神经网络可以很好的模拟给定样本的风格,这种学习风格的本质与压缩问题是很相似的。如果考虑一下典型的 HTML 页面有多少冗余,机器学习压缩算法其实有很好的机会去改进 gzip。但这只是我的一个猜想,毕竟我没有机器学习文本压缩的经验。

压缩算法已经是一个有市场的项目

在我创业生涯中,我曾尝试向企业销售产品而最终失败,从中我学到了一件事情,就是如果企业已经有大量的资金分配在你所销售的产品类别上,那么进行销售会更加容易。企业对于某种产品有预算意味着公司已经做出了是否要在该项解决方案上花钱的决定,现在的唯一问题是要购买哪种解决方案。这就是为什么我认为机器学习可以在这个领域取得巨大进展的原因之一,因为制造商已经拥有专门用于视频和音频的压缩工程师,以及对应的资金和芯片制造产业。如果我们能够证明将机器学习添加到现有的解决方案中可以提高某些指标,如质量速度或者功耗,这些方法就能够很快被采用。

带宽成本需要平摊到用户和运营商身上,而质量和续航是产品的一大卖点,因此采用机器学习进行压缩相比于其他应用方向有更直接的动机。现有的研究表明,机器学习算法进行压缩非常的高效,而且我乐观的认为还有很多方法等着被发现,所以我希望压缩算法会成为机器学习的一个重要应用。