- 计算机视觉 -
为什么说 Dropout 可以解决过拟合?(1)取平均的作用: 先回到标准的模型即没有 dropout,我们用相同的训练数据去训练 5 个不同的神经网络,一般会得到 5 个不同的结果,此时我们可以采用 “5 个结果取均值” 或者 “多数取胜的投票策略” 去决定最终结果。例如 3 个网络判断结果为数字 9, 那么很有可能真正的结果就是数字 9,其它两个网络给出了错误结果。这种 “综合起来取平均” 的策略通常可以有效防止过拟合问题。因为不同的网络可能产生不同的过拟合,取平均则有可能让一些 “相反的” 拟合互相抵消。dropout 掉不同的隐藏神经元就类似在训练不同的网络,随机删掉一半隐藏神经元导致网络结构已经不同,整个 dropout 过程就相当于对很多个不同的神经网络取平均。而不同的网络产生不同的过拟合,一些互为 “反向” 的拟合相互抵消就可以达到整体上减少过拟合。(2)减少神经元之间复杂的共适应关系: 因为 dropout 程序导致两个神经元不一定每次都在一个 dropout 网络中出现。这样权值的更新不再依赖于有固定关系的隐含节点的共同作用,阻止了某些特征仅仅在其它特定特征下才有效果的情况 。迫使网络去学习更加鲁棒的特征 ,这些特征在其它的神经元的随机子集中也存在。换句话说假如我们的神经网络是在做出某种预测,它不应该对一些特定的线索片段太过敏感,即使丢失特定的线索,它也应该可以从众多其它线索中学习一些共同的特征。从这个角度看 dropout 就有点像 L1,L2 正则,减少权重使得网络对丢失特定神经元连接的鲁棒性提高。(3)Dropout 类似于性别在生物进化中的角色:物种为了生存往往会倾向于适应这种环境,环境突变则会导致物种难以做出及时反应,性别的出现可以繁衍出适应新环
境的变种,有效的阻止过拟合,即避免环境改变时物种可能面临的灭绝
关于 dropout 需要知道什么?直观认识:Dropout 随机删除神经元后,网络变得更小,训练阶段也会提速;事实证明,dropout 已经被正式地作为一种正则化的替代形式;有了 dropout,网络不会为任何一个特征加上很高的权重(因为那个特征的输入神经元有可能被随机删除),最终 dropout 产生了收缩权重平方范数的效果;Dropout 的功能类似于 L2 正则化,但 Dropout 更适用于不同的输入范围;如果你担心某些层比其它层更容易过拟合,可以把这些层的 keep-prob 值设置的比其它层更低;Dropout 主要用在计算机视觉领域,因为这个领域我们通常没有足够的数据,容易过拟合。但在其它领域用的比较少;Dropout 的一大缺点就是代价函数不再被明确定义,所以在训练过程中,代价函数的值并不是单调递减的;使用时,先关闭 Dropout,设置 keep-prob 为 1,使代价函数的值单调递减,然后再打开 Dropout;
Dropout 与 L1 和 L2 正则化有什么区别?L1 和 L2 正则化通过在损失函数上增加参数的惩罚项,通过对参数大小的约束,起到类似降维的作用(若高阶项参数接近 0,相当于降阶)。进而简化模型,提高模型泛化力,避免过拟合。
L1 和 L2 正则化修改代价函数,Dropout 修改神经网络本身。
评价指标有哪些?机器学习中评价指标:Accuracy(准确率)、 Precision(查准率或者精准率)、Recall(查全率或者召回率)。目标检测的指标:识别精度,识别速度,定位精度。a、目标检测中衡量识别精度的指标是 mAP(mean average precision)。多个类别物体检测中,每一个类别都可以根据 recall 和 precision 绘制一条曲线,AP 就是该曲线下的面积,mAP 是多个类别 AP 的平均值。b、 目标检测评价体系中衡量定位精度的指标是 IoU,IoU 就是算法预测的目标窗口和真实的目标窗口的交叠(两个窗口面积上的交集和并集比值)
非极大值抑制算法步骤非极大值抑制算法(Non-maximum suppression,NMS)在目标检测中经常用到。我们的检测算法可能对同一目标产生多次检测的结果,非极大值抑制算法可以保证每个目标只检测一次,找到检测效果最好的框。(1)去除所有预测框置信度于某个阈值的框,这里的阈值选取为 0.5。(2)在剩下的 1、2、4、5、6 号框中选取置信度最大的,即图中 5 号框,比较除 5 号框以外所有框于 5 号框的交并比,若交并比大于某个阈值(人工给定的值),则抑制这些不是局部极大值预测框输出。(3)再从剩下的框中选取置信度最大的,重复上面的步骤,直至没有框被舍去时结束。(4)最后 2 号和 5 号框被保留,其他框被抑制。若检测物体是多个类别的时候,一般情况是对每个类别分别做一次非极大值抑制算法。
斜着的矩形框如何求 iou?两个多边形的框如何求 iou?首先要求解两个多边形的面积,方法见该链接关键在于如何求出交集的面积思路一:蒙特卡洛 + 采样,近似求解交集的面积,但是中间涉及判断点在不在多边形内,判断点是否在多边形内思路二:适合于两个凸多边形(非凸没想到好的思路),凸多边形可以看做是半平面的交集,因此两个凸多边形的交集,可以看作是(m+n)个半平面的交集(假设两个凸多边形分别有 m 个顶点和 n 个顶点),求出来半平面的交集(仍旧是一个凸多边形)之后,求解该多边形的面积即可。求解半平面交集
RPN 的平移不变形如何解决?在计算机视觉中的一个挑战就是平移不变性:比如人脸识别任务中,小的人脸 (24*24 的分辨率) 和大的人脸 (1080*720) 如何在同一个训练好权值的网络中都能正确识别。若是平移了图像中的目标,则建议框也应该平移,也应该能用同样的函数预测建议框。传统有两种主流的解决方式:第一、对图像或 feature map 层进行尺度 \ 宽高的采样;第二、对滤波器进行尺度 \ 宽高的采样 (或可以认为是滑动窗口).但 Faster R-CNN 解决该问题的具体实现是:通过卷积核中心 (用来生成推荐窗口的 Anchor) 进行尺度、宽高比的采样,使用 3 种尺度和 3 种比例来产生 9 种 anchor。
RPN 生成候选框样本不均衡有什么问题?
- 为了训练速度和训练精度的平衡,原始图像进入训练之前需要先进行 resize,使图像的短边为 600(或者长边为 1000);
- 在训练过程产生的 anchor 中,忽视掉所有的超过图像边界的 anchor:如在 1000*600 的图像中,大概会有 20000(60*40*9)个 anchor,去除掉超过边界的 anchor 之后,还剩 6000 个。论文中提到:若是不去除这些 anchor 的话,它们会带来大量的、难以纠正的错误,并且导致训练 loss 难以收敛。而在测试过程中,对于超出边界的 anchor 并不是删除,而是修剪掉其超过边界的部分。
- RPN 得到的大量 proposal 可能会相互重叠,冗余度较高,论文根据这些 proposal 的 cls 得分对其区域采用非极大值抑制(NMS)去除冗余 proposal,经过 NMS 后每张图还剩下大概 2000 个 proposal。经过实验,NMS 并不会降低检测的准确度,但是大量减少了无关的 proposal。
- 对每个标定的 ground true box 区域,与其重叠比例最大的 anchor 记为正样本 (保证每个 ground true 至少对应一个正样本 anchor)
- 对 1 中剩余的 anchor,如果其与某个标定区域重叠比例 (IoU) 大于 0.7,记为正样本(每个 ground true box 可能会对应多个正样本 anchor。但每个正样本 anchor 只可能对应一个 grand true box);如果其与任意一个标定的重叠比例都小于 0.3,记为负样本。
- 对 1、2 剩余的 anchor,弃去不用。
- 跨越图像边界的 anchor 弃去不用。
![2b80fed9f0bec5f800374eba6c8d1f59.png](https://i-blog.csdnimg.cn/blog_migrate/44603b0071fa32c1198195beb9e0bc9d.png)
计算机视觉常见面试题型介绍及解答
第一期 | 第二期 | 第三期 | 第四期 | 第五期 | 第六期 | 第七期
腾讯算法工程师笔试真题介绍及解析汇总合集
第一期 | 第二期 | 第三期 | 第四期 | 第五期
阿里算法岗位最新编程题介绍及解析
第一期 | 第二期 | 第三期 | 第四期 | 第五期 | 第六期 | 第七期
![248f58cb1e392ac9a2986b293f4d94af.png](https://i-blog.csdnimg.cn/blog_migrate/5ccc825eb2f2690d66260aaf93dd5be3.png)
![1d45341a28d527805935621573a61b61.png](https://i-blog.csdnimg.cn/blog_migrate/29bef40fc704a4adebcf820e0df2daa8.png)