文档章节

卷积自编码

AllenOR灵感
 AllenOR灵感
发布于 2017/09/10 01:24
字数 2467
阅读 5
收藏 0
点赞 0
评论 0

这篇教程是翻译Paolo Galeone写的卷积自编码分析教程,作者已经授权翻译,这是原文

卷积操作符会对输入信号进行滤波操作,以便提取其内容的一部分。在传统的方法中,自编码没有考虑到信号可以被看做是和其他信号的和。相反,卷积自编码就是使用卷积操作来做信号的叠加之和。他们对一组简单的输入信号进行编码,然后对这些信号再进行重新建模。

卷积


图 1. 输入的维度是 4*4*1的,卷积核的维度是 3*3*1的,所以输出的特征图是 2*2*1的

在一般连续状态,卷积被定义为两个函数(信号)被反转和移位之后的乘积的积分:


作为结果,卷积操作会产生一个新的函数(信号)。卷积满足交换操作,因此:


在一般的 n 维空间输入,自编码可以被用来训练解码(编码)。实际上,自编码通常用于对二维的,有限和离散输入信号进行特征提取,比如数字图像。

在二维离散空间,卷积操作可以被定义如下:


因为图像的范围有限,所以该公式可以变为:


其中:

  • O(i, j) 表示输出像素,位置是 (i, j)
  • 2k+1 是表示矩形奇数卷积核的一条边
  • F 表示卷积核
  • I 表示输入图像

对于图1所示,单个卷积核操作在输入图像 I 的每个位置 (i, j) 进行卷积操作。


图2:利用一个手工制作的卷积核对图片进行卷积操作,从而提取输入图像的边缘

从图2可以很容易的看出,卷积操作的结果取决于卷积核的值。根据不同的卷积核设置,每个卷积核可以用于不同的图像处理任务,比如去噪,模糊处理等等....

离散二维卷积操作有两个附加参数:水平和垂直移动步数。它们是在执行单个卷积步骤之后,沿着图像 I 的各个维度跳过的像素的数量。通常,水平和垂直移动步数是相等的,它们被标记为 S

对于一个正方形的图像 Iw = Ih (这是为了简单描述,如果要扩充到一般的矩阵图像,非常方便),以步数 2k+1 ,进行二维的离散卷积操作之后,我们可以得到如下的图像 O


到目前为止,我们已经利用了单个卷积核对图像进行灰度级(单通道)操作的情况。如果输入图像具有多个通道,即 D 个通道,那么卷积算子沿着每一个通道都要进行操作。

一般规则下,一个卷积核的输出通道数必须和输入图像的通道数一样。所以可以概括为,离散二维的卷积是将信号进行堆叠处理。

各个维度上的卷积

长方体完全可以由三元组 (W, H, D) 来表示,其中:

  • W≥1 表示长度
  • H≥1 表示高度
  • D≥1 表示深度

很明显,一个灰度图像可以看做是深度 D = 1 的长方体,而RGB图像可以看做是深度 D = 3 的长方体。

一个卷积核也可以看做是一个具有深度 D 的卷积核。特别地,我们可以将图像和滤波器视为单通道图像/滤波器的集合(与顺序无关)。


如果我们考虑图像的深度,那么以前的卷积公式可以概括为:


在图像上进行卷积之后,得到的结果称为激活图(activation map)。激活图是深度 D = 1 的长方体。

可能听起来很奇怪,在一个三维图像上的卷积得到的结果是一个二维的结果。实际上,对于具有深度 D 的输入信号,卷积核执行精确的 D 个离散的二维卷积操作。所产生的D个二维的激活图,之后将这D个激活图进行处理,从而得到一个二维的卷积结果。以这种方式,所得到的激活图 O 的每个单位 (i, j) 包含的信息是提取该位置所有信息的结果。

直观地来说,可以将该操作认为是将输入的RGB通道转换成一个单通道进行输出。

卷积自编码

卷积自编码(CAE)从不同的角度来定义滤波器的任务:而不像平时我们遇到的那些工程上的卷积滤波器,它们的作用就是让模型学习到最佳滤波器,从而使得重构误差最小。然后,这些训练好的滤波器就可以被使用到任何其他的计算机视觉任务。

目前利用卷积核进行无监督学习的最先进工具就是卷积自编码(CAE)。一旦这些卷积核被训练学习之后,它们将被应用到任何的输入数据去进行特征提取。然后,这些特征就可以被用于任何的任务,例如分类问题。

CAE是卷积神经网络(CNN)的一种类型:CNN和CAE之间最主要的区别在于前者是进行端到端的学习滤波器,并且将提取的特征进行组合从而用来分类。事实上,CNN通常被称为是一种监督学习。相反,后者通常被用来训练从输入数据中提取特征,从而重构输入数据。

由于它们的卷积性质,不管输入数据的维度是多大,CAE产生的激活图的数量都是相同的。因此,CAE完全忽略了二维图像本身的结构,而是作为了一个通用特征提取器。事实上,在自编码(AE)中,图像必须被展开成单个向量,并且网络对输入向量的神经元个数有一定的约束。换句话说,AE迫使每个特征是全局的(即,跨越整个视野),所以它的参数中是存在冗余的,而CAE不是。

编码器

很容易理解,单个卷积滤波器不能学会提取图像的各种各样的模式。为此,每个卷积层是由 n 个(超参数)卷积核组成的,每个卷积核的深度是 D ,其中 D 表示输入数据的通道数。

因此,每个具有深度 D 的输入数据


和一组 n 个卷积核


之间进行的卷积操作,从而产生一组 n 个激活图,或者等价的特征图。当然,最后产生的特征图的通道数还是 n ,具体如下:


为了提高网络的泛化能力,每个卷积都会被非线性函数 a 激活,以这种方式训练,得到的网络可以学习输入数据的一些非线性特性:


其中,bm^(1) 表示第 m 个特征图的偏差,引入术语 zm 是对 AE 中保持相同的变量名称。

所产生的激活图是对输入数据 I 进行的一个重新编码,使其可以在低维空间表示。重构好之后的数据维度并不是原来 O 的维度,但是参数的数量是从Om 中学习来的,换句话说,这些参数就是 CAE 需要学习的参数。

由于我们的目标是从所产生的特征图中对输入数据 I 进行重构。因此我们需要一个解码操作。卷积自编码是一个完全的卷积网络,因此我们的解码操作可以进行再次卷积。

细心的读者可能认为卷积操作减少了输出的空间范围,因此不可能使用卷积来重建具有相同输入空间范围的信息。

这是完全正确的,但是我们可以使用输入填充来解决这个问题。如果我们用零向输入数据 I 进行填充,则经过第一个卷积之后的结果具有比输入数据 I 大的空间范围,经过第二个卷积之后就可以产生具有和原始空间 I 相同的空间范围了。

因此,我们想要输入填充的零是这样的:


从公式1可以看出,我们想要对 I 填充 2(2k+1)-2 个零(每一个边填充 (2k+1) -1 个),以这种方式,卷积编码将产生数据的宽度和高度等于:


解码器

所产生的 n 个特征图 zm = 1, ..., n 将被用作解码器的输入,以便从该压缩的信息中重建输入图像 I 。

事实上,解码卷积的超参数是由编码框架确定的:

  • 由于卷积跨越每个特征图,并且产生具有 (2k+1, 2k+1, n) 的维度,因此经过滤波器 F(2) 之后产生相同的空间范围 I 。
  • 需要学习的滤波器的数量:D个,因为我需要重构具有深度 D 的输入图像。

因此,重构的图像 I_ 是特征图的维度 Z = {zi = 1}^n 和该卷积滤波器 F(2) 之间的进行卷积的结果。


根据前面计算的零进行填充,那么导致解码卷积之后产生的维度是:


我们的目标是使得输入的维度等于输出的维度,然后可以用任何的损失函数来进行计算,例如 MSE:


下一篇,我们来讲怎么利用 TensorFlow 来实现CAE。

本文转载自:http://www.jianshu.com/p/ec40175dcba7

共有 人打赏支持
AllenOR灵感
粉丝 10
博文 2139
码字总数 82983
作品 0
程序员
利用 TensorFlow 实现卷积自编码器

介绍和概念 自动编码器(Auto-encoders)是神经网络的一种形式,它的输入数据与输出数据是相同的。他们通过将输入数据压缩到一个潜在表示空间里面,然后再根据这个表示空间将数据进行重构得到...

chen_h ⋅ 01/05 ⋅ 0

吴恩达 DeepLearning.ai 课程提炼笔记(4-4)卷积神经网络 --- 人脸识别和神经风格迁移

Ng卷积神经网络部分,完结撒花!以下为在Coursera上吴恩达老师的 deeplearning.ai 课程项目中,第四部分《卷积神经网络》第四周课程“特殊应用:人脸识别和神经风格迁移”关键点的笔记。本次...

大树先生 ⋅ 2017/11/28 ⋅ 0

卷积神经网络(CNN)

1.CNN介绍 CNN是应用在图像识别领域较多的一种机器学习算法,它与普通的神经网络有点类似,通过输入层然后乘以权重加上偏置,并且通过一个非线性的激活函数,即可得到输出值。CNN要做的是给定...

断桥残雪断桥残雪 ⋅ 2015/10/20 ⋅ 0

吴恩达Coursera深度学习(4-4) 特殊应用:人脸识别和神经风格迁移

转载博客:http://blog.csdn.net/KoalaTree Class 4:卷积神经网络 Week 4: 特殊应用:人脸识别和神经风格迁移 Part 1:人脸识别 1. 人脸验证和人脸识别 人脸验证(Verification): Input:...

malele4th ⋅ 02/26 ⋅ 0

18- OpenCV+TensorFlow 入门人工智能图像处理-CNN识别手写数字

cnn卷积神经网络实现手写数字识别 卷积层 & 池化层实现 padding参数决定卷积核是否可以停留边缘。 全连接层 激励函数 + 乘加运算 输出层 softmax得到第二层的输出 7.1 softmax 训练过程 run代...

天涯明月笙 ⋅ 05/18 ⋅ 0

《PCANet: A Simple Deep Learning Baseline for Image Classification》中文翻译总结

  PCANet可谓是国内技术大牛新提出的一种新的深度学习框架,为了方便大家研究,在此将其摘要、引言、基本原理介绍等三部分的内容进行了翻译,不过并非原文直译,会加上一点我自己的理解,次...

u013088062 ⋅ 2015/11/25 ⋅ 0

特殊应用:人脸识别和神经风格迁移 - -DeepLearning.ai 学习笔记(4-4)

课程笔记地址:https://mp.csdn.net/postlist 课程代码地址:https://github.com/duboya/DeepLearning.ai-pragramming-code/tree/master 欢迎大家fork及star!(-^O^-) 卷积神经网络 — 特殊应......

dby_freedom ⋅ 04/10 ⋅ 0

图鸭科技获CVPR 2018图像压缩挑战赛单项冠军,技术解读端到端图像压缩框架

CHALLENGE ON LEARNED IMAGE COMPRESSION 挑战赛由 Google、Twitter、Amazon 等公司联合赞助,是第一个由计算机视觉领域的会议发起的图像压缩挑战赛,旨在将神经网络、深度学习等一些新的方式...

机器之心 ⋅ 06/21 ⋅ 0

业界 | 图鸭科技获CVPR 2018图像压缩挑战赛单项冠军,技术解读端到端图像压缩框架

  机器之心报道   参与:晓坤、路   CHALLENGE ON LEARNED IMAGE COMPRESSION 挑战赛由 Google、Twitter、Amazon 等公司联合赞助,是第一个由计算机视觉领域的会议发起的图像压缩挑战赛...

机器之心 ⋅ 06/21 ⋅ 0

卷积网络初始:LeNet

来做一个关于卷积神经网络的归类,先从LeNet开始: LeNet出自Yann Lecun(卷积网络之父),Yoshua Bengio(蒙特利尔大学教授,吴恩达的同门),Leon Bottou(将随机梯度下降引入学习中)三位...

night李 ⋅ 01/23 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

20.zip压缩 tar打包 打包并压缩

6月25日任务 6.5 zip压缩工具 6.6 tar打包 6.7 打包并压缩 6.5 zip压缩工具: zip支持压缩目录 zip压缩完之后原来的文件不删除 不同的文件内容其实压缩的效果不一样 文件内有很多重复的用xz压...

王鑫linux ⋅ 9分钟前 ⋅ 0

double类型数据保留四位小数的另一种思路

来源:透析公式处理,有时候数据有很长的小数位,有的时候由在四位以内,如果用一般的处理方法,那么不足四位的小树会补充0到第四位,这样子有点画蛇添足的感觉,不太好看。所以要根据小数的...

young_chen ⋅ 16分钟前 ⋅ 0

Python 优化 回溯下降算法

使用sympy构造表达式,实现回溯下降算法 画出函数图像,先使用暴力搜索,找到最小值约为2.5左右 然后选定初始点,开始进行回溯搜索,下降方向为负梯度方向 下降的误差与步数大致呈现下面的状...

阿豪boy ⋅ 21分钟前 ⋅ 0

Django配置163邮箱出现 authentication failed(535)错误解决方法

最近用Django写某网站,当配置163邮箱设置完成后,出现535错误即:smtplib.SMTPAuthenticationError: (535, b'Error: authentication failed') Django初始配置邮箱设置 EMAIL_HOST = "smtp.1...

陈墨轩_CJX ⋅ 22分钟前 ⋅ 0

用接口模拟可伸缩枚举(34)

1、枚举的可伸缩性最后证明都不是什么好点子 扩展类型的元素是基本类型实例,基本类型的实例却不是扩展类型的元素,很混乱 目前还没有很好的方法来枚举基本类型的所有元素,及其扩展 可伸缩性...

职业搬砖20年 ⋅ 26分钟前 ⋅ 0

Ubuntu18.04 IDEA快捷键无法使用

IDEA默认的回退到上一视图的快捷键是Ctrl + Alt + Left,在ubuntu中这个快捷键被占用了,在16.04中可以在界面中取消这个快捷键,但是18.04就看不到了,可以使用以下命令解决 gsettings set ...

Iceberg_XTY ⋅ 30分钟前 ⋅ 0

如何解决s权限位引发postfix及crontab异常

一、问题现象 业务反馈某台应用服务器,普通用户使用mutt程序发送邮件时,提示“postdrop warning: mail_queue_enter: create file maildrop/713410.6065: Permission denied”,而且普通用法...

问题终结者 ⋅ 42分钟前 ⋅ 0

Unable to load database on disk

由于磁盘空间满了以后,导致zookeeper异常退出,清理磁盘空间后,zk启动报错,信息如下: 2018-06-25 17:18:46,904 INFO org.apache.zookeeper.server.quorum.QuorumPeerConfig: Reading co...

刀锋 ⋅ 今天 ⋅ 0

css3 box-sizing:border-box 实现div一行多列

<!DOCTYPE html><html><head><style> div.container{ background:green; padding:10px 10px;}div.box{box-sizing:border-box;-moz-box-sizing:border-box; /* Fir......

qimh ⋅ 今天 ⋅ 0

Homebrew简介和基本使用

一、Homebrew是什么 Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径...

说回答 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部