- 卷积知识
卷积就是:一个函数(如:单位响应)在另一个函数(如:输入信号)上的加权叠加。
参考博客:https://blog.csdn.net/bitcarmanlee/article/details/54729807
- 神经网络(NN)
下面这个是典型的神经网络三层模型:Layer L1是输入层,Layer L2是隐含层,Layer L3是隐含层
参考下面的博客可以详细知道这个模型是如何工作的:
BP 神经网络:
http://www.cnblogs.com/charlotte77/p/5629865.html
https://blog.csdn.net/fendouaini/article/details/79789440
- 卷积神经网络(CNN)
分为三层:
- 卷积层(Conv Layer)
举个例子,现在有一个4*4的图像,我们设计两个卷积核,看看运用卷积核后图片会变成什么样。
卷积核跟图像内积的过程可以看下面的动图:
- 池化层(Pooling Layer)
通过上一层2*2的卷积核操作后,我们将原始图像由4*4的尺寸变为了3*3的一个新的图片。池化层的主要目的是通过降采样的方式,在不影响图像质量的情况下,压缩图片,减少参数。简单来说,假设现在设定池化层采用MaxPooling,大小为2*2,步长为1,取每个窗口最大的数值重新,那么图片的尺寸就会由3*3变为2*2:(3-2)+1=2。从上例来看,会有如下变换:
池化层神经网络不会改变三维矩阵的深度,但是可以缩小矩阵的大小。
通过池化层可以进一步缩小最后全连接层中节点个数,从而达到减少整个神经网络中参数的目的。
- 全连接层(Fully Connected Layer)
到这一步,其实我们的一个完整的“卷积部分”就算完成了,如果想要叠加层数,一般也是叠加“Conv-MaxPooing",通过不断的设计卷积核的尺寸,数量,提取更多的特征,最后识别不同类别的物体。做完Max Pooling后,我们就会把这些数据“拍平”,丢到Flatten层,然后把Flatten层的output放到full connected Layer里,采用softmax对其进行分类。
这一部分参考博客https://www.cnblogs.com/charlotte77/p/7759802.html
具体的计算实例可以参考下面这篇文章,写的超级棒: