10、【李宏毅机器学习(2017)】Convolutional Neural Network(卷积神经网络)

上一篇博客介绍了神经网络构建的整个过程以及优化思路,本篇博客将进一步介绍卷积神经网络(CNN,Convolutional Neural Network)。


目录

  • Why CNN?
  • CNN模型
    • Convolution
    • Max Pooling
    • Convolution+Max Pooling
  • Keras实战演练


Why CNN?

  • CNN本质是原来full-connected神经网络的简化,参数大大减少,因此计算的效率比较高,且在一定程度上消除过拟合的风险。直观地以图像识别为例,在识别鸟类图像时,识别“喙”这一特征并不需要在整个图像中找,而是在一个小的区域中搜索;
  • 一个特征(比如“喙”)可能出现在图的任何位置,我们只要考虑这一特征的提取而不用管特征在图形的具体位置;
  • 图形可以做重抽样而不影响图像
    这三个性质对应了CNN中的两个重要概念Convolution和Max Pooling。
    10、【李宏毅机器学习(2017)】Convolutional Neural Network(卷积神经网络)_第1张图片

CNN模型

Convolution

在CNN中,每个filter(特征)是一个矩阵,里面的参数是通过学习学出来的(如full-connected神经网络中的),现在假设我们已经知道每个filter矩阵的数值(实际操作流程是我们设置filter矩阵的个数、形状,矩阵中的数值则是通过算法学习得到),我们现在对filter1进行分析。
10、【李宏毅机器学习(2017)】Convolutional Neural Network(卷积神经网络)_第2张图片

计算的方式是用filter1和原数据的同样形状部分做内积,stride控制每次红色框的移动单位,此时得到的矩阵(橘色部分)称为Feature Map
10、【李宏毅机器学习(2017)】Convolutional Neural Network(卷积神经网络)_第3张图片

如图所示,6*6的像素矩阵表示为36维的输入向量,上述filter的内积运算可以表示为对应维数据的矩阵运算,权重颜色和filter的颜色一一对应,此时所有矩阵计算共有相同的权重矩阵,由此可以说明CNN本质是full-connected神经网络的简化。
10、【李宏毅机器学习(2017)】Convolutional Neural Network(卷积神经网络)_第4张图片

Max Pooling

对filter计算过后的Feature Map分组(如下,做2*2分组,也可以使用任意x*x分组),并保留每个组最大值,此时得到更小的数据(4*42*2),这个过程被称为Max Pooling。
10、【李宏毅机器学习(2017)】Convolutional Neural Network(卷积神经网络)_第5张图片

Convolution+Max Pooling

完整的一次Conv与Max Pooling处理之后,原始数据(6*6)被转化为较小的数据(2*2)。
10、【李宏毅机器学习(2017)】Convolutional Neural Network(卷积神经网络)_第6张图片

在实际的图像处理中往往会进行多次的完整Conv与Max Pooling,最终大大减小数据矩阵的行列,然后将数据矩阵进行flatten处理(如把2*2维的数据矩阵转换为4维的向量)得到输入向量,输入Fully Connected神经网络。
10、【李宏毅机器学习(2017)】Convolutional Neural Network(卷积神经网络)_第7张图片

Keras实战演练

  1. 设置第一个convolution层——输入数据是28*28的二维数据、25个3*3的filter
  2. 设置第一个Max Pooling层——按照2*2分组
    10、【李宏毅机器学习(2017)】Convolutional Neural Network(卷积神经网络)_第8张图片

  3. 经过第一个convolution层的运算过后28*28维度的数据变为25*26*26的Feature Map(25个维度为26*26的特征矩阵)

  4. 经过第一个Max Pooling层的运算过后25个维度为26*26的特征矩阵变为25*13*13的Feature Map(25个维度为13*13的特征矩阵)

一般靠近input的神经层设置的filter数目少,靠近output的神经层设置的filter数目多
10、【李宏毅机器学习(2017)】Convolutional Neural Network(卷积神经网络)_第9张图片

最后将最终的Feature Map进行flatten处理之后,输入神经网络。
10、【李宏毅机器学习(2017)】Convolutional Neural Network(卷积神经网络)_第10张图片

你可能感兴趣的:(学习笔记,李宏毅机器学习(2017),笔记)