Deep Learning 阅读笔记:Convolutional Auto-Encoders 卷积神经网络的自编码表达
需要搭建一个比较复杂的CNN网络,希望通过预训练来提高CNN的表现。
上网找了一下,关于CAE(Convolutional Auto-Encoders)的文章还真是少,勉强只能找到一篇瑞士的文章、
Stacked Convolutional Auto-Encoders for Hierarchical Feature Extraction
干货少,不过好歹有对模型的描述,拿来看看。

概述:
本文提出了一种卷积神经网络的自编码表达,用于对卷积神经网络进行预训练。
具体内容:
原文废话挺多,我只关心模型——CAE:
卷积层的获得:
再表达:
其中“ * ”表示卷积;再表达的系数矩阵
是卷积矩阵
在两个维度上的翻转(rot180)。
关于CAE的具体结构论文讲得不清不楚(果真是水),这里有两个明显的问题:一是两次用同样大小卷积核做的卷积如何恢复原来图像的大小,论文中提到full convolution和valid convolution,大概是指两次卷积的卷积方法不同;另一个就是用卷积核的反转卷积隐藏层的意义和作用何在,这个实在是无端端冒出来的计算方法;
输出的误差使用均方误差MSE:

偏导的求法:

deltaH和deltaY分别是隐藏层和输出层的敏感度。这里又有问题:只有一个隐藏层怎么来敏感度?如果是反向传播怎么传播过去?论文此处的“ * ”还是代表的是卷积吗?如果是的话用的是full还是valid?为什么用隐藏层和敏感度做运算而不是卷积核?这个公式到底怎么来的?(天到底是我太水还是论文太渣)
接着论文提到了在非监督学习下的non-overlapping maxpooling。说这东西真是厉害,maxpooling抹去了区域非最大值,因此引入稀疏性。强大到甚至连稀疏性惩罚项都不用就可以获得好结果。(你给我讲清楚为什么啊喂!)
试验结果:
论文使用MNIST和CIFAR10数据库各做了4组实验,每组训练20个features,结果如下:
MNIST:

CIFAR10:

其中a)是简单的CAE,b)引入了30%噪声,C)引入maxpooling,D)引入maxpooling和30%噪声。
单从这两组结果来看有maxpooling的CAE,通过训练获得较好特征。
与其他方法对比:
文中最后利用CAE做pretraining训练一个6层隐藏层的CNN,与无pretraining的CNN相比,其实提高不明显。


感想:看完这篇文章对我想构建的CAE貌似没有太大的帮助,因为此文章在实践方面的细节和数学过程的推导都是一笔带过,没有详尽描述。(到底是我水还是文章水)
Deep Learning 阅读笔记:Convolutional Auto-Encoders 卷积神经网络的自编码表达的更多相关文章
- Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1
3.Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1 http://blog.csdn.net/sunbow0 ...
- Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.2
3.Spark MLlib Deep Learning Convolution Neural Network(深度学习-卷积神经网络)3.2 http://blog.csdn.net/sunbow0 ...
- Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.3
3.Spark MLlib Deep Learning Convolution Neural Network(深度学习-卷积神经网络)3.3 http://blog.csdn.net/sunbow0 ...
- “Deep models under the GAN: information leakage from collaborative deep learning”阅读笔记
一.摘要 指出深度学习在机器学习场景下的优势,以及深度学习快速崛起的原因.随后点出研究者对于深度学习隐私问题的考虑.作者提出了一种强力的攻击方法,在其攻击下任何分布式.联邦式.或者中心化的深度学习方法 ...
- Neural Networks and Deep Learning 课程笔记(第二周)神经网络的编程基础 (Basics of Neural Network programming)
总结 一.处理数据 1.1 向量化(vectorization) (height, width, 3) ===> 展开shape为(heigh*width*3, m)的向量 1.2 特征归一化( ...
- Deep Learning系统实训之三:卷积神经网络
边界填充(padding):卷积过程中,越靠近图片中间位置的像素点越容易被卷积计算多次,越靠近边缘的像素点被卷积计算的次数越少,填充就是为了使原来边缘像素点的位置变得相对靠近中部,而我们又不想让填充的 ...
- Deep Learning 学习笔记(7):神经网络的求解 与 反向传播算法(Back Propagation)
反向传播算法(Back Propagation): 引言: 在逻辑回归中,我们使用梯度下降法求参数方程的最优解. 这种方法在神经网络中并不能直接使用, 因为神经网络有多层参数(最少两层),(?为何不能 ...
- Deep Learning 学习笔记(6):神经网络( Neural Network )
神经元: 在神经网络的模型中,神经元可以表示如下 神经元的左边是其输入,包括变量x1.x2.x3与常数项1, 右边是神经元的输出 神经元的输出函数被称为激活函数(activation function ...
- Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现(转)
Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文, ...
随机推荐
- iOS开发之如何在Xcode中显示断点堆栈
昨天有人问我在Xcode中打断点后怎么查看堆栈,今天就简单的聊聊. 首先解释一下,什么是堆栈? 堆:顺序随意:栈区(stack)- 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式 ...
- 前端构建工具-fis3使用入门
FIS3 是面向前端的工程构建工具.解决前端工程中性能优化.资源加载(异步.同步.按需.预加载.依赖管理.合并.内嵌).模块化开发.自动化工具.开发规范.代码部署等问题. 官网地址是: https:/ ...
- webpack 打包图片 能否提高加载速度
正常加载: 打包图片: 结论:当加载资源 数量很多 时,可以提高加载速度
- linux安装配置apache服务(httpd)
1. 安装 httpd. [root@linuxprobe ~]# yum -y install httpd 2. 删除默认欢迎页面 [root@linuxprobe ~]# rm -f /etc/h ...
- iOS数组排序 请求后,数组元素的排序 时间戳,最热,点赞数等
[ZOYSessionManager dataWithUrlString:GetVideoDataComment andParameter:@{@"id":userID,@&quo ...
- jQuery插件实现表格隔行换色且感应鼠标高亮行变色
实现表格隔行换色,且感应鼠标行变色的方法有很多,在本文将为大家介绍的是使用jQuery插件来实现,具体如下 看代码: : css代码:
- js之放大镜效果
HTML: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- UDP示例
android学习笔记18--------------UDP示例 分类: android2011-11-10 10:07 848人阅读 评论(0) 收藏 举报 androidbufferexcepti ...
- Win10 Backup&Restore Start Menu(备份还原开始菜单)
Win10 的开始菜单,不是很稳定!系统装完4天,开始乱了3次,要知道我的开始菜单全屏并且进过尽心布局的,很是心酸! 连着找了几天备份开始菜单的方法,无果!后来发现了下边两个PowerShell命令, ...
- Roslyn 入门:使用 .NET Core 版本的 Roslyn 编译并执行跨平台的静态的源码
Roslyn 是微软为 C# 设计的一套分析器,它具有很强的扩展性.以至于我们只需要编写很少量的代码便能够编译并执行我们的代码. 作为 Roslyn 入门篇文章之一,你将可以通过本文学习如何开始编写一 ...