文章目录

  • 为什么使用卷积
  • 卷积
  • 常规卷积的应用
  • CNN作用
  • pytorch实现


为什么使用卷积

卷积 共享权重 卷积的权重_卷积


对于一个3层隐藏层的全连接来识别手写体图片(28*28),内存消耗1.6MB,对于当时来说过于庞大(16K内存)

卷积 共享权重 卷积的权重_权值_02


借助生物学的概念,注重感兴趣的地方,称之为感受野,看到的区域也是图片中的一个小块。

卷积 共享权重 卷积的权重_全连接_03

提出了卷积神经网络的概念,卷积也就是指局部的相关性。权重减少为原来的1/6。

卷积

卷积 共享权重 卷积的权重_权值_04


卷积 共享权重 卷积的权重_卷积_05

一个共享权值的小滑块再图片上移动,对应位置与滑块的权值相乘,一一得到一个值。

卷积 共享权重 卷积的权重_全连接_06


卷积较比于全连接,它是784个神经元做全连接,需要784个权值,现在3*3卷积只有9个权值。

卷积 共享权重 卷积的权重_权值_07


对于一张图片,全连接与卷积的区别如上。

常规卷积的应用

  • 锐化
  • 模糊
  • 边缘检测

卷积 共享权重 卷积的权重_全连接_08


卷积 共享权重 卷积的权重_卷积_09


卷积 共享权重 卷积的权重_卷积 共享权重_10

CNN作用

卷积 共享权重 卷积的权重_卷积_11


CNN也是使用多个卷积核(自学习),可以对图片生成锐化、模糊、边缘检测的效果。

卷积 共享权重 卷积的权重_权值_12


H、W分别为卷积之后生成的高和宽的大小

卷积 共享权重 卷积的权重_权值_13


卷积一个kernal(Filier、Weight都是一个概念)指得是对应RGB的三个(3*3)模板

一个kernal进行一次卷积指得是3个3*3的模板求完卷积,再将这三个的卷积结果相加得到的值。

卷积 共享权重 卷积的权重_卷积_14


对于一个黑白图input(1,28,28)

卷积的kernal为(6,1,3,3),最终生成6个feature,其中通道数是1。偏移为[6]。

第二次卷积kernal(16,6,3,3),自己随意设置生成feature个数,这里设置成16,其中,对上一层的6个feature做卷积,卷积的kernal的大小为3*3

卷积 共享权重 卷积的权重_卷积 共享权重_15


卷积的每一层的特征提取

pytorch实现

卷积 共享权重 卷积的权重_全连接_16


卷积 共享权重 卷积的权重_全连接_17

卷积 共享权重 卷积的权重_卷积 共享权重_18