卷积神经网络CNN

一些概念

  • 特征图(\(feature-map\)):以灰度图片为例,由于图片是由一个一个的像素格组成的,每个像素格中的数字大小表示了在该处颜色的深浅,比如灰度图像中的数字越大,在该点的颜色就越接近黑色,越小则越接近白色,即该点的颜色会随着数字的增大而从白变成灰最后完全变成黑色。灰度图像的特征图只有一层,用一个矩阵表示,即\(M×N×1\),其中的\(1\)表示只有一层。而彩色图像用的是\(RGB\)组合的,因此其特征图有三层,即其特征图是三个维度相同的矩阵堆叠而成的,即\(M×N×3\)

  • 卷积核(层)(\(convolutional \quad kernel\)):用于卷积计算,由一层或多层矩阵组成,每个矩阵的行数和列数相等且均为奇数,矩阵的层数与特征图中的矩阵层数相等。每个核与矩阵相乘可以得到一个新的矩阵,因此一层中若有多个核,则可得到多个矩阵。

  • 池化层(\(Pooling\)):有两种,分别为\(Max-Pooling\)\(Mean-Pooling\),即最大池化和平均池化,具体计算方法可在网上查找。


卷积的作用

  • 卷积层作用
    \(eg:\)假设我们想要识别下面这张老鼠图中被黄色方框框住的部分,它的特征图矩阵如下图
    imageimage
    对此我们设计的一个卷积核如下图
    image
    将卷积核与\(feature-map\)中我们要进行识别的那部分的矩阵进行卷积(对应点相乘)后,可以获得一个很大的值\(6600\),而在其他部分,由于其特征矩阵(未画出)与该卷积核不会那么相似,因此得到的值也会比较小,这样我们便可以通过矩阵数值的大小来判断出某张图中是否含有黄色方框中的特征了,同理,我们还可以利用其他的卷积核来判断这张图是否有老鼠的一些其他的特征。因此卷积层可以用来提取不同的特征。

  • 池化层作用
    若使用\(Mean-Pooling\),其作用主要是使特征的范围扩大,但同时它也会导致图中的一些细节被抹除。若使用\(Max-Pooling\),则可以很好的保留特征,防止特征被周围的区域弱化。


为什么用\(CNN\)

\(CNN\)主要用于提取局部特征,全连接的神经网络虽然也可以做到,但由于图片等信息是用矩阵表示的,若将其压缩为一维向量再用全连接神经网络处理,神经网络中的参数将会非常的多,迭代一次的代价及其大,因此不适合处理输入数据庞大的图片。

posted @ 2022-09-13 17:03  kris-phl  阅读(19)  评论(0)    收藏  举报