卷积神经网络基本原理及手写数字识别Pytorch实现

卷积神经网络属于前馈网络的一种,同全连接前馈网络一样可以视为一个函数。与后者最大的区别是:卷积神经网络多了卷积层与池化层,因此卷积神经网络也具有提取局部特征的优越性。

1 卷积

作为一个通信工程的学生,对于卷积定是不会陌生。总的来说,卷积可以用一句话总结:系统当前的输出不仅与当前的输入有关,还与过去的输入有关

1.1 一维卷积

y_t = \sum_{k=1}^{m}\omega_k\times {x_{t-k+1}}

  • y_tt时刻的系统输出
  • \omega为滤波器,也称为卷积核
  • 滤波器的长度为m

1.2 二维卷积

由于卷积神经网络也常用于图像处理,而图像至少为二维矩阵,故扩展到了二维矩阵

表达式如下
y_{i j}=\sum_{u=1}^{m} \sum_{v=1}^{n} w_{u v} \cdot x_{i-u+1, j-v+1}

  • 给定输入图像X \in \mathbb{R}^{M \times N}
  • 滤波器W \in \mathbb{R}^{m \times n}

直观例图

图源自《神经网络与深度学习》——邱锡鹏


2 卷积层

卷积层的作用是提取局部的特征,不同的滤波器(卷积核)相当于不同的特征提取器。下面我们通过一张直观的图来体会卷积层的结构

图源自《Deep Learning from Scratch》

从上图我们了解到:所有的滤波器组合为四维张量,其中每一个三维张量为一种滤波器,不同的滤波器提取输入的不同的特征


3 池化层

池化层的作用是进行特征选择,降低特征数量,从而减少网络参数数量。注意池化层的操作对每个通道的单独处理,也就是说经过池化层输入通道与输出通道的数量一致

直观图示(以最大池化为例)

图源自《神经网络与深度学习》——邱锡鹏

最大池化

取一个区域内元素的最大值

平均池化

一般是取区域内所有元素的平均值。


4 手写数字识别(基于Pytorch)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容