2021李宏毅机器学习笔记--8Convolutional Neural Network CNN卷积神经网络

2021李宏毅机器学习笔记--8Convolutional Neural Network CNN卷积神经网络

  • 摘要
  • 1 CNN可以用于图像处理的原因
    • 1.1鉴别时只需要看图像的某一部分
    • 1.2相同的部位出现在图像不同的位置无需重复训练
    • 1.3二次抽样缩小图像
  • 2 CNN的步骤
    • 2.1 Convolutional卷积
      • 2.1.1 黑白图像
      • 2.1.2 彩色图像
    • 2.2 Max Pooling最大值池化
    • 2.3 Flatten扁平化操作
  • 3 结论与展望

摘要

本文主要针对CNN(Convolutional Neural Network)卷积神经网络进行介绍,CNN可以用于图像处理。图像是由一个个像素点组成的,即使是一张像素很低的图,例如600*600的图像,它的像素点也高达360000个,当直接用fully connected feedforward network进行处理时,神经网络一层一层处理图片,传入的参数量还是特别多的。而经过CNN会去掉一些不必要的像素点以便简化问题,减少传入的参数,用比较少的参数进行图像处理。

1 CNN可以用于图像处理的原因

1.1鉴别时只需要看图像的某一部分

当输入一个完整的图片时,神经网络中的神经元并不会对整个图像进行操作,例如鉴别图像中是否有鸟嘴,只需要处理带有鸟嘴部分的图像即可,而不用整个图像都操作。
2021李宏毅机器学习笔记--8Convolutional Neural Network CNN卷积神经网络_第1张图片

1.2相同的部位出现在图像不同的位置无需重复训练

比如下面两张图像中都有鸟嘴出现,但是鸟嘴出现的位置不太一样,一个在左上角,一个靠近中间部位,但是针对这一种相同的部分出现在图像的不同位置的情况,CNN不需要针对两种位置做专门的训练,只需要训练其中一种部位鉴别即可,然后数据共享,另外的也就会鉴别了。
2021李宏毅机器学习笔记--8Convolutional Neural Network CNN卷积神经网络_第2张图片

1.3二次抽样缩小图像

二次抽样并不会改变目标,他只是让目标更小,减少像素点,可以缩少使用的参数。
2021李宏毅机器学习笔记--8Convolutional Neural Network CNN卷积神经网络_第3张图片

2 CNN的步骤

CNN卷积神经网络主要针对图像,它的目的是减少传入的参数。当输入一个图像时,卷积神经网络会对图像进行两个重复的操作,Convolutional卷积和Max Pooling最大值池化这两个操作,这两个步骤是CNN主要的做法。然后进行Flatten扁平化操作,然后经过全连接前馈网络输出结果。

2021李宏毅机器学习笔记--8Convolutional Neural Network CNN卷积神经网络_第4张图片在上述1中提到的三种操作中,前两种使用卷积得到结果,后一种使用最大值池化得到结果。

2021李宏毅机器学习笔记--8Convolutional Neural Network CNN卷积神经网络_第5张图片

2.1 Convolutional卷积

2.1.1 黑白图像

假设现在输入一个66的黑白图像,还有一些33的filter滤波器,其实filter可以看作是矩阵,每一个filter都都可以让我们只观察图像的某一个部分,这就解决了第一个问题,即只看图像的某一部分就可以进行鉴别而不用看整个图像上所有的像素点。那么如何用这些filter处理这张图像以达到我们减少参数传递这件事呢?这就用到了convolutional卷积。
2021李宏毅机器学习笔记--8Convolutional Neural Network CNN卷积神经网络_第6张图片
首先从图像的左上角开始,圈住一块与filter大小一致的区域,然后将这块区域与filter进行内积处理得到一个值,然后向右移动,移动的步伐大小看需要,平移后内积又可得到新的数值,以此为例,更新完全部的值可得到一个4*4的新的矩阵。
2021李宏毅机器学习笔记--8Convolutional Neural Network CNN卷积神经网络_第7张图片不同的过滤器可以得到不同的矩阵,将所有的滤波器操作完则得到feature map。

2021李宏毅机器学习笔记--8Convolutional Neural Network CNN卷积神经网络_第8张图片
我们观察得出得44矩阵的结果,最大值为3,这个3在44矩阵的左上方和左下方出现,我们看一下Filter1的中斜对角全部为1,而图片6*6的矩阵中的左上角和左下角的斜对角线也都是1,这个反映出这个Filter的目的就是检测图片上斜对角为1的像素,这个事情就解决了我们上面的第二个问题相同的部分出现在不同的位置,无需做重复的训练,只需要训练出一个部分,然后共享数据就可以了。

2021李宏毅机器学习笔记--8Convolutional Neural Network CNN卷积神经网络_第9张图片

2.1.2 彩色图像

彩色图像就是RGB组成的,一个彩色的图像就是三个矩阵叠在一起,366是立方体。那么处理彩色的图像时,滤波器也相应地换成三层叠加的,333的filter,然后进行内积运算就可以了。

2021李宏毅机器学习笔记--8Convolutional Neural Network CNN卷积神经网络_第10张图片

2.2 Max Pooling最大值池化

经过上述卷积之后可以得到feature map,拿出不同的filter得到的结果进行max pooling 操作,让其中44的矩阵,4个一组组合,选出其中最大的或者平均值,
2021李宏毅机器学习笔记--8Convolutional Neural Network CNN卷积神经网络_第11张图片所以做完一次卷积和最大值池化可以把原来6
6的图像变成2*2的图像。每一个filter代表一个维度。
2021李宏毅机器学习笔记--8Convolutional Neural Network CNN卷积神经网络_第12张图片上述过程可以重复很多次,每次得到的图像都比原来的图像要更小,filter的个数代表维度的个数。

2021李宏毅机器学习笔记--8Convolutional Neural Network CNN卷积神经网络_第13张图片

2.3 Flatten扁平化操作

flatten的意思是把最后得到的最新的图像拉直,然后把他放进fully connected feedforward network中就可以可,按照以前学习过的全连接前馈网络进行操作就行。

2021李宏毅机器学习笔记--8Convolutional Neural Network CNN卷积神经网络_第14张图片

3 结论与展望

本文中介绍了CNN的用途,它经常用作图像处理,图像是由像素点组成的,像素点可以看作参数,CNN在图像处理时,它可以把一些不必要的像素点去掉,然后用比较少的参数进行图像处理。例如convolutional卷积操作使得它只进行某一部分的鉴别而非必须使用整张图像的所有像素点,对于图像中不同位置出现的相同的部位,也可以只进行一次训练然后进行数据共享,max pooling最大值池化可以二次抽样对图像进行缩小。得到的图像是更小的图像,拥有更少的参数,然后再进行全连接前馈网络操作即可得到结果。在以后的学习中我们将进行DNN,RNN的对比学习。

你可能感兴趣的:(深度学习,卷积神经网络,卷积,神经网络)