CNN 笔记(一)
卷积神经网络CNN的结构一般包含这几个层:
1. 输入层:用于数据的输入
CNN的输入层的输入格式保留了图片本身的结构。
黑白的:CNN的输入是一个二维神经元
RGB的:输入是一个三维神经元
2.卷积层:使用卷积核进行特征提取和特征映射
一个感受视野带有一个卷积核,我们将 感受视野 中的权重 矩阵称为 卷积核
卷积核的大小由用户来定义,即定义的感受视野的大小
3.激励层:由于卷积也是一种线性运算,因此需要增加非线性映射
4.池化层:进行下采样,对特征图稀疏处理,减少数据运算量。
池化可以将一幅大的图像缩小,同时又保留其中的重要信息
经过最大池化操作(比如2*2大小)
不足的在外面补0
因为最大池化(max-pooling)保留了每一个小块内的最大值,所以它相当于保留了这一块最佳的匹配结果(因为值越接近1表示匹配越好)。这也就意味着它不会具体关注窗口内到底是哪一个地方匹配了,而只关注是不是有某个地方匹配上了。这也就能够看出,CNN能够发现图像中是否具有某种特征,而不用在意到底在哪里具有这种特征。这也就能够帮助解决之前提到的计算机逐一像素匹配的死板做法。
卷积,池化,激活放在一起
再进行一次:
5.全连接层:通常在CNN的尾部进行重新拟合,减少特征信息的损失
后面其实是一个回归分类的过程。对于普通的分类问题,最后就是逻辑回归regression,多分类会用到softmax回归。将全连接得到的列向量比如n维列向量[1,n]乘以权重矩[n,2],最后得到一个[1,2]的结果(这2个数值可以理解为代表属于两类的概率)用于进行二分类。多分类问题类比,softmax会得到属于每一类的概率,取概率最大的一类作为预测结果。
这一整个过程,从前到后,被称作”前向传播“,得到一组输出,然后通过反向传播来不断纠正错误,进行学习。