其他

Kaggle爆出历史上的最大新闻(丑闻?)

2017-01-19 陈晓理 大数据应用

 

一位战斗民族的竞赛选手将历史最高奖金项目,直接贬为最惨打脸项目,这是怎么回事?从中我们需要汲取什么教训?是否定了数据科学的行业应用了吗?


关注Kaggle竞赛的朋友们肯定都被最近一期Data Science Bowl吸引过来,其一在于这次的题目(利用图像识别检测肺癌病例)很有实际意义,其二在于奖金极高(总额$100万美金),第10名都能获得$25k的奖金,已经等同于其他很多比赛第一名的奖金了。



但现在,这次比赛将成为Kaggle历史上的最大丑闻。

 

这一切都是因为俄罗斯裔的一位参赛选手Oleg Trott。



先给大家看一下现在的排行榜:


这里面’Score’一栏采用Log loss为评判标准,数值为正,越小越好。


当然,我们看到这位战斗民族优秀选手就把这个数值刷到了0.0000,而其他人都在0.52以上徘徊。

 

我刚想说这次是不是又出现了Data leak,之前很多次Data Leak,影响很坏,但也对理解数据科学非常有帮助,我还专门撰文阐述了我们的理解(详见再论数据科学竞赛中的Data Leakage)。


而这次,这位毛子直接暴力解析Test label,比其他Data Leak影响更坏,还获得了成功。Oleg Trott自己发了一篇博客,阐述了如何仅仅靠对测试集结果的对比刷分,而不经过对所提供数据进行建模,刷出了史上最佳成绩,这是对Kaggle的彻底打脸。

 

在文中,Oleg谈到,刷分数这件事情由来已久,以前就有人提出理论上可以在66天内暴力刷出所有完美测试集结果。这次,Oleg用了5天时间,刷了14次(其中还有2次是多余的),直接得到0.00000的完美成绩。

为什么Oleg的方法能够管用?

这是因为Kaggle在评分时,不是直接evaluate参赛者的模型,而是对比模型结果与真值(test label),判定模型的performance. Oleg的方法就是利用Kaggle的规则,不通过training data建模,直接解析 test label。


Oleg根据information theory发展出自己的刷分方法,他说,Kaggle服务器在接受参赛者提交成绩后将给出有关test labels最多21.7 比特的信息,而一共就只有198个test labels, 所以理论上刷8次左右就可以了解整个test set的全貌,他刷了14次,这从理论上说,是完全可行的。


这样的方法对帮助识别肺癌有用吗?

没有!再一次强调,Oleg所用方法,不是根据所提供的training数据进行建模,然后预测test set的对应值,而是直接暴力解析test set的test label。 这对解决肺癌识别问题没有一点帮助。


这次事件对Kaggle的影响如何?

最狠的一次打脸。之前Kaggle竞赛出现过若干次Data Leak,造成参赛者的不满(再论数据科学竞赛中的Data Leakage),这次由于奖金数额巨大(总额$100万),赞助商合作商背景深厚(NIH, NVIDIA等),影响更大。


能否否定数据科学与深度学习在医疗上的应用?

这是两码事儿。这次只是Kaggle数据竞赛平台的一次丑闻,更具体点,是其评判结果点方式失当,被参赛者再次打脸。这完全不能否定数据科学和深度学习在医疗影像处理上的有效应用。IBM的Watson已经通过数据科学的方法将某类癌症检测率提升至超过人类专家的水平,可以预见,今后,将有更多由数据科学协助的医疗检测技术的突破。



对于本次事件,我们数据应用学院将持续跟踪,及时给大家update最新情况。




您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存