4.27-CNN简介

CNN是convolutional neural network卷积神经网络。一般用来做图像处理,处理的过程如下图。
首先这个猫的图像会把像素点按照顺序录入为一个像素向量,有多少个像素点,这个向量就有多长。
第一层的时候可能会检测一些很基础的颜色或者线条。
第二层就可能检测由颜色和线条组成的图案。
第三层会更复杂,比如这种蜂巢的图案或者人的上半身,可能到这一步就能得出结论了,又或者有下一层检测更复杂的。
那么问题就是这个 网络能变简单吗,通过图像的特性。答案是可以。举了几个例子,我这里不放图。
比如鸟嘴、眼睛这些小的图案,它会比整张图小得多,不必要在整张图里面寻找。
比如两张图里面都有鸟嘴,只是在不同的区域,那么有一些参数就可以被公用。
比如subsample二次抽样像素的向量,不会改变目标,就是把长方形的图像通过抽样变成正方形,其实内容不会变。
CNN的组成如下图,图像进来之后是一个个的卷积和池化,之后会进入flatten平滑层,然后再是一个全连接的前馈网络。
刚才说到的几个图像的特性就可以用卷积层和池化层来实现。卷积可以实现小图案和不同区域图案,池化可以改变图像长宽。
   

Convolution为什么能满足图像的这两个特性?
首先卷积层其实就是由一系列的filter组成的,这里的filter相当于一个neuron,其实就是一个矩阵。如下,如果今天的特征图案就是一条斜线,能够用这个3*3的矩阵表示,那其实就满足了 小图案检测可以不需要将整张图看进去的特性。然后用这个矩阵从左上角开始做内积,做完一个就移动一个stride步长,stride是可以自己设定的,设的2就会移动两格。所有的都计算完之后得到结果,也就是这个橘黄色的新矩阵。然后我们就能通过这个矩阵中的数值来得知6*6里面是否由符合的特征,比如如果符合的话,得到的就是3这个值,这里来由两个地方有3,这两个地方都是斜线,这其实就满足了 相同图案会出现在不同地方的特性。所有的filter都算完之后,合在一起就是feature map特征图。
 
特别一提的是,如果是彩色图像,其实并不会分开来算,而是分RGB三个通道变成3维的,同时filter也是三维的。
刚才也说了卷积层的每个filter相当于neuron,它和全连接层差别其实就是它减少了一些参数,如何减小的,如下图。在做卷积运算的时候,比如计算得出3这个数的时候,对于这个6*6的输入来说,本来一个每个数都得到计算,但是其实只有123,789,131415这9个数被计算了,也就是图中连线的样子, 其他的数字没有参与这一次的计算,他们的W参数就不需要了。并且在进行下一个计算的时候,就是得到-1这次结果的计算时,不仅只有一部分参与计算, 这两次计算的w是一样的,都是filter里面的值,所以可以共享这一部分参数
   

Maxpooling是什么?什么作用?
这个之前有看过,并且也比较简单,所以好说。它就是把前一步卷积得到的feature map分格子取最大值或者均值,如下就把4*4的处理成2*2的了。有几个filter,后面这个image就有几个channel,所以前面结点的个数决定了这一步结果的深度。
在CNN里面,卷积加池化可以一直做,重复做,每次做都会得到一个更小的image,上下组的卷积池化一般会用相同的filter个数,这样就避免了channel,也就是深度的叠加,它会所有channel一起计算,filter长得像立方体一样。
Flatten就更简单了,就是把卷积池化输出的这个立方体拉直成一个向量,作为后面全连接层的输入,即可。图都不想放。
          
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值