之前说过了DNN,大家也对神经网络有了一个大概的了解,知道了什么叫做前向传播,什么叫做反向传播。我们可以类比的进行卷积(CNN)的学习。
首先,回想一下DNN全连接神经网络的前向传播。
可以看到,在DNN中,每一层的参数(输入层)或者计算结果(中间层)都会直接传给下一层的所有神经元,如此反复,直到最后一层的输出层得到结果。
而CNN呢?
他也是和DNN一样,每一层的参数(输入层)或者计算结果(中间层)都会直接传给下一层的所有神经元,如此反复,直到最后一层的输出层得到结果。但是,他的输入层和中间层发生了变化,CNN的传递方式更加“多样”。
CNN输入层:最基本的是一个矩阵,可以有多个的情况,这里先不介绍,先说一个的矩阵的情形。比如,我有一张图片,我将其转化为灰度的图像,并将灰度值作为参数形成一个灰度值的矩阵,大小为m*m。
CNN卷积层:在这里,我会有一个卷积核,一个大小为n*n的矩阵。然后与前一层传来的矩阵参数做卷积操作。
CNN池化层:在这里,我会规定一个范围大小和一个规则。将前一层传来的矩阵参数按照我的大小范围和规则做缩小参数规模ca操作。
具体实现如下(其它博客截图):
看这里,我对一个5*5的矩阵进行了卷积操作,卷积核为3*3的矩阵,结果是一个3*3的矩阵。
池化操作如下,在这里我的池化规模是2,池化的规则是取最大数原则(也可以计算平均值)。