被《硅谷》选中的“压缩算法”,为什么说下一个机器学习杀手应用将由此诞生...

2023-11-05 13:10

本文主要是介绍被《硅谷》选中的“压缩算法”,为什么说下一个机器学习杀手应用将由此诞生...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

640?wx_fmt=png

大数据文摘出品

编译:jiaxu、李馨瑜、云舟


移动互联网时代,人类生产的新数据正以指数级别增长,数据中心越来越大,并消耗着地球上难以想象的巨大能耗,但人类依然可能面临着“数据无处存放”的境地。


因此,让文件变小一点,这绝对是个值得投资的点子。


神剧《硅谷》剧组就选中了这个点子。在剧中,几个主角的得以创业成功的核心算法——“魔笛”即是选中了“压缩”这一多数人都能理解但对技术要求颇高的领域:允许用户在线将图片压缩至一半的大小,并依然保持其清晰度。


“魔笛算法”也一度引发了不少跟风打造属于自己的“魔笛手”,此外,包括谷歌等人工智能巨头公司近年来也在这个领域频频发力。


2016年,谷歌相关团队推出了一款叫RAISR(Rapid and Accurate Image Super-ResoluTIon)的图像压缩技术。希望以人工智能技术作为压缩路径,将图片大小压缩到源文件的1/4, 但基本不会改变图片的清晰度。


640?wx_fmt=png


尽管引来如此高的关注,但很多人还是不认可它会在未来的发展中取得压倒性的优势。谷歌的RAISR算法也被不好业内认识吐槽说“压缩一张图片耗时久”、“压缩后图片清晰度没有那么高”等等。


谷歌机器学习工程师、Jetpac创始人Pete Warden近期发布了一篇文章,认为在短期内压缩算法可能会成为机器学习应用最可能出现的杀手级应用的领域,他从“压缩”这一技术的起源开始,希望告诉大家问什么压缩技术的前景是如此的广阔。


大数据文摘对这篇文章进行了编译。


OSDI上的一篇文章“神经自适应型内容感知互联网视频传输”激发了我对这一领域的兴趣。


640?wx_fmt=png


文章链接:

https://www.usenix.org/conference/osdi18/presentation/yeo


这篇文章告诉我们:通过神经网络,在带宽相同的条件下,用户体验将能提高43%,或者在带宽缩减17%的条件下可以保持体验的质量基本不变。还有其他同类的论文将类似方法运用在了生成压缩或自适应图像压缩等方面。他们都展示出了惊人的成果。那么,为何我们不把机器学习更广泛地应用在文件压缩方面呢?


我们尚未拥有性能配套的计算设备


640?wx_fmt=jpeg


上文所提到的所有方法都需要相对较大的神经网络,并且所需的计算量与像素数量成正比。这意味着大型图片文件或每秒帧数较高的视频文件可能需要比当前广泛使用的移动设备更强的计算能力。


现行的大多数CPU每秒仅能处理百亿级的运算,而在高清视频上用机器学习进行压缩很轻易便能达到十倍于此的计算量。


当然,好消息是目前我们已经有了一些硬件解决方案,比如Edge TPU等,可以让我们看到未来达到更多计算量的可能性。我期待这种压缩方法能够运用到各种类型文件的压缩转换上,从视频到图像,到音频,乃至更多充满想象力的方式。


自然语言是终极压缩目标


640?wx_fmt=png


近来机器学习在自然语言处理中取得了大量有趣的成果。这是另一个让我觉得机器学习是较为优越的压缩转换途径的原因。


如果你稍稍观察,便会发现字幕其实是将声音压缩为图像的一种形式。我一直想做一个项目,试图创造出一种相机,每秒生成一帧字幕,并将所有字幕逐一按行输出至一个日志文件中。由此便可简单记录下基于相机的拍摄内容随时间的推移而发生的故事,这可以被定义为一个叙事类的传感器。


我将这一技术归类到压缩方法中的原因是你可以通过生成性的神经网络将字幕还原为图像。尽管重新生成的图像不会跟原图像完全一致,但也能够从原图像继承一些信息。如果你希望结果与原图像尽可能接近,你也可以从风格化方面考虑,例如为每个场景生成简图。这些技术的共同特征在于他们提取出了输入文件中对于我们人类重要的部分,并省略了余下的部分。


不仅仅是图像


640?wx_fmt=jpeg


语言世界也有类似的趋势。语音识别正在迅速改进,合成语音的能力也在迅速提高。识别可以看作是将音频压缩为自然语言文本的过程,而合成则恰好相反。你可以想象将对话高度压缩为自然语言文字而非音频。诚然,我们不需要达到那种要求,但似乎通过扩展我们对于表达的认知类型,我们可以实现在低带宽情况下的更好的结果。


我甚至还发现一些有趣的将机器学习应用在文本本身上的可能性。Andrej Karpathy的CHAR-RNN(递归神经网络)展示了神经网络对某些模板进行模仿的优越性,而对于压缩技术来说,预测也是相同的道理。考虑到普通的HTML页面有不少冗余,这一情况下GZIP压缩方法似乎有很大机率能被机器学习改进,尽管我认为这没有机器学习对文本的处理那么容易。


对于压缩的研究已立项拨款


640?wx_fmt=jpeg


在我创业期间,营销失败的经历让我学到了一件事:如果已经有一笔预算要购买你所推销的产品,该产品的销售会容易得多。预算的存在意味着公司在是否应该花钱购买解决方案上已经赢得了艰难的斗争,现在唯一的问题是购买哪种解决方案。


这也是我认为机器学习可以在这个领域取得巨大突破的原因之一,因为制造商已经拥有专门用于视频和音频压缩的工程师、资金和芯片。如果我们能够证明将机器学习添加到现有解决方案中能够以一些可度量的方式(例如质量、速度或功耗)改进它们,那么它们将被快速采用。


带宽将会花费用户和运营商的大量的成本,质量和电池寿命将会成为产品的卖点,因此采用机器学习改进压缩的优势将比其他运用更为显而易见。


许多激动人心的研究表明这种方式将会非常高效,而且我乐观地认为还有许多应用尚未被发掘。我希望机器学习在压缩中的应用将发展成为一门核心技术。


相关报道:

https://petewarden.com/2018/10/16/will-compression-be-machine-learnings-killer-app/

∞∞∞

640?wx_fmt=png

公众号回复“IT派”

邀你加入IT派 { 技术青年圈} 

这篇关于被《硅谷》选中的“压缩算法”,为什么说下一个机器学习杀手应用将由此诞生...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/350073

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

hdu1394(线段树点更新的应用)

题意:求一个序列经过一定的操作得到的序列的最小逆序数 这题会用到逆序数的一个性质,在0到n-1这些数字组成的乱序排列,将第一个数字A移到最后一位,得到的逆序数为res-a+(n-a-1) 知道上面的知识点后,可以用暴力来解 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#in

zoj3820(树的直径的应用)

题意:在一颗树上找两个点,使得所有点到选择与其更近的一个点的距离的最大值最小。 思路:如果是选择一个点的话,那么点就是直径的中点。现在考虑两个点的情况,先求树的直径,再把直径最中间的边去掉,再求剩下的两个子树中直径的中点。 代码如下: #include <stdio.h>#include <string.h>#include <algorithm>#include <map>#

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]