AI新技术:利用神经网络对图片进行超级压缩

像神经网络这样的数据驱动算法已席卷全球。他们最近的激增是由于硬件变得更加便宜也更加强大,同时也不缺乏大量的数据的支持。神经网络目前发展到“图像识别”,“自然语言理解”等认知任务,当然也仅限于此类任务。在这篇文章中,我将讨论一种使用神经网络压缩图像的方法,以更快的速度实现图像压缩的最新技术。

本文基于“基于卷积神经网络的端到端压缩框架”(https://arxiv.org/pdf/1708.00838v1.pdf)。

你需要对神经网络有一些熟悉,包括卷积和损失函数。

什么是图像压缩

图像压缩是转换图像使其占用较少空间的过程。简单地存储图像会占用大量空间,因此存在编解码器,例如JPEG和PNG,旨在减小原始图像的大小。

有损与无损压缩

图像压缩有两种类型:无损和有损。正如他们的名字所暗示的那样,在无损压缩中,有可能获取原始图像的所有数据,而在有损压缩中,有些数据在转换中丢失。

例如JPG是一种有损算法,而PNG是一种无损算法

无损和有损压缩之间的比较

仔细看会发现右边的图像有很多小块,这就是信息的丢失。类似颜色附近的像素被压缩为一个区域,节省了空间,但也丢失关于实际像素的信息。当然,像JGEG,PNG等编解码器的实际算法要复杂得多,但这是有损压缩的良好直观示例。无损当然好,但它在磁盘上占用了太大的空间。

虽然有更好的方法压缩图像而不会丢失大量信息,但是它们太慢了,许多使用迭代的方法,这意味着它们不能在多个CPU内核或GPU上并行运行。这使得它们应用在日常使用中并不现实。

进入卷积神经网络

如果需要计算任何东西并且可以近似,就可以让一个神经网络来做。作者使用一个相当标准的卷积神经网络来改善图像压缩。他们的方法不仅能达到“更好的压缩图像方法”的效果,还可以利用并行计算,让速度的快速提升。

因为,卷积神经网络(CNN)非常擅长从图像中提取空间信息,然后以更紧凑的结构表现(例如,仅存储图像的“重要”比特)。作者想利用CNN的这种能力更好地表现图像。

架构

作者提出了一个双重网络。第一个网络,将采集图像并生成压缩表示(ComCNN)。然后,这个网络的输出通过标准的编解码器(例如JPEG)进行处理。经过编解码器后,图像将被传递到第二个网络,从编解码器“修复”图像,试图恢复原始图像。作者称之为重建CNN(RecCNN)。这两个网络都被反复地训练,类似于GAN。

ComCNN将压缩表示传递给标准的编解码器

来自ComCNN的输出被放大并传递给RecCNN,它将尝试学习一个残差

编解码器的输出被放大,然后传递给RecCNN。RecCNN将尝试输出与原始图像相似的图像。

残差是什么

残差可以被认为是“改善”编解码器解码的图像的后处理步骤。神经网络有很多关于世界的“信息”,可以对“修复”做出认知决定。这个想法是基于残差学习,你点击链接进行更深入的了解(https://arxiv.org/pdf/1708.00838v1.pdf)。

损失函数

由于有两个网络,所以使用两个损失函数函数。第一个,对于ComCNN,标记为L1,定义为:

ComCNN的损失函数(公式1.0)

说明

这个方程可能看起来很复杂,但它实际上是标准MSE(均方误差)。||²表示它们所包含的矢量的“标准”。

(公式1.1)

Cr表示ComCNN的输出。θ表示ComCNN的可训练参数,Xk表示输入图像

(公式1.2)

Re()表示RecCNN。该方程将公式1.1的值传递给RecCNN。“θ帽”表示RecCNN的可训练参数(帽表示参数固定)

直观的定义

公式1.0将使ComCNN修改它的权重,这样,在经过RecCNN重新创建后,最终图像将尽可能接近真实的输入图像。

RecCNN的第二个损失函数定义为:

(公式2.0)

说明

同样的,这个函数可能看起来很复杂,但它是一个常见而标准的神经网络损失函数(MSE)。

(公司2.1)

Co()表示编解码器的输出。x帽表示ComCNN的输出。θ2表示RecCNN的可训练参数。res()只表示网络学习的残差,它只是RecCNN的输出。值得注意的是,RecCNN在Co()和输入图像之间的差异进行训练,而不是直接从输入图像中进行训练。

直观的定义

公式2.0将使RecCNN修改其权重,使得其输出看起来尽可能接近原始图像。

训练计划

这些模型经过类似于GAN的训练方式的迭代训练。第一个模型的权重是固定的,而第二个模型的权重被更新,然后第二个模型的权重是固定的,而第一个模型被训练。

基准

作者将其方法与现有方法进行了比较,包括简单的编解码器。他们的方法比其他方法更好,同时在有能力的硬件上使用时保持高速。作者注意到尝试只使用其中一个网络性能会下降。

SSIM(结构相似度指数)比较。较高的值表示与原始的更好的相似性 作者的作品是粗体。

结论

我们看了一种应用深度学习来压缩图像的新颖方法。我们讨论了除了图像分类和语言处理等常用功能之外的任务上使用神经网络的可能性。这种方法不仅表现很好,处理图像也更快。

原文发布于微信公众号 - ATYUN订阅号(atyun_com)

原文发表时间:2017-09-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏计算机视觉战队

深度学习超参数简单理解

说到这些参数就会想到Stochastic Gradient Descent (SGD)!其实这些参数在caffe.proto中 对caffe网络中出现的各项参数...

3699
来自专栏GAN&CV

3D卷积简介

注:本文首发在微信公众号-极市平台。如需转载,请联系微信Extreme-Vision

1.3K3
来自专栏小詹同学

轻松玩转 Scikit-Learn 系列 —— 梯度下降法

接触过机器学习的小伙伴都应该知道,梯度下降法并不是一个机器学习算法,而是一种基于搜索的最优化方法,在机器学习尤其是深度学习的凸优化中使用尤为广泛。给定一个损失函...

953
来自专栏深度学习入门与实践

【原】文本挖掘——特征选择

特征选择有很多方法,看了很多资料后,我总结了以下几种,以后有新内容会随时修改 1.DF——基于文档频率的特征提取方法 概念:DF(document freque...

2265
来自专栏AI科技大本营的专栏

重磅 | 2017年深度学习优化算法研究亮点最新综述火热出炉

翻译 | AI科技大本营(微信ID:rgznai100) 梯度下降算法是机器学习中使用非常广泛的优化算法,也是众多机器学习算法中最常用的优化方法。几乎当前每一个...

4177
来自专栏大数据文摘

机器都会学习了,你的神经网络还跑不动?来看看这些建议

在很多机器学习的实验室中,机器已经进行了上万小时的训练。在这个过程中,研究者们往往会走很多弯路,也会修复很多bug,但可以肯定的是,在机器学习的研究过程中,学到...

1110
来自专栏数据科学与人工智能

【应用】 信用评分:第7部分 - 信用风险模型的进一步考虑

以满足科学模型开发的主要标志 - 严谨性,可测试性,可复制性和精确性以及可信度 - 考虑模型验证以及如何处理不平衡数据非常重要。 本文概述了可用于满足这些标志的...

1023
来自专栏计算机视觉战队

深度学习超参数简单理解

首先谢谢读者的指正,现在已经把所有遮挡的都处理完毕,谢谢您们的指正,谢谢! ---- 正文: 说到这些参数就会想到Stochastic Gra...

3734
来自专栏超然的博客

Graph Attention Networks

paper:https://mila.quebec/wp-content/uploads/2018/07/d1ac95b60310f43bb5a0b802452...

2701
来自专栏鸿的学习笔记

写给开发者的机器学习指南(三)

在本节中,我们将解释一些可用于模型验证的技术,以及在验证技术范围内机器学习领域常用的一些术语。

661

扫码关注云+社区

领取腾讯云代金券