深度学习之卷积神经网络CNN Convolution Neural Network

CNN 卷积神经网络

CNN常用于图像处理,图像识别等。

一般的神经网络进行影响处理的过程

以用一般的神经网络进行图像分类为例。影藏层中 第一层为最基础的分类类别。第二层在第一层的基础上继续分类。比如第一层中识别出棕色和直线条纹,则判定为木头条纹,若第一层识别出棕色横线和竖线则可以判定是门框的一部分。继续这么一层一层往下判断,就可以最终判断出是否是车子,人等。如下图所示。
在这里插入图片描述

存在的问题

一般的神经网络是全连接层神经网络,需要的参数过多。例如,假设图片像素是100*100,那么展开成输入层矩阵后就是1万维,彩色则是3万维。假设最终输出是1000个分类类别,那么可以想象中间隐藏层的参数数量是非常庞大的。那么CNN要做的事情就是简化参数数量。

CNN基本思路

几个要点

1、图片中的一些模型要比整张图片要小很多,一个神经元不用讲整张图片都识别一遍才判定是否有改模型。如下图所示,我们只需要识别红色方框部位的图片,就能判定是否有鸟嘴。
在这里插入图片描述
2、同样的模型,可能同时存在图片中的不同部分,也不会都出现在同一位置。如下图所示,两个图片中的鸟嘴在不同位置,但是不用设置两个神经元来识别。
在这里插入图片描述
3、对图像进行降维采样并不会影响人对图片的识别。因此我们可以通过降维采样来缩小图片。

CNN整体架构

如下图所示,输入一张图片后可以进行多次的卷积化和最大池化
在这里插入图片描述
对之前所提到的三个要点,第一二个要点就是用convolution来解决,对于第三个要点,就是用max pooling来解决。

Convolution 卷积

Convolution就是通过卷积核判断是否有某一个pattern模型的出现。如下图:假设有一个6*6维的像素矩阵,以及通过学习获得的卷积核,也就是下面的filter matrix。Filter Matrix是用来识别图像中某一个同等大小的部位是否是特定的模型。如下图,第一个卷积核就可以判断图中是否有斜线。
在这里插入图片描述

卷积核运行过程

如图,将卷积核Filter1与图像左上角红色框框内的33矩阵进行內积得到3,然后将红色框框左移一格,同样內积,如此反复移动,知道将整个图片都遍历完。得到一格44的矩阵,这个矩阵就可以用来判断图像中是否有斜线,以及在什么地方。。通过图中可以看出,斜线出现在左上角和右下角。在这里插入图片描述
实际中是有非常多个的Filter,会得到非常多个的4*4內积矩阵,如下图。就得到了Fearture Map
在这里插入图片描述
当是彩色图片时,卷积核是一个三层的二维矩阵。
在这里插入图片描述

Convolution在神经网络中的实现

Convolution在神经网络中的实现,与全连接层相比,减少了很多参数,如下图所示,将66的图片展开成一个136维的矩阵,连接如下图所示,红色方框部位对应一个神经元,只连接了9个input。
红色方框的移动过程就是
在这里插入图片描述

Max Pooling

Max Pooling最大化池化,就是降维采样的过程。将Convolution过程中得到的Fearture Map进行降维,可以以4个为一组,取平均值或者取最大值
在这里插入图片描述
做完一次Convolution 和Max pooling就可以对图片进行降维,如下图所示,得到一格新的2*2维的矩阵。而这个过程可以进行多次。但得注意重复次数
在这里插入图片描述

Flatten

即将Max Pooling后的Fearture Map拉直,从而作为新的输入层输入到全连接层神经网络中。
在这里插入图片描述

最后再使用全连接层神经网络进行分类即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值