【图像压缩】有损压缩实现无损预测

updating...

1 绪论

一篇很好的结合对比学习与特征压缩的工作。

本文贡献:

1.公式化面向下游预测任务压缩的概念

2.描述了在增强不变性任务上高表现所需要的比特数。

3.提出无监督目标函数训练压缩器近似最优码率。

4.结合zero-shot方法CLIP,在ImageNet上,减少了1000x的码率。

2 率失真(RD)理论

Rate(\delta) = \mathop{min}_{p(Z|X)} I[X;Z]\ such\ that\ D[X,Z]<\delta \quad (1)

有损压缩中,Z通常是X的重建。失真D有效条件:d:Z \times X \rightarrow \mathbb{R} \ge 0,形式为D[X, Z] = E_{p(X, Z)}[d(X, Z)]的失真,\exists z \in ZD[X, z]有限。

3 高预测表现的最小码率

描述保证下游任务高表现X表示的最小码率。

论点分三步:1)定义当从中间表示Z预测下游任务时能够控制下游任务表现的失真项。2)当任务满足不变性条件的时候简化并验证失真项。3)应用RD理论。

3.1 最差预测表现的失真项

所有下游分类任务(是否小狗,是否手写...):

T = \{Y_{dog}, Y_{hd}...\}

使用log损失的贝叶斯风险(inf_q代表下确界-最小交叉熵,X代表原图像,Y代表某个下游分类任务):

R[Y|X]:= inf_qE_{p(X,Y)}[-log\ q(Y|X)]

Z是中间表示,使用Z而非X预测也对应一个贝叶斯风险。定义最差情况过度风险(worst-case excess risk)(sup代表上确界):

D_{T}[X,Z]:=\mathop{sup}_{Y\in T} \ R[Y|Z] - R[Y|X]\quad (2)

如果D_{T}[X,Z]=0,则可以实现无损预测:使用Z和使用X的结果相同。使用\delta限定D_T可以确保R[Y|Z] - R[Y|X] \le \delta

在(2)可以使用之前,有两个问题需要解决:1)不清楚对RD理论而言D_T是否有效;2)最差过度风险D_T假设在所有分类下游任务T中取上界,不能枚举实现。

3.2 不变任务

定义1:一组关于等价关系(\chi , \sim)的感兴趣不变任务集,记作T_{\sim},是所有满足\forall x,x^+ \in \chi, x\sim x^+ \Rightarrow p(Y|x) = p(Y|x^+)的随机变量Y

即针对某个数据增强\sim无反应(预测结果相同)的所有下游任务Y构成T_{\sim}

3.3 不变任务预测的RD理论

关于\sim的最大不变量M(\cdot)是满足以下条件的任意函数:

x\sim x^+ \Leftrightarrow M(x)=M(x^+) \quad for\ any\ x,x^+ \in \chi

M(X)是若干等价类的集合,代表一个下游任务,该下游任务对数据增强\sim具有不变性。图2是示例。

最大不变量去除了对任务而言不变的所有信息(比如a中去除了对任务结果无影响的角度信息),但保留了执行不变性任务所需要的最少信息(如a中的长度信息)。

Appx.B.2证明在弱条件下,T_{\sim}存在最大不变任务(则必有最差情况任务)M(X),且M(X)达到(2)的下确界,D_{T_{\sim}}简化为从Z预测M(X)的贝叶斯风险,该失真是一个有效失真。于是无需枚举不变任务就可以量化下游表现。

 命题1:等价关系(\chi, \sim),最大不变量M(最多可数多个值),满足H[M(X)]< \infty,则D_T是一个有效失真项,且D_{T\sim}[X,Z] = R[M(X)| Z]

定理2:(Rate-Invariance)假设条件Prop.1成立,令\delta \ge 0Rate(\delta)代表对于任意Y\in T_{\sim}都满足R[Y|Z]-R[Y|X] \le \delta的传输Z需要的最小可达码率。如果\delta \ge H[M(X)]Rate(\delta)=0,否则:

为实现无损预测,需要码率H[M(X)],直觉上来看,这是因为M(X)包含了无损预测任意Y\in T_{\sim}所需要的最小信息。另外,由上式,在所有下游任务log损失表现上减\delta可以节省正好\delta个比特。在右侧,以不同方式分解H(M(X)) = I(M(X);X)得到另一种解释:1)H(X)对于离散X是无损压缩X所需要的最少码率,2)H[X|M(X)]是因为期望任务的不变性所减少的信息。如图3。

4 不变的神经网络压缩器的无监督训练

目的是找到一个压缩器p(Z|X)能够在不变失真项D_T_{\sim}约束下最小化(1)中的RD函数,为了实现这一目的,可以优化以下拉格朗日方程式:

\mathop{arg\ min}_{p(Z|X)} I(X;Z) + \beta \cdot R[M(X)|Z]

为解决M(X)不可用问题,可以把增强图像A(X)作为新输入,ZA(X)的表示,未增强图像X作为最大不变任务M(A(X))R[M(A(X))|Z]R[X|Z]相等,于是可以重写目标函数:

\mathop{arg\ min}_{p(Z|A(X))} I[A(X);Z] + \beta \cdot R[X|Z] \quad (7)

接下来介绍(7)的两种可行的变分界限,可以使用随机梯度下降优化编码器参数。两种优化都使用了标准有损压缩界限I[Z;A(X)] \le H[Z] \le min_{\theta} E_{p(Z)}[-log q_{\theta}(Z)],区别在于如何找R[X|Z]的上界,第一种使用重建损失,需要由增强图片A(x)重建x\in D;第二种使用判别损失,尝试辨识哪一个是输入的增强版本。

4.1 变分不变压缩器(Variational Invariant Compressor)

VIC包括编码器p_{\varphi}(Z|A(X)),熵模型q_{\theta}(Z)和解码器q_{\phi}(X|Z),给定数据样本x\in D,应用数据增强A(x),压缩得到中间表示Z,解码器尝试从中间表示Z重建未增强版本x。目标函数:

L_{VIC}(\phi, \theta, \varphi) := -\sum_{x \in D} E_{p(A)p_{\varphi}(Z|A(x))}[log q_{\theta}(Z) + \beta \cdot log q_{\phi}(x|Z)]

log q_{\theta}(Z)是熵瓶颈,作为I(A(X);Z)的上界,确保移除不需要的信息。R[X|Z] \le E_{p(X,Z)}[ -log q_{\phi}(X|Z)],确保VIC保留不变性任务需要的信息(在代码中使用的mse loss?)。

4.2 瓶颈InfoNCE(BINCE)

第二种无需恢复图像,包括两部分:一个熵瓶颈,一个InfoNCE目标(对比自监督学习)。算法如下:

对每个数据点x\in D,数据增强A(x),经过编码器p_{\varphi}(Z|A(X))获得中间表示Z。应用不同增强,送入编码器获得正样本Z^+。在D\backslash \{x\}中取样n次,应用数据增强A,获得n个负样本。共同构成序列\textbf{Z} = (Z^+, Z_1^-, \cdots, Z_n^- )。将以上取样过程简化为p_{\varphi}(Z, \textbf{Z}|A,D,x),引入判别器f_{\psi },目标函数为:

L_{BINCE}(\varphi, \theta, \psi):=-\sum_{x\in D} E_{p(A)} p_{\varphi}(Z, \textbf{Z}|A, D, x)[logq_{\theta}(Z) + \beta \cdot log \frac{exp f_{\psi}(Z^+, Z)}{\sum_{Z^{'} \in \textbf{Z}} exp f_{\psi}(Z^{'}, Z)}]

5 实验

关注两个问题:1)框架可以以什么代价达到什么压缩码率2)可以训练一个通用目的的预测编码器吗

5.1 合成简单实验提供视觉直觉

压缩样本来自2维香蕉分布,假设旋转不变性任务为判断一个点是否在单位圆中,比较VC与VIC,两者都使用MSE优化。

码率提升从何而来?对于旋转不变性任务,我们的方法通过学习磁盘形状的量化,丢弃了不必要的角度信息,VIC只保留角度信息,足以将所有随机旋转点映射到最大不变量(粉色点),相比之下,VC企图重构所有图像信息,需要更精细的量化分区。

5.2 对照实验评估

压缩STL10数据集,同时增强(翻转,颜色抖动,裁剪)训练与测试集,保证满足任务不变性的假设。

与标准压缩方法相比BINCE与VIC表现如何?将PNG无损压缩作为baseline,比较下游任务精度与压缩码率。

该从表示预测还是重建图像预测?对于VIC,从中间表示而非重建图像预测,提高了9%精确率。这表明不变性重建对于标准图像预测器不是很友好。

增强的分布重要吗? 50%时间应用增强训练VIC,在测试的时候改变概率,结果相差不大。

5.3 使用预训练自监督模型的一个零次学习(zero-shot)压缩器

CLIP保留了与详细的字幕相关的图像信息,满足x_{image} \sim x_{text}^+,通过一个对比损失,可以保证使用图片表示Z_{image}预测文字表示Z_{text}^+,反之亦然。这表示CLIP保留了与caption相关的图片的信息,并可能变成一个通用的图像分类压缩器。

结合BINCE方法,分两步构建新的BINCE压缩器,第一步,下载并固定CLIP参数,第二步,在小数据集MSCOCO上训练一个熵瓶颈压缩CLIP的表示。在8个(不同分类任务,不同图片大小)训练期间未曾谋面(zero-shot)的数据集上测试压缩器。训练策略如下:

可以使用预训练自监督学习获得一个通用压缩器吗?见图2,其中PCam是生物组织数据集。

CLIP压缩器保留了所有需要的信息,在这些任务上达到0误差。通过统计训练测试集中压缩表示Z相同而分类标签不同的样本数以估计过度贝叶斯风险,我们发现在这些数据集上达到了无损预测。

熵瓶颈的作用是什么?比较预训练CLIP,与我们的CLIP压缩器(包含使用不同\beta训练得到的熵瓶颈)。使用低\beta训练熵瓶颈,在没影响预测的情况下平均提升6x码率,\beta提升11x损失不大,高\beta提升16x码率影响开始明显。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/353183.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

基于PCA的图像压缩实现

基于PCA的图像压缩实现 注&#xff1a;该内容为校内课程实验&#xff0c;仅供参考&#xff0c;请勿抄袭&#xff01; 源码&#xff1a;PPCA-for-Image-Compession 摘要   随着计算机互联网的发展和数据的日益增长&#xff0c;如何高效的处理和传输海量数据成为大数据处理的…

基于深度学习的图像压缩

近年来&#xff0c;深度学习在计算机视觉领域已经占据主导地位&#xff0c;不论是在图像识别还是超分辨重现上&#xff0c;深度学习已成为图片研究的重要技术&#xff0c;但它们的能力并不仅限于这些任务&#xff1b;现在深度学习技术已进入图片压缩领域。下面就说说神经网络在…

图像压缩算法

这里说​十种常用的图像压缩算法 数据压缩是保留相同或绝大部分数据前提下减小文件大小的过程。它的原理是消除不必要的数据或以更高效的格式重新组织数据。在进行数据压缩时&#xff0c;你可以选择使用有损方法或无损方法。有损方法会永久性地擦除掉一些数据&#xff0c;而无…

C#图像压缩相关方法总结

前往我的主页以获得更好的阅读体验C#图像压缩相关方法总结 - DearXuan的主页https://blog.dearxuan.com/2022/02/07/C-%E5%9B%BE%E5%83%8F%E5%8E%8B%E7%BC%A9%E7%9B%B8%E5%85%B3%E6%96%B9%E6%B3%95%E6%80%BB%E7%BB%93/ 前言 本文所描述的所有内容和算法&#xff0c;均未使用任…

Matlab实现图像压缩

文章和代码以及样例图片等相关资源&#xff0c;已经归档至【Github仓库&#xff1a;digital-image-processing-matlab】或者公众号【AIShareLab】回复 数字图像处理 也可获取。 文章目录 目的原理图像压缩原理离散余弦变换(DCT)图像压缩原理行程编码&#xff08;RLE&#xff09…

图像压缩相关内容简介

历史 图像压缩的研究起源于20世纪40年代。1948年香农的经典论文《通信的数学原理》中首次提到信息率深圳函数的概念&#xff0c;1959年他又建立了率失真理论&#xff0c;从而奠定了信源编码的理论基础。随后伯杰等人有对其进行了深入的研究&#xff0c;并取得了一定的进步&…

移动端做安全测试的重要性

安全性测试的目的是发现危害手机中数据的安全和完整性的错误和缺陷。发现安全错误通常是比较困难的,软件通常功能运行正常但却不安全。 一、软件权限 APP软件权限包括:网络通信、信息发送、自动启动、 媒体录制、读取用户信息、写入用户数据等权限,因关系到用户个人信息和隐私…

cad 打开硬件加速卡_CAD如何根据已知条件设计图形

1、打开CAD&#xff0c;在左下角把极轴追踪打开(鼠标右键点击&#xff0c;选择90度打√)、把对象捕捉打开(鼠标右键点击&#xff0c;选择中点)。 2、然后在操作界面画线&#xff0c;如图我们已知直角边885和750&#xff0c;方法是按长8852、高750来绘制三点定圆弧。先画8852177…

C#ObjectArx Cad将图形范围缩放至指定实体

先上代码&#xff08;亲测可用&#xff09;&#xff1a; /// <summary>/// 定位缩放值指定实体/// </summary>/// <param name"oid"></param>public static void Orientate(ObjectId oid){try{Entity current_entity GetEntity(oid);curren…

CAD图层设置

一、图层介绍 我们可以把图层想象为一张没有厚度的透明纸&#xff0c;各层之间完全对齐&#xff0c;一层上的某一基准点准确地对准其他各层上的同一基准点。用户可以给每一图层指定所用的线型、颜色&#xff0c;并将具有相同线型和颜色的对象放在统一图层&#xff0c;这些图层…

cad打印本计算机未配置,CAD打印的基本设置详细教程

CAD打印的基本设置详细教程 开始画图之前我们就考虑到打印的需要&#xff0c;要用多大纸张&#xff0c;打印比例应该设置成多少&#xff0c;打印后的字高、线宽、颜色应该设置成多少&#xff0c;在绘制图形的时候&#xff0c;这些为打印而做的准备工作必须做好。要想正确地打印…

CAD打印图形、输出图形

打印图形 指定打印范围、打印比例、图纸大小、打印样式、页边距等参数&#xff0c;打印图纸。 1.单击常用工具栏的“打印图形”按钮。 2.在命令行中输入Plot&#xff0c;按回车键。 打印界面如下 &#xff1a; 界面信息 &#xff08;1&#xff09;选择打印机&#xff1a;默…

CAD梦想画图中如何设置图层

图层介绍 我们可以把CAD对象想象成一张没有厚度的透明纸&#xff0c;各层之间完全对齐&#xff0c;一层上的某一基准点准确的对准其它各层上的同一基准点。用户可以给每一图层指定所用的线型、颜色与线宽&#xff0c;并将其相同线型和颜色的对象放在同一图层&#xff0c;这些图…

AUTOCAD——图形单位与图形边界

图形单位 控制长度与角度的显示精度与格式。 1.执行方式 命令行&#xff1a;DDUNITS 菜单栏&#xff1a;格式→单位 “图形单位操作命令位置”界面 执行以上命令后&#xff0c;系统会弹出如下图所示的“图形单位”对话框。 2.选项说明 &#xff08;1&#xff09;长度与角…

OSSIM进行主机漏洞扫描(03)

OSSIM进行主机漏洞扫描方式 按照如图选择&#xff0c;ENVIRONMENT–SCAN JOBS–NEW SCAN JOB进入新增页面 其中各选项含义如下 Job Name:扫描任务名称。 Select Sensor:扫描的嗅探器。 Profile:扫描的类型&#xff0c;包括Deep- Non destructive Full and Slow scan(深入)、D…

Spring Boot 系统初始化器详解

Spring Boot 3.x系列文章 Spring Boot 2.7.8 中文参考指南(一)Spring Boot 2.7.8 中文参考指南(二)-WebSpring Boot 源码阅读初始化环境搭建Spring Boot 框架整体启动流程详解Spring Boot 系统初始化器详解 自定义系统初始化器 Spring Boot 有多种加载自定义初始化器的方法&am…

网络故障管理

网络故障管理是以最快的方式查找、隔离和排除网络故障的过程。故障管理是网络管理的重要组成部分&#xff0c;它通过快速解决故障来最大限度地减少停机时间并防止设备故障&#xff0c;从而确保最佳的网络可用性并防止业务损失。 网络故障监控是故障管理的第一步&#xff0c;因…

NLP+VS︱深度学习数据集标注工具、图像语料数据库、实验室搜索ing....

from: https://blog.csdn.net/sinat_26917383/article/details/54908389 一、NLP标注工具 来源&#xff1a;《构想&#xff1a;中文文本标注工具&#xff08;附开源文本标注工具列表&#xff09;》 Chinese-Annotator 来源&#xff1a;https://github.com/crownpku/Chinese-…

wince集锦

为什么80%的码农都做不了架构师&#xff1f;>>> WinCE驱动开发问题精华集锦在mediaplayer全屏播放的时候&#xff0c;我可以用键盘上的某一个键调节声音大小&#xff0c;现在我想在屏幕上显示调节的结果就跟我们看电视一样能出来一些标记。当声音变大在屏幕上就增多…

k8s技术预研8--深入掌握Kubernetes Service

本文内容已经基于k8s v1.8.8进行了验证测试。 k8s的Service定义了一个服务的访问入口地址&#xff0c;前端的应用通过这个入口地址访问其背后的一组由Pod副本组成的集群实例&#xff0c;来自外部的访问请求被负载均衡到后端的各个容器应用上。Service与其后端Pod副本集群之间则…