卷积神经网络
一、引入
你现在有一张图片,你希望计算机能辅助你找到这张图片中的某个人:

这件事并不简单,于是你开始动用你聪明的大脑尝试从这个任务中总结出一些特征。
经过一番思考,你想到了这个任务的两个特点:
1、局部性:这个人只和整张照片的某一小部分连续区域相关
2、平移不变性:不论你把这个人放在图片中的哪个位置,它所对应的那一部分像素特征应该是不变的
你过去只学习过MLP,所以你现在希望能够从MLP开始进行建模,来解决这个问题
二、尝试MLP
首先,设计一个朴素的MLP:

即中间输出结果是由所有像素加权求和得到的
接下来,你想要对这个公式进行一些修改,使得其能够满足平移不变性的特征:

也就是这样。
最后,你想要在MLP中添加 局部性 的特征,于是你设计了如下公式:

完成了,你真是个天才,这个设计非常合理!正在你沾沾自喜时,突然有人和你说:这是卷积神经网络!
卷积是什么东西?有时候,你希望世界上不要有这么多令人困惑的名词。
三、卷积
于是你打算使用互联网来进行搜索搞清楚卷积到底是什么,一通搜索后,卷积的定义浮现在了你的眼前:

卷积可以直观理解为:对于两个函数,将其中一个函数反转后再平移一段距离,再对两个函数的重合部分进行评估。
对于二元函数的卷积,公式是这样的:

现在你明白卷积是什么了,但是仔细一看,这个公式似乎还和你之前设计的公式有一些区别。从变成了,两个移动方向是相反的。
于是你进一步查找,找到了你之前设计的公式叫互相关操作。这不是和卷积不一样吗?你心中升起一股怒火:现在这种知道一个名词就到处喊的人真是太多了。
即使二者移动方向不同,但是对于神经网络而言,由于其参数是经过反向传播学习到的,所以方向并没有影响,只不过是最后学习到的参数位置不同罢了。
想到这里,你打算不和之前的人计较了,还是先完善一下自己的公式吧。
我们知道,彩色图像一般会有多个channel,于是你把channel维度加进来,形成了如下的公式:

可以理解为对于输出H的每个channel,我都有对应的一个卷积块,一共有d个卷积块,每个卷积块又由3个卷积核组成,每个卷积核负责对原图像的每个channel分别进行卷积操作,一共有c个卷积核。