我的笔记本:PCAnet

参考:《PCANet: A Simple Deep Learning Baseline forImage Classification?》

一.CNN

笔记:首先要知道卷积神经网络CNN

我的笔记本:PCAnet_第1张图片

图1

 就这个图表示一下,我理解的就是可以消除很多噪声信号,比如在一个图像中噪声白点的附近是很多黑色的,通过卷积,最终提取到的特征就只有一个黑色的啦。

比如三维的压缩成二维.如图2所示。

我的笔记本:PCAnet_第2张图片

图2

三维的空间,我们分别从三个维度去获取信息,那么可以得到三个输入矩阵,通过两个过滤器及卷积层可以获得压缩后的数据特征。

我的笔记本:PCAnet_第3张图片

图3

 

二.PCAnet

 还是用图片来解释,假设输入图像(样本)N个,图像的大小是m×n(m×n个像素格子)

在图片中取一个patch,大小为: p×q  (像素格子)

如下图4所示

我的笔记本:PCAnet_第4张图片

图4

 他分为几个阶段:①一级PCA②二级卷③输出层

1.第一阶段

知道卷积一次后我们得到的一张图片的大小是\widetilde{m}\times \widetilde{n},其中

\widetilde{m}=m-[p/2]

\widetilde{n}=n-[q/2]

[p],表示对p取整,取大于等于他的整数。举例说明,如下:

一个大小是4×4,取一个补丁patch大小为3×3,只能按序在该图中取4个patch,那么卷积层肯定当然也是3×3,输出层呢?只有四个结果。

\widetilde{m}=4-[3/2]=2,n也一样的求。

我的笔记本:PCAnet_第5张图片

图5

 所以,

第i个图像的第k个patch为:x_{i,k}\in R^{pq\times 1}     [一个patch中所有的数据共计pq个]

第i个图像取均值后的信息矩阵:\overline{X_{i}}=[{\overline{X}_{i,1}},{\overline{X}_{i,2}},...,{\overline{X}_{i,\widetilde{mn}}}]\,

 其中,\overline{X}_{i,j}=X_{i,j}-(1^{T}X_{i,j}1)/pq

 N个图像去均值后的信息矩阵为:\overline{X}=[{\overline{X}_{1}},{\overline{X}_{2}},...,{\overline{X}_{i,N}}]

 然后我们从该信息矩阵的范数的特征向量中取出前L_{1}个作为过滤器:

W^{1}=[w_{1}^{1},w_{2}^{1},...,w_{L_{1}}^{1}]

怎么计算这个过滤器??

目标函数:PCA在一组正交过滤器内的最小重建误差。

min\left \| \overline{X}-VV^{T}\overline{X} \right \|_{F}^{2},得出VV^{T}=I_{L_{_{1}}}

其中,该式的解就是L1的特征向量,V\in R^{pq\times L_{1}}

SO,PCA过滤器: 

 W_{l}^{1}=mat_{p,q}(q_{l}(XX^{T}))

其中,mat_{p,q}(K)是将K\in R^{pq} 映射到矩阵W中

q_{l}(XX^{T})XX^{T}的第l个特征向量

  2.第二阶段: 

第一阶段的输出就是第二阶段的输入,以同样的卷积方法做,此时的过滤器个数为L2个,那么最终一个图片将输出    L1×L2张图片信息。

注意,其中第一个阶段的输出的大小仅仅为   \widetilde{m}\times \widetilde{n}    ,所以要进行一个补零操作(在边界处补填零),目的是为了它的大小和最初的图片大小m×n一样大。

同样要进行数据处理,去均值,得信息向量,然后进行二次卷积(有L2个过滤器)

前两阶段用个图表示:

我的笔记本:PCAnet_第6张图片

图6. PCAnet的前两个阶段的表示图

 

3.输出级

 对输出做二值化处理,计算粗来正数取1,负数取0;

编码:然后把二进制转化成十进制,可以得到一个全是整数的图像,然后呢输入图像的特征被定义为一组块直方图

第三阶段不太明白了,反正就是用其他数学形式把特征表示出来……
继续学习,可交流求指点!

你可能感兴趣的:(卷积神经网络,cnn)