当前位置: 首页 > 工具软件 > auto-tag > 使用案例 >

论文笔记001-Stacked Convolutional Auto-Encoders for Hierarchical Feature Extraction

田彬郁
2023-12-01

论文笔记 之 卷积自编码网络

  突然发现好记性不如烂笔头真的很有道理,到了写毕业论文的时候,发现之前看过的论文都貌似没看过。今天写一下关于《Stacked Convolutional Auto-Encoders for Hierarchical Feature Extraction》的笔记,后期慢慢将以前比较好的论文补上来,希望对我对大家都有收获。
  论文可以自己搜,懒得搜的可以去CSDN免费下载

网络结构

  进入正题,这篇论文写的是在卷积神经网络的卷积层加入Denoise Autoencoder代替,池化层则采用Max pooling。这样2层就构成一个CAE结构,将多个CAE串起来,就构成了含有深度结构的CAEs。CAEs先使用无监督逐层训练方法预训练,然后采用BP算法进行微调,也就是使用不带规则化的梯度下降算法, 根据作者所做的实验来看,结果比较好。不知道描述的清楚与否,作者也没有给出网络结构图。

学习算法

  卷积层-卷积:初始化k个卷积核(W),每个卷积核搭配一个偏置b,与输入x卷积( )后生成k个特征图h,激活函数σ tanh 。公式如下:
   hk=σ(xWk+bk)(1)
  卷积层-自编码:每张特征图h与其对应的卷积核的转置( W˜=WT )进行卷积操作并将结果求和,然后加上偏置c,激活函数 σ 仍然是 tanh 。公式如下:
y=σ(ΣkhkW˜k+c)(2)
  卷积层-更新权值:要更新权值,首先要确定cost function,此处作者采用的MSE(最小均方差)函数,即:目标值减去实际值的平方和再求均值,2n是为了简化求导。其中 θWb 。公式如下:
   E(θ)=12nΣni=1(xiyi)2(3)
  此处有个问题,经过2次卷积操作以后,输入x和输出y是相同的维度吗?作者没有明确指出,但是我是这样考虑的:公式(1)卷积操作采用valid方式,比如原图 x=2828 ,卷积核 W=55 ,那么特征图 h=2424 ;公式(2)卷积操作采用full方式,输入 h=2424 ,卷积核 WT=55 ,那么输出 y=2828 ,这样在公式(3)中, x与y就同维度了。
  继续,确定好cost function以后,就是对W和b求导,公式如下:
   E(θ)Wk=xδhk+h˜kδy(4)
  由于论文没有具体给出 δ 的值,只是说

δ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

 类似资料: