文章目录
- 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的初始化。
- 为什么要初始化权重
- 如何找到最优的初始化值
3. Xavier初始化
- Kaiming初始化
kaiming代码:https://zhuanlan.zhihu.com/p/305055975
234 AP和mAP
PR曲线围成的面积就是AP
PR曲线
我们当然希望检测的结果P越高越好,R也越高越好,但事实上这两者在某些情况下是矛盾的。比如极端情况下,我们只检测出了一个结果,且是准确的,那么Precision就是100%,但是Recall就很低;而如果我们把所有结果都返回,那么必然Recall必然很大,但是Precision很低。
因此在不同的场合中需要自己判断希望P比较高还是R比较高。如果是做实验研究,可以绘制Precision-Recall曲线来帮助分析。
这里我们举一个简单的例子,假设我们的数据集中共有五个待检测的物体,我们的模型给出了10个候选框,我们按照模型给出的置信度由高到低对候选框进行排序。
表格第二列表示该候选框是否预测正确(即是否存在某个待检测的物体与该候选框的iou值大于0.5)第三列和第四列表示以该行所在候选框置信度为阈值时,Precision和Recall的值。我们以表格的第三行为例进行计算:
mAP:
所有m个类别的AP加起来再除m,就是mAP。
235 正则化:神经网络防止过拟合的方法:
什么是正则化
Weight Decay
Robustness to noise
noise input
再公式上证明adding noise和weight decay有相同结果。类似于加了一个正则项。
nosie weight
Data Augmentation
Early Stopping
Dropout
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个激活函数的包河区。
注意这里是对每一个神经元做操作
如何用code实现BN。
238 TP、TN、FP、FN 的概念
239 max pooling和average pooling,global average pooling 对比
Max Pooling和 Average Pooling的区别,使用场景分别是什么?
为什么ResNet最后有一个average pooling?
240 一般情况下,是先进行relu激活函数,还是先经过Max pooling