文章目录

  • 231 Yolo 和 RCNN的区别。
  • 232 把yolo v1的loss讲明白
  • 233 关于神经网络的初始化问题,torch中kernal的初始化
  • 234 AP和mAP
  • 235 正则化:神经网络防止过拟合的方法:
  • 什么是正则化
  • Weight Decay
  • Robustness to noise
  • noise input

  • Data Augmentation
  • Early Stopping
  • Dropout
  • 236 learning rate的设置
  • 237 Batch Normalization 讲清楚
  • 238 TP、TN、FP、FN 的概念
  • 239 max pooling和average pooling,global average pooling 对比
  • 240 一般情况下,是先进行relu激活函数,还是先经过Max pooling


231 Yolo 和 RCNN的区别。

1)RCNN是two-stage,Yolo是one-stage,RCNN比较慢,但是比较准。Yolo比较快,准确率差一些。
2)Yolo可以隐式的看到全局上下文的信息,RCNN只能看到局部信息。比如飞机在蓝天上,yolo就可以学习到,RCNN就不能学习到这样的上下文信息
3)Yolo的迁移能力比较强,是一种通用目标检测。
4)损失函数区别很大,看过yolov1相关博客的应该知道,它的损失函数由五部分组成,每个部分都使用的均方差;而faster-r-cnn在坐标回归中使用的是smoothL1损失函数,在分类中使用交叉熵损失函数。
5)在yolov1训练中,同时输出预测的bounding box有没有目标(其实就是前景和背景的区分),使用的是 预测值 * Iou(预测box和GT) 作为置信度得分的;在faster中,RPN网络负责区分预测的anchor中是否有目标,是直接预测出一个0到1的小数值,没有其他额外操作。
6)

232 把yolo v1的loss讲明白

为什么w和h用根号?

233 关于神经网络的初始化问题,torch中kernal的初始化

torch中kernal的初始化,均值为0,标准差为1.

神经网络中weight的初始化。

  1. 为什么要初始化权重
  2. yolov5与faster rcnn的准确率 yolo和rcnn的区别_初始化


  3. yolov5与faster rcnn的准确率 yolo和rcnn的区别_计算机视觉_02


  4. yolov5与faster rcnn的准确率 yolo和rcnn的区别_初始化_03

  5. 如何找到最优的初始化值

yolov5与faster rcnn的准确率 yolo和rcnn的区别_初始化_04


yolov5与faster rcnn的准确率 yolo和rcnn的区别_神经网络_05


yolov5与faster rcnn的准确率 yolo和rcnn的区别_初始化_06


yolov5与faster rcnn的准确率 yolo和rcnn的区别_神经网络_07


3. Xavier初始化

yolov5与faster rcnn的准确率 yolo和rcnn的区别_初始化_08


yolov5与faster rcnn的准确率 yolo和rcnn的区别_算法_09


yolov5与faster rcnn的准确率 yolo和rcnn的区别_算法_10

  1. Kaiming初始化







    kaiming代码:https://zhuanlan.zhihu.com/p/305055975

234 AP和mAP

PR曲线围成的面积就是AP

yolov5与faster rcnn的准确率 yolo和rcnn的区别_算法_11


PR曲线

我们当然希望检测的结果P越高越好,R也越高越好,但事实上这两者在某些情况下是矛盾的。比如极端情况下,我们只检测出了一个结果,且是准确的,那么Precision就是100%,但是Recall就很低;而如果我们把所有结果都返回,那么必然Recall必然很大,但是Precision很低。

因此在不同的场合中需要自己判断希望P比较高还是R比较高。如果是做实验研究,可以绘制Precision-Recall曲线来帮助分析。

这里我们举一个简单的例子,假设我们的数据集中共有五个待检测的物体,我们的模型给出了10个候选框,我们按照模型给出的置信度由高到低对候选框进行排序。

yolov5与faster rcnn的准确率 yolo和rcnn的区别_算法_12


表格第二列表示该候选框是否预测正确(即是否存在某个待检测的物体与该候选框的iou值大于0.5)第三列和第四列表示以该行所在候选框置信度为阈值时,Precision和Recall的值。我们以表格的第三行为例进行计算:

yolov5与faster rcnn的准确率 yolo和rcnn的区别_初始化_13


yolov5与faster rcnn的准确率 yolo和rcnn的区别_神经网络_14


yolov5与faster rcnn的准确率 yolo和rcnn的区别_神经网络_15


yolov5与faster rcnn的准确率 yolo和rcnn的区别_神经网络_16


yolov5与faster rcnn的准确率 yolo和rcnn的区别_初始化_17


mAP:

所有m个类别的AP加起来再除m,就是mAP。

235 正则化:神经网络防止过拟合的方法:

什么是正则化

yolov5与faster rcnn的准确率 yolo和rcnn的区别_初始化_18


yolov5与faster rcnn的准确率 yolo和rcnn的区别_初始化_19


yolov5与faster rcnn的准确率 yolo和rcnn的区别_深度学习_20

yolov5与faster rcnn的准确率 yolo和rcnn的区别_计算机视觉_21

yolov5与faster rcnn的准确率 yolo和rcnn的区别_计算机视觉_22

Weight Decay

yolov5与faster rcnn的准确率 yolo和rcnn的区别_算法_23


yolov5与faster rcnn的准确率 yolo和rcnn的区别_计算机视觉_24

yolov5与faster rcnn的准确率 yolo和rcnn的区别_计算机视觉_25


yolov5与faster rcnn的准确率 yolo和rcnn的区别_计算机视觉_26

Robustness to noise

yolov5与faster rcnn的准确率 yolo和rcnn的区别_算法_27

noise input

yolov5与faster rcnn的准确率 yolo和rcnn的区别_初始化_28


yolov5与faster rcnn的准确率 yolo和rcnn的区别_神经网络_29


再公式上证明adding noise和weight decay有相同结果。类似于加了一个正则项。

nosie weight

yolov5与faster rcnn的准确率 yolo和rcnn的区别_算法_30

yolov5与faster rcnn的准确率 yolo和rcnn的区别_神经网络_31

Data Augmentation

yolov5与faster rcnn的准确率 yolo和rcnn的区别_计算机视觉_32


yolov5与faster rcnn的准确率 yolo和rcnn的区别_神经网络_33

Early Stopping

yolov5与faster rcnn的准确率 yolo和rcnn的区别_初始化_34


yolov5与faster rcnn的准确率 yolo和rcnn的区别_神经网络_35


yolov5与faster rcnn的准确率 yolo和rcnn的区别_神经网络_36

Dropout

yolov5与faster rcnn的准确率 yolo和rcnn的区别_算法_37


yolov5与faster rcnn的准确率 yolo和rcnn的区别_深度学习_38


yolov5与faster rcnn的准确率 yolo和rcnn的区别_初始化_39


yolov5与faster rcnn的准确率 yolo和rcnn的区别_深度学习_40


yolov5与faster rcnn的准确率 yolo和rcnn的区别_深度学习_41

yolov5与faster rcnn的准确率 yolo和rcnn的区别_初始化_42


yolov5与faster rcnn的准确率 yolo和rcnn的区别_计算机视觉_43


yolov5与faster rcnn的准确率 yolo和rcnn的区别_算法_44

236 learning rate的设置

先从0.001增加到0.01,为什么要一开始增大,如果一开始特别大,模型容易不稳定。

0.01-75个epoch,
0.001-30个epoch
0.0001-25个epoch

237 Batch Normalization 讲清楚

1)为什么BN在Sigmoid或者tanh之前。因为BN可以把数据归一化道0-1,不在激活函数的饱和区,这样梯度更容易下降,避险了梯度弥散。Bn 是对每一个神经元进行gamma和beta。
2)BN消除了协方差转换,加速了收敛速度。
3)BN防治了梯度消失和爆炸,因为讲每个神经元的分布在[0, 1]
4)减少了dropout和l2正则,原因:?
5)可以使用更高的学习率了。因为减少了梯度弥散和爆炸
6)把sigmoid,tanh这样的激活函数更好应用,因为把数据稳定在[0,1],而不是这2个激活函数的包河区。

yolov5与faster rcnn的准确率 yolo和rcnn的区别_初始化_45


yolov5与faster rcnn的准确率 yolo和rcnn的区别_神经网络_46


yolov5与faster rcnn的准确率 yolo和rcnn的区别_神经网络_47


yolov5与faster rcnn的准确率 yolo和rcnn的区别_计算机视觉_48


注意这里是对每一个神经元做操作

yolov5与faster rcnn的准确率 yolo和rcnn的区别_深度学习_49


yolov5与faster rcnn的准确率 yolo和rcnn的区别_初始化_50


yolov5与faster rcnn的准确率 yolo和rcnn的区别_深度学习_51


yolov5与faster rcnn的准确率 yolo和rcnn的区别_深度学习_52


yolov5与faster rcnn的准确率 yolo和rcnn的区别_算法_53

如何用code实现BN。

yolov5与faster rcnn的准确率 yolo和rcnn的区别_神经网络_54


yolov5与faster rcnn的准确率 yolo和rcnn的区别_神经网络_55


yolov5与faster rcnn的准确率 yolo和rcnn的区别_算法_56

238 TP、TN、FP、FN 的概念

yolov5与faster rcnn的准确率 yolo和rcnn的区别_神经网络_57


yolov5与faster rcnn的准确率 yolo和rcnn的区别_神经网络_58


yolov5与faster rcnn的准确率 yolo和rcnn的区别_神经网络_59

yolov5与faster rcnn的准确率 yolo和rcnn的区别_计算机视觉_60


yolov5与faster rcnn的准确率 yolo和rcnn的区别_神经网络_61

239 max pooling和average pooling,global average pooling 对比

Max Pooling和 Average Pooling的区别,使用场景分别是什么?

yolov5与faster rcnn的准确率 yolo和rcnn的区别_初始化_62


yolov5与faster rcnn的准确率 yolo和rcnn的区别_深度学习_63


yolov5与faster rcnn的准确率 yolo和rcnn的区别_初始化_64


yolov5与faster rcnn的准确率 yolo和rcnn的区别_算法_65


yolov5与faster rcnn的准确率 yolo和rcnn的区别_初始化_66


yolov5与faster rcnn的准确率 yolo和rcnn的区别_算法_67


为什么ResNet最后有一个average pooling?

yolov5与faster rcnn的准确率 yolo和rcnn的区别_计算机视觉_68

240 一般情况下,是先进行relu激活函数,还是先经过Max pooling

yolov5与faster rcnn的准确率 yolo和rcnn的区别_深度学习_69


yolov5与faster rcnn的准确率 yolo和rcnn的区别_计算机视觉_70


yolov5与faster rcnn的准确率 yolo和rcnn的区别_计算机视觉_71


yolov5与faster rcnn的准确率 yolo和rcnn的区别_深度学习_72