对cnn的进一步理解
通过阅读那篇文章,又理解了很多cnn的知识。
图像在计算机中是一堆按顺序排列的数字,可以用个正方形矩阵表示,每个点的值为0-255.0最暗,255最亮。彩色图由3个矩阵叠加而成。
cnn具有满足画面不变性的特点,目标的平移,旋转,大小,和明暗,应该尽可能不影响判定。
cnn就是让权重在不同位置共享的神经网络。
我知道了卷积计算的过程。
当图片的深度大于1时,卷积核会贯穿图片做运动。就像切蛋糕一样切到底,不太好描述。
每个filter会在width维, height维上,以局部连接和空间共享,并贯串整个depth维的方式得到一个Feature Map
将不同filters所卷积得到的Feature Maps按顺序堆叠后,就得到了一个卷积层的最终输出。
卷积后的长方体可以继续送入另一个卷积层做卷积,得到更丰富更抽象的表示。
使用zero pading可以使得卷积后的特征图size不变。
为了增强模型的拟合能力,要加入非线性。比如将特征图进行rulu变换等。
池化就是对图片做简化,去除掉冗杂的部分。在不同的depth上是分开执行的,
Alexnet
首次利用GPU进行网络加速训练。
使用了rule激活函数,而不是传统的sigmoid激活函数以及tanh激活函数
使用了LRN局部响应归一化
在全连接层的前两层中使用了Dropout随机失火神经元操作,减少过拟合。
过拟合的理解:就是学习到的函数完美的预测了训练集,但对新数据的测试集预测结果差。过度的拟合了训练数据,没有考虑到泛化能力。
VGG
使用清一色的3×3卷积核。
通过堆叠多个3×3的卷积核来替代大尺度卷积核(降低所需参数)。拥有相同的感受野。
感受野:决定某一层输出结果中一个元素所对应的输入层的区域大小。。通俗的说,输出feature map上的一个单元对应输入层上的区域大小。
Inception
inception网络很好的解决了当网络越深越宽时产生的副作用
,越深越宽的网络往往有巨大的参数量,当训练数据少的时候,很容易过拟合。inception网络很好的解决了这点
inception网络也可以解决梯度消失现象
上图是inception的模块,inception网络由多个这样的模块构成。
Inception网络框架中会有额外的两个softmadx预测层,这两个预测层分别是从网络框架中间部分引出的分支,用于反向传播更新梯度,这样就避免了因梯度消失导致浅层的网络参数无法更新。这两个分支只在训练的时候防止梯度消失会用到,真正做预测的时候需要删除。