为什么出现了卷积神经网络
假如有一幅1000x1000的图像,如果把整副图片作为特征进行输入的话,向量的长度为1000000。假设使用普通的NN来对图像进行训练。
假设隐藏层的神经元个数和输入一样,也是1000000;那么,从输入层到隐藏层的参数数据量有10^6 x 10^6 = 10^12,实在是太高了。
局部连接
局部感受野:一般认为人对外界的认知是从局部到全局。因此每个神经元没有必要对全局图像进行感知,只需对局部进行感知,然后在更高层将局部的信息综合起来得到了全局的信息(更高层指的是后面提到的多层卷积)。
比如每个神经元只和10x10个像素值连接。左图为原始,右图为新连接方式。
这样使得参数量变为了1000000x100,变为了原来的万分之一。而这10x10=100个参数,其实就对应的是卷积核的参数,对他们对应相乘相加就是卷积操作。
权值共享
如果刚刚这1000000个输入神经元对应的100个参数都是相等的,那最后总的参数量就变成了100。将这个100(10x10)个参数看成特征提取的方式,与位置无关。隐含的原理是“图像的一部分的统计特征与其他部分是一样的”。意味着在这一部分学习特征的方式也能用到另一部分上。这就是CNN的思想,这个就是最终的卷积核。
每个卷积都是一种特征提取方式,就像一个筛子,将图像中符合条件的(激活值越大越符合条件)的部分筛选出来。