百科问答小站 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,选取最合适的参数(调参)。




  

相关话题

  新手如何入门pytorch? 
  如何看待timm作者发布ResNet新基准:ResNet50提至80.4,这对后续研究会带来哪些影响? 
  「数据会说谎」的真实例子有哪些? 
  如何看待NLP领域最近比较火的prompt,能否借鉴到CV领域? 
  机器学习小白来提问:关于联邦学习FedAVG和FedSGD的问题? 
  word2vec 相比之前的 Word Embedding 方法好在什么地方? 
  去哪找数据?怎么挖掘? 
  为什么deep lab v3起,输出不再接 DenseCRF了? 
  所谓大数据分析,究竟要学什么? 
  如何理解Inductive bias? 

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





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