CNN 卷积神经网络

80&imageSlim
Published on
/
2 mins read
/
––– views

卷积神经网络(convolutional neural network,CNN)是一种适合处理图片数据的网络。

图片有复杂的像素信息,输入是二维图像,不是一维向量。对于这种高维感知数据,缺少结构的网络,如 MLP,可能会变得不实用,且直接上 MLP 全部展平参数量爆炸,必须用一些取巧的办法,如 CNN。

CNN 的设计有两个核心出发点:

  1. 平移不变性:不管目标在图片哪个位置,模型都能识别它。
  2. 局部性:只看它附近的像素,远处的像素不相关。

简单总结一下,CNN 相比 MLP 的核心区别:CNN 的每个输出神经元,只连接局部输入,且所有位置共享同一组权重

卷积

卷积 fgf * g 本质上是描述两个函数之间关系的操作:把一个函数翻转后滑动,测量两个函数在每个位置的重叠程度。

翻转后滑动(平移):

g(a)          原始函数
g(-a)         翻转(左右镜像)
g(i - a)      翻转后,再平移 i 个单位

公式

看懂卷积,再看公式就好理解了,输出 H 是两个函数的卷积结果,两个函数分别是:

  1. 卷积核 V,理解为权重,也叫滤波器
  2. 输入 X,一般是多维矩阵,如 ××3(RGB)长\times 宽 \times 3(RGB)

注意,严格来说,深度学习里用的是互相关(cross-correlation),不是真正的卷积:

CNN 美图一张:

← Previous postSwift Concurrency