李宏毅机器学习(9)

CNN

Why CNN for Image

FNN 处理图片的缺点

  • 需要很多的参数假设有一张尺寸100×100的图片(尺寸已经算很小了),那输入层就有100×100×3=30K个像素,假设第一个隐藏层有1K个神经元(一个神经元包含30K个参数),这就已经需要30M个参数了……
  • 该架构中每个神经元就是一个分类器,这是没必要的第一个隐藏层作为最基础的pattern分类器(比如判断有无绿色、边缘等),第二个隐藏层基于第一个隐藏层继续做pattern分类(比如木头、肉类),以此类推……

李宏毅机器学习(9)_第1张图片

图片的一些性质

  1. Some patterns are much smaller than the whole image.
    李宏毅机器学习(9)_第2张图片
  2. The same patterns appear in different regions.
    李宏毅机器学习(9)_第3张图片
    3.Subsampling the pixels will not change the object.
    李宏毅机器学习(9)_第4张图片

CNN架构

CNN可以总结为:多次的Convolution和Max Pooling,然后再用一个Flatten,将结果放入FNN中。、

Convolution

假设Image是一个 6 × 6 6 \times 6 6×6的矩阵,值由输入获得。定义Filter(卷积核)是对应的一个神经元。在这里,一个Filter是一个 3 × 3 3 \times 3 3×3的矩阵,值由学习得到。
李宏毅机器学习(9)_第5张图片
随后,将Filter和Image的每个 3 × 3 3 \times 3 3×3的子矩阵做内积,得到的值又构成了一个 4 × 4 4 \times 4 4×4矩阵,称为特征图(Feature Map)。
李宏毅机器学习(9)_第6张图片
同样的,在处理彩色图片的时候,一个颜色有三个数值表示,就相当于Image是一个三维矩阵,则Filter也要是三维的。
李宏毅机器学习(9)_第7张图片

Convolution VS Fully Connected

Convolution 无疑比Fully Connected更有优势,主要有两个优点。

  1. Convolution 模型的参数更少
    李宏毅机器学习(9)_第8张图片
  2. Convolution 可以在不同区域做卷积时共享参数
    李宏毅机器学习(9)_第9张图片

Max Pooling

在Convolution 之后,对得到的矩阵(如本例中的 4 × 4 4 \times 4 4×4的矩阵)进行划分,对每个区域取一个最大值,再次组成一个矩阵。
李宏毅机器学习(9)_第10张图片
李宏毅机器学习(9)_第11张图片

Flatten

经过一系列的Convolution和Max Pooling,将得到的特征图展开排列,作为FNN的输入,最后输出结果。
李宏毅机器学习(9)_第12张图片

你可能感兴趣的:(李宏毅机器学习课程笔记,深度学习,卷积,机器学习,人工智能)