浏览量: 85 次浏览

CNN卷积神经网络

2019年7月20日 0 作者 Nie Hen

CNN 常用在图像处理上面
在图像上 可以简化网络结构
一张图片上的目标 通常比整张图小很多 因此就可以不需要看整张图

CNN 架构

property1 一些目标比实际图片小很多
property2 相同的目标会出现在不同的位置
property3 对像素进行次采样不会改变目标
前两个可以通过卷积(convolution)来解决最后一个通过最大池(max pooling)解决

enter description here =750*600

卷积convolution
使用滤波器Filter与图片 进行内积 (对应值相乘 结果相加)
先从左上角开始 计算 然后开始移动(移动的步数可以设置) 上面移动完向下移动
依次移动到最后
6* 6的图像使用3* 3的卷积得到4* 4结果

enter description here =600*400

彩色的图像会有RGB三层 立方体
而使用的滤波器也是使用 三层
卷积放到神经网络上
滤波器上的参数就是神经元上的权重

enter description here =600*400

最大池 max pooling
把卷积后的结果进行分组
可以四个一组或者十六个 等等
然后分别去每一组中的最大值 其他值抛弃

enter description here =600*300

enter description here =600*300

#### 实际例子

多通道的feature map再进行滤波器进行卷积 每个滤波器对多通道的卷积结果值会对应像素值加一起 形成一个通道
因此每次添加到卷积层后 通道数会变为该卷积层的滤波器数量
【输入为6 * 6的RGB 三通道图片,经过卷积层 两个尺寸3* 3也是3层的fitter(卷积核又称滤波器)处理 】
【卷积核中的27个数字与分别与样本对应相乘后,再进行求和,得到第一个结果。依次进行,最终得到 4×4 的结果。】
【两个卷积核进行两次 形成两个4* 4的feature map 再组成一个两通道的feature map 作为输出 】

enter description here =600*400

一个灰度图(1个通道)大小28* 28
经过第一个卷积层 25个3 * 3的滤波器 卷积后为一个25通道的feature map每个通道尺寸为26* 26 每个滤波器有9个参数(通道数为1 3* 3的滤波器 133 =9)
经过一个2* 2最大池后每个图像 从26 * 26变成 13* 13 (尺寸/2)
经过第二个卷积层 50个 3 * 3的滤波器 卷积后为50通道的 feature map 每个通道尺寸为11* 11 每个滤波器有9* 25个参数(输入通道数为25 而3* 3的滤波器 2533 =225)
经过一个2* 2最大池后每个图像 从11 * 11变成 5* 5 通道数50
再展开 (flatten) 就是5055 1250个
(Keras是一个编写神经网络的API )

enter description here =700*600

在CNN中,每一层的传递关系,主要就是 height,width 的变化情况,和 channels 的变化情况。