卷积神经网络与普通神经网络有哪些不同
对于图像类的数据来说,使用全连接的普通神经网络其需要的权重数量会显著受输入的图像大小影响。举例说明,一个128x128的彩色图片其输入值的维度为128x128x3,假设隐藏层有十个神经元,其需要的变量数就为128x128x3x10+10=491530个,如果使用更多神经元和更多隐藏层,变量的维度很快就会爆炸。而使用过多的自由度(Degree of freedom)会导致过拟合,但这还只是全连接神经网络处理图像数据的其中一个问题。试想如果使用全连接神经网络,每个像素对应为一个数值,即使我们使用全连接神经网络克服了过拟合的问题,但如果我们需要识别的图片中的目标物出现在了图片的不同位置,而该位置不曾在训练集中出现过,那么这个神经网络模型是无法识别这个目标物的。而使用目标物出现在所有位置的图片做为训练集又不现实,那么就只好使用别的办法来处理输入的图片数据使其拥有位移不变性(shift invariance),而这个办法就是卷积层(convolutional layer)。
卷积层(Convolutional Layer)
如前面所提到的,卷积层主要的工作就是降低模型需要的变量数,以及为输入的数据提供位移不变性。卷积层的工作原理就是找到P个不同的Filter,拿着每个Filter在原始的输入数据上平移,计算对应矩阵元素之间乘积的和就是对应位置的输出数据。每次平移一个单位St