百科问答小站 logo
百科问答小站 font logo



测试集在构造的时候需要人为控制其中应该正确的和应该错误的数据比例吗? 第1页

  

user avatar   wang-yu-64-9 网友的相关建议: 
      

如果说你是在讨论机器学习/深度学习问题:

理论上,当然一个好的Object Detection的model可以学习到你的sample里有没有object,你需要做的是,在训练的时候,给一些样本,标注label为no object的类别,或者我们说的negative sample。

实践来说,可以把你的问题拆分成两个步骤,一个是识别有没有object,另一个是识别是什么object,那么对应的,通常来说可以用两种办法来解决:

1.two-stages, 第一个stage识别,sample有没有object;第二个stage给你的object做分类

2.one-stage,把两个合并到一起,直接识别并且给分类结果

不管哪种方法,在training的时候,你都需要训练,什么是object,什么不是,就意味着你需要negative的样本。假设你用的softmax,如果你的训练样本里都是有汽车的,那么在testing的时候,任何一个图片,即使没有汽车模型,根据softmax,你的模型总会给出你一个汽车模型的类别。这可能不是你想要的,但是至少是模型认为最有可能的汽车模型。

所以,如果你觉得在testing的时候,你会遇到这样的问题,那么在训练的时候,你需要加入negative的样本,这里的negative样本,可以是其他类别,人,或者anything you don't care,把他们划分到一类,我们可以叫他background。这样训练好之后,你的model在面对并没有汽车的图片的时候可以降低objectness的probability,增加background的概率,告诉你,这张图片没有任何汽车 。

就像你教幼儿园小孩子识别,这个图片是Audi,这个图片是benz,这个图片是bmw,那么你再新给出一张图片的时候,没有任何汽车的时候,他可能会觉得没有,但是你之前你教他的是,必须给出一个汽车答案,那他可能会硬着头皮,觉得最有可能像什么就告诉你什么,这就是实际的model干的事情;但是如果你在教他的时候,带他识别一些其他的类别,如果没有汽车就说没有(negative sample),那么他在遇到其他的图片的时候可能就会告诉你没有看见。

理论上,一个智能的系统,应该从training set里就能知道有没有object。也许你可以尝试的trick是,设置一个threshold,在Softmax之前,如果高于threshold就是确信有object,如果低于,就是没有; 或者Softmax之后,根据confidence score设置threshold。但通常不是推荐的办法,因为threshold的设置很tricky & unstable。还有一些相关的技术叫做Anomaly Detection,可以阅读一下,说不定可以帮助你。

最后,值得注意的就是正样本和负样本的比例,最好的情况是每个class样本量都一样,如果办不到,通常可以做oversampling 和downsampling,另外class weight也可以调节,然后看看你的metrics,选取最合适的参数(调参)。




  

相关话题

  为什么多标签分类(不是多类分类)损失函数可以使用Binary Cross Entropy? 
  为什么计算机科学专业背景的人喜欢黑机器学习? 
  从今年校招来看,机器学习等算法岗位应届生超多,竞争激烈,未来 3-5 年机器学习相关就业会达到饱和吗? 
  为什么小模型已经可以很好地拟合数据集了,换大模型效果却要比小模型好? 
  如何理解今年发表在JMLR上随机森林算法SPORF? 
  欧洲有哪些统计机器学习比较强的大学或者研究院的?? 
  神经网络中,bias有什么用,为什么要设置bias,当加权和大于某值时,激活才有意义? 
  围棋AI为什么没有下出同局? 
  神经网络中 warmup 策略为什么有效;有什么理论解释么? 
  为什么Transformer适合做多模态任务? 

前一个讨论
有哪些茶香的香水推荐?
下一个讨论
如何评价郭杰瑞旧一期视频云南咖啡以及淘宝店?





© 2025-04-27 - tinynew.org. All Rights Reserved.
© 2025-04-27 - tinynew.org. 保留所有权利