卷积神经网络(CNN)介绍

本文是B站李宏毅老师机器学习学习笔记

一个网络结构想要看图片中有没有出现某一个图案,不需要看整张图片,只需要看图片的一小部分就可以决定。

CNN的整体架构

卷积神经网络(CNN)介绍_第1张图片

 

卷积神经网络(CNN)介绍_第2张图片

在Convolution中有很多Filter,每一个Filter都是一个矩阵,矩阵的大小是自己设计出来的,数组里面的数值都是学出来的。

Convolution(卷积)

假设现在有一个6x6像素的图片,Filter的大小是3x3。

卷积神经网络(CNN)介绍_第3张图片

先将右上角的Filter放在6x6矩阵的左上角,然后对应元素相乘得3,然后向右移动,移动的大小由stride控制,当stride=1时,右移动一个位置,一直移动到和最右侧重合,每次移动后计算Filter与6x6矩阵重合元素相乘的和。从左到右分别是3、-1、-3、-1

卷积神经网络(CNN)介绍_第4张图片

第一排扫完后,Filter向下移动扫第二排,然后向右移动。

卷积神经网络(CNN)介绍_第5张图片

以此类推,当Filter扫到右下角的时候,得到的结果是-1。这样的原本是6x6的矩阵,做完卷积后得到的是一个4x4的矩阵。

卷积神经网络(CNN)介绍_第6张图片

这个Filter可以找到连续三个1的存在,可以发现移动完后左上角和左下角的值最大并且相同,就可以发现原来图片的左上角和左下角的像素有相同的部分。   

卷积神经网络(CNN)介绍_第7张图片

假设现在有多组filter,然后对每个Filter做卷积后得到如下的Feature Map。

卷积神经网络(CNN)介绍_第8张图片

可以将Filter1和Filter2的结果想象成Feature Map,可以想象成一个新的image。

刚才是对黑白图片做的卷积,彩色图片由RGB数值来表示,每一个颜色的数值称为一个通道,所以彩色图片由三通道组成,此时的卷积所使用的Filter不一样。

此时的Filter是一个3x3x3的立方体,最后一个3表示是3通道,所以一个Filter有27个参数。

卷积神经网络(CNN)介绍_第9张图片

 

其实卷积(Convolution)是全连接(Fully Connected)的一种简化版

将一个6x6图像展开后可以得到一个列向量,维数是36,此时用Filter做卷积时,第一次试FIlter 先连接图中列向量的(1、2、3)、(7、8、9)、(13、14、15)处。此时的权重就是Filter中的数值。Filter 向右移动做卷积时,所连接列向量的位置分别向下移动一位。此时连接的权重不变。

这种卷积方式的好处在于每次权重的值是一样的,这样就大大减少了参数量,比全连接(Fully Connected)的参数量少很多。

卷积神经网络(CNN)介绍_第10张图片

Max Pooling

对Filter1和Filter2卷积得到的数组进行分组,假设现在做完卷积后得到的是一个4x4的矩阵。然后对这几个数值4个一组进行分组,分组后的结果如下图所示。

卷积神经网络(CNN)介绍_第11张图片

然后分别获取每一组中的最大值。

卷积神经网络(CNN)介绍_第12张图片

做完一次卷积和max Pooling,就会把原来的6x6的图像变成2x2的图像,得到一个比原来图片小的图片。    

卷积神经网络(CNN)介绍_第13张图片

可以将上述操作进行重复进行。

卷积神经网络(CNN)介绍_第14张图片

Flatten

如果你觉得现在的图片够小了那么下一步就是要做Flatten

卷积神经网络(CNN)介绍_第15张图片

在做Flatten时,我们做的就是将这个图片拉直,然后传到全连接网络里面。

卷积神经网络(CNN)介绍_第16张图片

原来DNN网络的输入是一个向量,现在CNN的输入是一个三维的张量。RGB三维矩阵。

 

你可能感兴趣的:(深度学习)