BN:
z=wx+b
z'=gamma*bn(z)+belta
a=g(z')
原因:1. 数据归一化,可以相对加大的learning rate,下降速度快。2. 使得每一层的分布相对稳定,每一层相对独立,减弱上一层对其的影响。
轻微正则化:计算均值和偏差都是在一个Mini-batch上进行,有一定的噪音。
测试:用训练集上加权平均的均值和方差。
F1 Score = 1/(1/P+1/R)
改善模型的表现:
减少可避免偏差
- 训练更大的模型
- 训练更长时间、训练更好的优化算法(Momentum、RMSprop、Adam)
- 寻找更好的网络架构(RNN、CNN)、寻找更好的超参数
减少方差
- 收集更多的数据
- 正则化(L2、dropout、数据增强)
- 寻找更好的网络架构(RNN、CNN)、寻找更好的超参数
误差分析:针对性的改善
训练开发集,其中的数据和训练数据来自同一分布,但是却不用于训练过程。从而判断数据分布不一致的问题。
迁移学习的意义:
迁移学习适合以下场合:迁移来源问题有很多数据,但是迁移目标问题却没有那么多的数据。
如何提高运行速度?
1. 模型裁剪
2. 目前都是通用模型,可以针对特定用途和场景修改模型
3. 代码中进行优化
如何提高模型精度?
1. 在训练集上表现不好:更大的模型,训练更长时间,用更好的算法,寻找更好的模型结构,用更好的超参数
2. 在测试集上表现不好:更多数据,正则化,寻找更好的模型结构,用更好的超参数,看看分布是不是不一样
3. 误差分析:找出原因,针对性的改善
4. 训练和测试数据集的分布要保持一致
5. 尝试BN
6. 数据增广:水平翻转、垂直翻转、任意角度旋转、缩放或扩大,裁剪,像素变换,调整对比度和亮度
7. 学习率衰减
8. 考虑要不要修改损失函数
9. 用训练好的模型finetune
图像缩放算法:近邻取样插值,二次线性插值,三次线性插值
训练数据类别不均衡问题:
可以扩大数据集吗?
尝试其它评价指标:召回率,F1 Score等
对数据集进行重采样:小类数据过采样,大类数据欠采样
尝试对模型进行惩罚:损失函数中增加小类样本的权重,减少大类样本的权重
数据增广来增加小类样本
Why cross entropy not mse?
因为在计算最后概率的时候用的是softmax,
如果用 MSE 计算 loss,
输出的曲线是波动的,有很多局部的极值点。
即,非凸优化问题 (non-convex)
cross entropy 计算 loss,则依旧是一个凸优化问题,
用梯度下降求解时,凸优化问题有很好的收敛特性。
SSD:
1. 采用VGG16 的基础网络结构,使用前面的前 5 层,然后将 fc6 和 fc7 层转化成两个卷积层。再格外增加了 3 个卷积层,和一个 average pool层。
2. 从Feature Map进行采样,每个点k个default box,最后运行NMS,得到Final detection
3. 在低层的feature map,感受野比较小,高层的感受野比较大,在不同的feature map进行卷积,可以达到多尺度的目的。并且不同的feature map,预测不同宽高比的图像,这样比YOLO增加了预测更多的比例的box
4. 控制positive/negative default box的比率在1:3
RCNN:
1. 在图像中确定约1000-2000个候选框 (使用选择性搜索)
2. 每个候选框内图像块缩放至相同大小,并输入到CNN内进行特征提取
3. 对候选框中提取出的特征,使用分类器判别是否属于一个特定类
4. 对于属于某一特征的候选框,用回归器进一步调整其位置
Fast RCNN
1. 在图像中确定约1000-2000个候选框 (使用选择性搜索)
2. 对整张图片输进CNN,得到feature map
3. 找到每个候选框在feature map上的映射patch,将此patch作为每个候选框的卷积特征输入到SPP layer和之后的层
4. 对候选框中提取出的特征,使用分类器判别是否属于一个特定类
5. 对于属于某一特征的候选框,用回归器进一步调整其位置
Faster RCNN
1. 对整张图片输进CNN,得到feature map
2. 卷积特征输入到RPN,得到候选框的特征信息
3. 对候选框中提取出的特征,使用分类器判别是否属于一个特定类
4. 对于属于某一特征的候选框,用回归器进一步调整其位置
YOLO v1:
(1) 给个一个输入图像,首先将图像划分成7 * 7的网格。
(2) 对于每个网格,每个网格预测2个bouding box(每个box包含5个预测量)以及20个类别概率,总共输出7×7×(2*5+20)=1470个tensor
(3) 根据上一步可以预测出7 * 7 * 2 = 98个目标窗口,然后根据阈值去除可能性比较低的目标窗口,再由NMS去除冗余窗口即可。
YOLO v2:
1. BN
2. 提高图片分辨率
3. 引入anchor box,在13 * 13的卷积特征图进行滑窗操作,得到13*13*5个anchor box,提高召回率
4. 通过维度聚类训练bounding boxes,得到更好的宽高维度比
5. 添加了一个转移层( passthrough layer),把浅层特征图(分辨率为26 * 26,是底层分辨率4倍)连接到深层特征图,再进行predict
YOLO v3:
1. 多尺度预测:3种尺度分别预测3种box(13,26,52)
2. 用logistic regression替代softmax,提升多目标预测能力
3. 53个conv,residual net