大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说卷积神经网络图解_卷积神经网络分类,希望能够帮助大家进步!!!
文章目录
代码语言:txt复制- [卷积层](https://javajgs.com/#_4)
- [卷积的优点——参数共享和稀疏连接](https://javajgs.com/#_7)
- [池化层——无需学习参数](https://javajgs.com/#_14)
- [卷积神经网络案例](https://javajgs.com/#_16)
- [梯度下降](https://javajgs.com/#_18)
- [经典的神经网络](https://javajgs.com/#_20)
- [残差网络](https://javajgs.com/#_26)
- [1x1卷积 (Network in Network and 1x1 Convolutions)](https://javajgs.com/#1x1_Network_in_Network_and_1x1_Convolutions_34)
- [Inception网络](https://javajgs.com/#Inception_37)
- [迁移学习](https://javajgs.com/#_41)
- [神经网络应用](https://javajgs.com/#_46)
- [分类定位](https://javajgs.com/#_47)
- [目标点检测](https://javajgs.com/#_51)
- [滑动窗口的卷积实现](https://javajgs.com/#_53)
- [YOLO算法](https://javajgs.com/#YOLO_62)
- [交并比](https://javajgs.com/#_71)
- [非极大值抑制](https://javajgs.com/#_74)
- [Anchor Boxes](https://javajgs.com/#Anchor_Boxes_76)
参考资料:https://blog.csdn.net/weixin_36815313/article/details/105728919
卷积层
卷积的优点——参数共享和稀疏连接
- 参数共享 特征检测如垂直边缘检测如果适用于图片的某个区域,那么它也可能适用于图片的其他区域。也就是说,如果你用一个3×3的过滤器检测垂直边缘,那么图片的左上角区域,以及旁边的各个区域(左边矩阵中蓝色方框标记的部分)都可以使用这个3×3的过滤器。
- 稀疏连接 输出(右边矩阵中红色标记的元素 30)仅仅依赖于这9个特征(左边矩阵红色方框标记的区域),看上去只有这9个输入特征与输出相连接,其它像素对输出没有任何影响。
池化层——无需学习参数
卷积神经网络案例
梯度下降
经典的神经网络
LeNet-5 ,AlexNet, VGG, ResNet, Inception
疑问: 请教下为什么随着网络的加深,图像的高度和宽度都在以一定的规律不断缩小,而通道数量在不断增,要这么设计呢?
残差网络
详解残差网络: https://zhuanlan.zhihu.com/p/42706477
随着网络层数的增加,网络发生了退化(degradation)的现象:随着网络层数的增多,训练集loss逐渐下降,然后趋于饱和,当你再增加网络深度的话,训练集loss反而会增大。注意这并不是过拟合,因为在过拟合中训练loss是一直减小的。当网络退化时,浅层网络能够达到比深层网络更好的训练效果,这时如果我们把低层的特征传到高层,那么效果应该至少不比浅层的网络效果差,或者说如果一个VGG-100网络在第98层使用的是和VGG-16第14层一模一样的特征,那么VGG-100的效果应该会和VGG-16的效果相同。所以,我们可以在VGG-100的98层和14层之间添加一条直接映射(Identity Mapping)来达到此效果。从信息论的角度讲,由于DPI(数据处理不等式)的存在,在前向传输的过程中,随着层数的加深,Feature Map包含的图像信息会逐层减少,而ResNet的直接映射的加入,保证了深层的网络一定比浅层包含更多的图像信息。基于这种使用直接映射来连接网络不同层直接的思想,残差网络应运而生。
1x1卷积 (Network in Network and 1x1 Convolutions)
池化层压缩它的高度和宽度,1x1卷积压缩输入层中通道的数量
Inception网络
Inception网络或Inception层的作用就是代替人工来确定卷积层中的过滤器类型,或者确定是否需要创建卷积层或池化层。只要合理构建瓶颈层,你既可以显著缩小表示层规模,又不会降低网络性能,从而节省了计算。
迁移学习
- 下载别人已经训练好网络结构的权重作为预训练,转换到感兴趣的任务上
- 数据越多,需要冻结的层数越少,能够训练的层数就越多。如果有一个更大的数据集,那么不要单单训练一个softmax单元,而是考虑训练中等大小的网络,包含最终网络的后面几层。
注: 通过使用其他人预训练的权重,很可能得到很好的性能,即使只有一个小的数据集。大多数深度学习框架有是否训练参trainableParameter=0,不训练这些权重freeze=1,允许设置是否训练特定层的权重。在这个例子中,只需要训练softmax层的权重,把前面这些层的权重都冻结。
神经网络应用
分类定位
目标点检测
滑动窗口的卷积实现
- 为什么要将全连接层转化成卷积层?有什么好处? 解释: 参数共享(滑动区域享有相同参数)、共享计算(相同区域的计算相同)
- 原理:不需要把输入图像分割成四个子集分别执行前向传播,而是把它们作为一张图片输入给卷积网络进行计算,公共区域共享计算 解释: 以绿色方块为例,假设你剪切出这块区域(编号1),传递给卷积网络,第一层的激活值就是这块区域(编号2),最大池化后的下一层的激活值是这块区域(编号3),这块区域对应着后面几层输出的右上角方块(编号4,5,6)
- 缺点: 不能输出最精准的边界框
YOLO算法
将这个对象分配到其中点所在的格子,即使对象横跨多个格子,也只会被分配到9个格子其中之一。 b x b_x bx, b y b_y by, b h b_h bh, b w b_w bw单位是相对于格子尺寸的比例
交并比
非极大值抑制
Anchor Boxes