CNN 卷积神经网络

Deep Learning 理论知识

CNN 卷积神经网络

目录

  • Deep Learning 理论知识
    • CNN 卷积神经网络
      • 1.为什么使用CNN
      • 2.CNN – Convolution
      • 2.CNN – Max Pooling
      • 3.CNN – Flatten
      • 3.CNN – in Keras
      • 3.CNN – What does CNN learn?


1.为什么使用CNN

对于一张图片,一个神经元不用了解整张图,通过一小部分特征就可以分辨图中存在的某些特定pattern。
Connecting to small region with less parameter
The same patterns appear in different regions.
Do almost the same thing. They can use the same set of parameters.
CNN 卷积神经网络_第1张图片
对图片subsampling 并不会改变对象,我们可以通过对图像subsampling压缩图像,在神经网络中使用更少的参数达到相同的效果。
CNN 卷积神经网络_第2张图片
CNN整个过程:
中间的卷积,池化,可以重复不断叠加。
CNN 卷积神经网络_第3张图片
CNN 卷积神经网络_第4张图片

2.CNN – Convolution

对于一个 6 *6的图像我们使用 3 *3的卷积核来进行特征提取,卷积核可以多个。
CNN 卷积神经网络_第5张图片
我们设置步长stride = 1,也就是每个卷积核移动的步长为1格,对于第一个卷积核,将图像上对应大小的像素值与卷积核进行乘积求和,得到右边的结果记录下来。
CNN 卷积神经网络_第6张图片
卷积核扫描一遍整个图像后得到右边的结果,可以看到左上角和左下角数值为3,也就说明了原图像的左上角和左下角存在与卷积核特征相对应的特征,即斜对角的数值都为1,因此我们提取了原图像斜对角为1这个特征,并传入下一层神经网络。
CNN 卷积神经网络_第7张图片
通过不同的卷积核可以提取不同的特征。得到feature map。
CNN 卷积神经网络_第8张图片
CNN – Colorful image
对于彩色图片,存在R,G,B 3个维度,因此采用的卷积核也是同样3个维度来采样。
CNN 卷积神经网络_第9张图片

Convolution v.s. Fully Connected
相比于全联接,卷积核使用相同的weight对input data不同的地方进行神经元的输入,获得的feature map 可以看作是一个个神经元,作为输入连接下一层的神经网络,由于卷积核是固定的,扫面整个图像,因此他比全联接会使用更少的参数。
CNN 卷积神经网络_第10张图片

2.CNN – Max Pooling

经过池化层,一般使用maxpooling,就是将最大的值保留下来,这里选用2*2矩阵进行池化得到以下结果:
CNN 卷积神经网络_第11张图片CNN 卷积神经网络_第12张图片
通过卷积和池化,我们等于获得了一个全新的图像,这个每个卷积核输出的图像都包含原图里的某些特征。
CNN 卷积神经网络_第13张图片

3.CNN – Flatten

全联接层
CNN 卷积神经网络_第14张图片

3.CNN – in Keras

CNN 卷积神经网络_第15张图片

CNN 卷积神经网络_第16张图片
CNN 卷积神经网络_第17张图片

3.CNN – What does CNN learn?

CNN 卷积神经网络_第18张图片
For each filter:
CNN 卷积神经网络_第19张图片

参考:NTU深度学习

你可能感兴趣的:(Deep,Learning,深度学习,pytorch,神经网络)