特殊性
- 神经元间的连接是非全连接的
- 同一层中某些神经元之间的连接的权重是共享的(即相同的)
权值共享
使用同一个Kernel
池化
转:http://blog.csdn.net/geekmanong/article/details/50605340
CNN的池化(图像下采样)方法很多:Mean pooling(均值采样)、Max pooling(最大值采样)、Overlapping (重叠采样)、L2 pooling(均方采样)、Local Contrast Normalization(归一化采样)、Stochasticpooling(随即采样)、Def-pooling(形变约束采样)。
例如最大池化
为了简单起见,我用上面的图片作为例子,假设上面的图片大小是4*4的,如上图所示,然后图片中每个像素点的值是上面各个格子中的数值。然后我要对这张4*4的图片进行池化,池化的大小为(2,2),跨步为2,那么采用最大池化也就是对上面4*4的图片进行分块,每个块的大小为2*2,然后统计每个块的最大值,作为下采样后图片的像素值,具体计算如下图所示:
feature maps
转:http://blog.csdn.net/geekmanong/article/details/50605340
特征图,一张图片经过一个卷积核进行卷积运算,我们可以得到一张卷积后的结果图片,而这张图片就是特征图。在CNN中,我们要训练的卷积核并不是仅仅只有一个,这些卷积核用于提取特征,卷积核个数越多,提取的特征越多,理论上来说精度也会更高,然而卷积核一堆,意味着我们要训练的参数的个数越多。在LeNet-5经典结构中,第一层卷积核选择了6个,而在AlexNet中,第一层卷积核就选择了96个,具体多少个合适,还有待学习。
LeNet-5结构及参数计算
转:http://blog.csdn.net/geekmanong/article/details/50605340
输入:
32∗32
的手写字体图片,这些手写字体包含
0 9
数字,也就是相当于
10
个类别的图片
输出:分类结果,
0 9
之间的一个数(softmax)
LeNet-5结构
输入层:
32∗32
的图片,也就是相当于
1024
个神经元
C1层:选取
6
个特征卷积核,大小为
输入层与C1层之间的参数:
6∗(5∗5+1)
,对于卷积层C1,每个像素都与前一层的
5∗5
个像素和
1
个bias有连接,有
S2层:池化,是一个下采样层(为什么是下采样?利用图像局部相关性的原理,对图像进行子抽样,可以减少数据处理量同时保留有用信息),有
6
个
C1与S2之间的参数:每一个
C3层:选取卷积核大小为
5∗5
,得到新的图片大小为
10∗10
我们知道S2包含:
6张14∗14
大小的图片,我们希望这一层得到的结果是:
16张10∗10
的图片。这
16
张图片的每一张,是通过
S2
的
6
张图片进行加权组合得到的,具体是怎么组合的呢?
S2与C3之间的组合
前
S4层
池化,窗口大小为
2∗2
,有
16
个特征图,总共有
32
个参数
C3与S4之间的参数
16∗(25∗4+25)=2000
个连接
C5层
总共
120
个feature map,每个feature map与
S4
层所有的feature map相连接,卷积核大小是
5∗5
,而
S4
层的feature map的大小也是
5∗5
,所以
C5
的feature map就变成了1个点,共计有
120(25∗16+1)=48120
个参数。
F6层
全连接
F6
相当于MLP中的隐含层,有
84
个节点,所以有
84∗(120+1)=10164
个参数。
F6
层采用了正切函数。
输出层
采用了RBF函数,即径向欧式距离函数