卷积神经网络(Convolutional Neural Network)是一个专门针对图像识别问题设计的神经网络。它模仿人类识别图像的多层过程:瞳孔摄入像素;大脑皮层某些细胞初步处理,发现形状边缘、方向;抽象判定形状(如圆形、方形);进一步抽象判定(如判断物体是气球)。
CNN与BPNN的异同
如果了解BPNN的框架,那么更容易理解CNN了。本文从CNN与BPNN的异同点出发,分析CNN的结构。首先相同点是CNN与BPNN一样都是神经网络,含有多层神经元,每层神经元到下层都有权重相连,误差传导也是反向的模式。
CNN与BPNN的区别在于CNN是在BPNN的基础上针对图像识别问题进行了优化。设想一下,如果给定一个照片,用BPNN训练会有什么后果?假设照片是RGB照片(含有R、G、B三个通道,每个像素点的值是0-255),用BPNN其实也可以训练。首先要把它展开成一个很长的一维数组,因为BPNN的输入只能是一维的。假如照片是500*500(已经很小了),那么展开以后就是500*500*3=750000的输入长度,即使隐含层只有一层,且该层只有一个神经元,从输入层到隐含层的权重也需要750000个,参数太多了无法估计。那么如何精简参数呢?
特征抽取
回忆BPNN,每一层在做的实际上是抽取特征,权重就表示了特征。CNN的特征抽取没有那么简单,需要有两个部件:卷积