本人最近想了个idea,把网路搭建好后却发现如题的问题,在某个数据集上效果超出baseline挺多,但是对于其他数据集我调了几天参好像效果都不太好,甚至差的还远,不知道我是否还应该坚持这个idea?


数据集还不够。我们组做实验都是在三五十个数据集里找五六个还行的贴上去,实在找不到就多找些数据集。

ps. 坐标国内cs某领域顶刊产出最多的组。


交叉验证法


个人建议针对这种情况可以从两个方向进行考虑 ↓

一是这个 Idea 是否是针对特定数据集提出来的,另一方向是基于某一种或某一类方法的劣势进行的改进。

1.如果是基于效果较好的数据集提出来的,可以想想看自己 idea 是否是有特殊性,能否泛化到其他数据集;统计分析所用的几个数据集的特点,对比一下效果好的数据集是否有特点以及几个数据集的差异,再结合自己的 idea 看能否适用所有的数据集。如果只能适用某个(类)特定的数据集,统计出这个数据集的特点,考虑在 idea 的适用范围加上约束。

2.如果是发现某一类方法或某一类方法的不足进行的改进,可以考虑在这一方法或这类方法常用的数据集上进行实验,或者直接在 baseline 用的数据集上进行实验。如果效果还是不好,找一个公开的源码用到这几个数据集了,将自己的改进在此基础进行实现验证。

有了 idea 就不要放弃,再找找原因、多尝试几次实验吧


如果是真的想修改自己的idea,那就针对那几个不好的数据集选一些bad case做case study。分析这个idea为什么不行,然后针对性改进。

如果是以发论文为目的的话可以那就多测几个测试集把好的写进论文里或者换个差点的baseline,实在不行就当作limitation进行分析。


我觉得没问题, 没有方法是100%适用于所有场景的。 题主说了在某一个数据集上表现很好, 那么深究其理这个方法是不是在处理这种特定情况下的数据有特殊的优势?

不是所有的方法都是结果导向的。如果你拿著这个表现好的资料库充分找出它和其他资料库的不同然后全面分析为什么会在其他两个上表现差发一篇文我认为是没问题的。拿物体识别举例比如你说我的方法在光线较明亮的时候表现很好,但是对光线暗或者解析度不够的数据就表现不好

这样的信息是有价值的, 如果未来有人有和你有同样的想法,你的实验结果就有参考价值, 可以看出这个想法的优缺点

加油骚年


数据集是有特点的。某一方法的应用是主要解决存在一类问题的数据集。

你需要分析为什么在一个数据集上好在别的数据集上不好?是不是这些数据集的特点不一样,其中某些特点是你的方法解决不了的?还是数据集本身有问题?还是你参数调错?

你idea的作用你应该是很清楚的,数据集的选择应该是迎合你的idea的。

你所谓的「好」指的是什么?其中充满随机性吗?比别的方法好多少,是否能足够说明结果的区别性?假使差个零星半点,那在统计意义下是否说明没有差别?

你提出的问题比较模糊。大家提的建议是在夹杂著各自理解与脑补的情况下给出的。也许与你实际遇到的问题相去甚远。

我建议与你的导师细说你的想法和实验,问题才比较容易被发现。问网友的话,要么无法细说你的idea,要么网友们只能说一个可能性。你听网友的话去做决定,一定意义上来说,叫做赌博。


这是典型的模型泛化能力弱的表现。

可以试试bagging这种继承学习的方法


我试过的research paper里方法,几乎所有都只在他们自己选的数据集上有用,在我的数据集上都没有用哈哈哈哈哈。

Google还发过一篇文章diss过做推荐系统研究的,做baseline model不精调故意弄个很差的baseline来显示自己的新model新方法很好,然后他们去复现这些论文,把baseline精调,发现没有一个新model可以beat baseline。

ML/DL领域水分太大,我已经看透了


首先,模型效果好基本上是建立在训练数据集大而广上。尽可能整合数据成为大数据集,进行建模和参数优化。内部可用交叉验证进行validation

其次,找数据产出相似平台的数据集进行预测。毕竟平台不一样,batch effect会导致预测label偏差。

总之,构建模型就是为了预测应用。要是只为了调出好的结果而进行数据集的主观选择,这样是有违科学原则的。你们也可以科学分析下为啥不同数据集预测结果会差别这么大。从而确定你们模型的适用范围。


首先请用各种数据划分方法做充分验证,让你自己能确信你的方法确实在这个数据集上全方位地好,否则以下不成立:

如果你能通过(1)Case Study (2)定量实验证明效果好的这个数据集上存在某种问题,而别的数据集不存在这个问题,同时通过讲故事让读者认同这个问题确有其解决的价值,是可以发文章的。

现在技术问题越来越细化,你的方法不能在不存在所针对问题的数据集上提点是完全可以原谅的事情。

举例: FineGym很准确地捕捉了现有视频分析数据集的时序太长标注太糙存在场景动作混淆的问题,提出了一个多层次、包含子动作的精细动作标注数据集。如果你的方法设计了某种机制能够敏感地捕捉精细动作,你的改进在粗糙动作集(除上述数据集外的大部分数据集)上自然是不起作用的,但你的工作仍然很有价值,值得发表,并不因为多数据集验证效果不好而被指责。


我猜想你的idea是针对某个数据集来设计的,但是通用性较差,我们在观察数据时应该找到所有数据的共性问题,我建议题主放弃这个idea


嗯 一个idea不一定是可以解决所有的问题 最重要的知道它为什么在这个数据集上表现很好 而在其他的不好


如果ensemble能挽回局面那还有救


最近我也遇到了相同的问题,还是比较恼火的,磕盐加油

分析原因:

  1. 数据集的分布不同,复杂程度不同,对于不同的数据集同一个网路结构并不能实现很好的效果。
  • 分析数据集的分布
  • 分析超参数的分布
  • 如果你是分类任务或者是识别任务,可以把错误类别单拎出来看一下
  • 遍历的参数还不够多,毕竟很多参数没有规定的取值范围(如果你说的调参是learning rate,或者是batch size,就当我没说吧)

  • 最近刚好经历了这种事。

    版本1在最开始的15个数据集只有4个好的。第一反应是再找15个数据集就好了。可是不想傻傻等那么久,然后就去找原因。

    我列几个问题,然后写代码去验证下心里的好奇,就发现了可能导致实验不好的原因。我相信每个人都会对自己的idea问一些问题的,写代码去验证就好。

    改到第4个版本后,终于在20个数据集上找到11个效果好的,顺便找到了下一个idea。


    这不是很正常吗。能在所以数据集上work才不正常


    找差异


    主要是找原因,找到原因好好分析就可以水paper……


    发论文


    建议楼主转心理学


    推荐阅读:
    相关文章