论文笔记 之 卷积自编码网络
突然发现好记性不如烂笔头真的很有道理,到了写毕业论文的时候,发现之前看过的论文都貌似没看过。今天写一下关于《Stacked Convolutional Auto-Encoders for Hierarchical Feature Extraction》的笔记,后期慢慢将以前比较好的论文补上来,希望对我对大家都有收获。
论文可以自己搜,懒得搜的可以去CSDN免费下载。
网络结构
进入正题,这篇论文写的是在卷积神经网络的卷积层加入Denoise Autoencoder代替,池化层则采用Max pooling。这样2层就构成一个CAE结构,将多个CAE串起来,就构成了含有深度结构的CAEs。CAEs先使用无监督逐层训练方法预训练,然后采用BP算法进行微调,也就是使用不带规则化的梯度下降算法, 根据作者所做的实验来看,结果比较好。不知道描述的清楚与否,作者也没有给出网络结构图。
学习算法
卷积层-卷积:初始化k个卷积核(W),每个卷积核搭配一个偏置b,与输入x卷积(
卷积层-自编码:每张特征图h与其对应的卷积核的转置(
卷积层-更新权值:要更新权值,首先要确定cost function,此处作者采用的MSE(最小均方差)函数,即:目标值减去实际值的平方和再求均值,2n是为了简化求导。其中
此处有个问题,经过2次卷积操作以后,输入x和输出y是相同的维度吗?作者没有明确指出,但是我是这样考虑的:公式(1)卷积操作采用valid方式,比如原图
继续,确定好cost function以后,就是对W和b求导,公式如下:
由于论文没有具体给出
δh and δy are the deltas of the hidden states and the reconstruction, respectively.
我自己尝试了好久,但是由于功底差,未能求解出,希望有能力的朋友可以指点一下。(y是关于h和W˜的,而h又是关于W的)
然后就可以使用随机梯度下降法更新权值,论文中未提到偏置的更新。
Max pooling:引入Max pooling下采样技术,获取到特征的平移不变性。Max pooling就是pooling时选取最大值。由于采用了pooling技术,因此就没有必须使用L1/L2规则化项了。
实验结果
将上述卷积层和pooling层堆积起来,形成CAEs,最后加入SVMs或其他的分类器。据实验结果显示,CAEs在泛化性、鲁棒性方面表现特别好,尤其是在无监督训练界。至于有多好,大家可以去看一下论文的实验及结论部分。
参考文献
[1]: Stacked Convolutional Auto-Encoders for Hierarchical Feature Extraction