还在为写论文发愁吗?教你参加Kaggle比赛后如何产出
全文共3616字 , 预计学习时长12分钟
文章图片
图源:unsplash
你是否常常因为写不出论文或报告而苦恼?参加比赛后写论文的意义何在?写出的论文该怎么发表?笔者已亲身经历向你讲述全流程 , 这篇论文将会成为你的宝贵财富 。 那么我们开始吧!
文章图片
关于Kaggle比赛
Kaggle是最受欢迎的机器学习竞赛平台 。 该平台举办免费的InClass竞赛 , CVPR和NIPS等会议的挑战赛 , 科学竞赛和商业挑战赛 。
挑战赛的组织方通常为参赛者提供数据、评估指标和预测测试集 。 该测试集用于组建公共排行榜 , 与其他参赛者相比 , 该排行榜反映出模型的质量 , 可在挑战赛中提高游戏化能力 。 许多参赛者由于追逐排行榜排名 , 而不是相信自己的本地验证 , 这空拍对他们无益 。
除了排行榜之外 , Kaggle平台还具有讨论、笔记本和数据集 , 参赛者可以在其中分享自己的想法、数据和代码示例 。 由于可以部分挑战可以共同解决 , 流程大大加快了 。 平台为学习提供了强大的支持 , 许多学生和新兴的学习专家都选择Kaggle平台进行处女赛 。
文章图片
Kaggle网站界面
当然 , 还有其他机器学习竞赛的平台 , 例如topcoder , Codalab , Zindi等 , 但由于缺乏笔记本和良好的讨论论坛 , 这些平台更倾向于专业人士 , 而不适合学生和学习者 。 所以 , Kaggle通常是练习机器学习的首选 。
另外 , Kaggle通常会提供GoogleCloudPlatform的信誉 , 可在挑战赛的有限时间内使用 。 荷兰的互联网服务提供商HOSTKEYB.V.(https://www.hostkey.com/gpu-servers#/)也可以提供对GPU服务器的访问和技术帮助 。 可以在此处申请资助:http://landing.hostkey.com/grants 。
文章图片
参加Kaggle比赛后 , 为何要撰写论文或技术报告
在机器学习竞赛中 , 许多方法和思想通常是经过尝试和验证的 , 最终会为给定任务提供最先进的模型 。 通常 , 所有模型都无济于事 , 只有前三种解决方案会被挑战赛组织者所采纳 。 这显然是对知识和计算资源的巨大浪费 , 太可惜了 。
文章图片
图源:hackernoon
近年来 , 许多顶尖参赛者撰写了描述解决方案的文章 , 甚至在比赛结束后公开了代码 。 这是一个非常棒的倡议 。 但是 , 简短的描写通常不足以重现结果 , 并且Kaggle风格的代码通常有些混乱 , 如果没有注释和文档字符串 , 则很难理解 。
挑战赛期间 , 每个人都急于追逐排行榜排名 , 只有少数参与者会关心生产质量代码 。
文章图片
图源:unsplash
那么为什么要在比赛后将顶级Kaggle解决方案模型形成详细的技术报告或论文 , 而不是通常看到的一小时可以读完的文章呢?
1.这对人类知识基础做出了巨大贡献 , 并且确实产生了影响 。 通常 , 在比赛中有几种想法可以得到实施 , 经过多次尝试(或失败尝试) , 有时甚至可以在获胜的模型中看到SOTA解决方案 。 详细的总结有助于其他研究人员和学生节省时间 , 同时选择合适方法、模型架构 , 损失函数或扩充函数 。
即使没有明确看到影响 , 但影响确实存在 , 在对GitHub存储库的论文和分叉的所有引用中可以看到影响 。
2.挑战赛后 , 合适的技术报告或论文可让人们清洗代码 , 使代码变得可读和可复制 。 还会推动人们去完成这些文档字符串 , 添加该自述文件等等 。
作为GitHub上的一个微型项目 , 它看起来很不错 , 其中引用了arXiv和干净的项目代码 , 还可在简历中添加一些内容作为工作的示例 , 可以在没有NDA问题的情况下共享这些代码 。
3.提交给arXiv的文章无需同行评审这一过程 , 而提交给期刊或会议的文章则需要同行评审 。 在arXiv上发表了技术报告后 , 还可以将其发送到会议记录或相关期刊 。
文章图片
图源:unsplash
笔者也遇到过这种事情:在arXiv上发表论文草案后 , 笔者获邀将论文提交给期刊 。 将工作报告提交给会议和期刊 , 可以让自己使用的模型和方法进行适当的同行评审 。
确实 , 有时评审味着需要进行额外的计算 , 消融研究甚至论文的一半的内容都需要重写(笔者知道这种感觉) , 但值得一提的是 , 这种反馈可以让研究和技术工作更好 , 还会加深对问题的理解 。
4.现在已准备就绪:数据分析、有效的pipeline代码、结果甚至数据 。 挑战赛后直接将所有内容组合在一起会比较容易 。
5.最后 , 这是长期的良好公共关系(PR) 。 Kaggle帖子的受欢迎时间有一天 , 一篇博客帖子的受欢迎时间有一周 , 而一篇优秀的同行评审论文可以保留很长时间 , 还会出现在arXiv和相关的会议记录上 , 从而为自己以及公司建立了长期的公共关系(如果碰巧在公司的话) 。
文章图片
关于参加Kaggle比赛后撰写论文或技术报告的几点思考
1.撰写适当的论文通常意味着要重新运行在挑战赛中快速进行的所有计算 , 需要再现所有这些尝试和失败 , 并进行消融研究 。
研究中没有失败一说 , 只有有价值的信息 , 所以确实需要运行所有未改进的模型 , 以衡量改进的影响 。 这意味着进行更多的计算 , 更多的尝试和系统的研究 。 有时 , 可能会找到比提交给挑战赛更好的解决方案 。 这很正常 。
2.天下没有免费的午餐 。 撰写技术报告或论文意味着花费时间来创作适当的文档 , 浏览相关的文献 , 回顾当前的最新技术 , 详细介绍使用方法 , 制作图片 , 制作文字 , 添加参考文献等等 。
这一切都很花时间 。 寻找以为对此话题有兴趣的共同作者是非常有用的 , 即使他们没有参加挑战赛也可以 。
文章图片
图源:unsplash
3.有时 , 把论文提交给会议或期刊以及进行同行评审会很痛苦 。 有时 , 评审意味着需要进行额外的计算 , 消融研究并重写论文的半数内容 。 这将教会一个人什么是耐心 。
4.有时 , 在参加比赛之后实在太累了 , 不想再次查看代码让其变得干净 , 不想再添加所有这些文档字符串和注释 , 这是正常表现 。 但是编写一个不错的代码并将其放在GitHub存储库进行公开 , 可以提升简历内容 , 请牢记 。
5.论文在同行评审过程可能会被拒绝 。 不要为此感到烦恼:仔细思考审阅者的反馈 , 然后重新提交给更相关的期刊或会议 。
去年 , 笔者成功提交了两份有关挑战赛的技术论文 。 笔者发表在了arXiv和GitHub上 。 第一篇技术论文获邀参加《天文学会杂志》 , 第二篇论文被会议接受 。。
文章图片
关于参加Kaggle比赛后撰写论文或技术报告的数个步骤
1.先做个文献综述吧 。
如果要对当前用于类似任务的最新技术进行研究 , 请阅读最新的相关论文 。 很有可能 , 在比赛中会尝试实施这些论文中的技术 。 要了解最新的深度学习方法 , 请关注paperswithcode 。 它提供了具有可用代码的出版物参考 , 并提供了流行数据集的最新排行榜 。
2.清洗代码 。 重组、重构、添加文档字符串和注释 。 可以考虑使用Black进行样式格式化 , 使用isort进行导入排序 , flake8和Mypy进行检查 。
这篇文章提供了有关如何让代码更具可读性的有用信息 。 编写自述文件 , 其中包含有关如何设置环境和下载数据 , 如何训练模型以及重现实验的说明 。 (https://towardsdatascience.com/nine-simple-steps-for-better-looking-python-code-87e5d9d3b1cf)
文章图片
图源:unsplash
3.进行消融研究 。 修复所有随机种子和超参数 , 并对所有实用但不太成功的技巧重复计算 , 介绍更改内容 , 并重复尝试和拒绝的尝试 , 记录每次的指标 。
进行消融研究 , 以了解实施模型改进后的真正贡献是什么 。
4.浏览Kaggle上共享的其他顶级解决方案 , 联系获奖者 , 并询问如何将想法/代码与参考内容一起使用 。 在消融研究中添加改进内容很有必要 , 并在论文讨论会中提到这些想法 。
Kaggle人员对此非常开放:笔者问了大约3-4个人关于如何将内容与参考内容一起使用 , 并始终获得了许可 。 甚至可以进一步改善模型 , 延迟时间把模型提交给竞赛方 。 Kaggle平台允许延迟提交模型 。
5.进行数据集描述 , 准备一些可以说明数据的图表 , 显示数据类别分布 , 提供所有使用其他数据的来源 。 应该遵循介绍部分 。 描述给定的任务和使用的度量 。
6.在进行消融研究时 , 对模型进行改进并进行重新培训 , 当在排行榜上获得不错的成绩时 , 就可以考虑写下来了 。 描述使用的模型 , 如何拆分数据 , 数据的预处理和扩充 , 使用的超参数以及模型训练过程 。
把这些写得简洁明了 , 请参阅GitHub存储库 。 不要忘记引用本文中使用的所有资源、文章和软件包 。
7.写下结果 。 绘制一些图表说明不同模型的训练过程以及数据扩充;添加带有实验和消融研究得分结果的表格 。
8.最后 , 反思结果 。 可以添加讨论部分 , 也可以添加失败的尝试 , 以及还未解决的问题 。 另外 , 可以在本节中提到其他参与者分享的想法 。
9.不要忘记致谢一节 , 感谢挑战赛组织方 , Kaggle平台以及任何对自己有用的人或物 。
文章图片
图源:unsplash
10.要制作纸张样式 , 可以使用LaTex编辑器(即WinEdit)或在线编辑器(即Overleaf)并从Overleaf下载不同的样式 。 写完后 , 最好用Grammarly检查文本 。
11.首先把论文提交到arXiv 。 然后 , 确定相关的会议和期刊 , 选择会议时注意论文提交的截止日期 , 阅读该会议对作者的说明 , 下载其latex模板并将内容复制到里面 。 准备就绪后 , 可通过会议或期刊网站提交 , 并等待评审 。
论文在同行评审过程可能会被拒绝 。 不必为此感到烦恼:每个期刊或会议都有其主要范围 。 遵循评审者给出的方针 , 并在可能的情况下考虑这些反馈 , 然后改进文章 , 重新提交给另一个相关的期刊或会议 。
文章图片
图源:Pixabay
这些工作听起来就很不容易 , 这当中你一定会遇到不少挫折和困难 , 但别怕!完成这些事 , 你的论文将更加具有可读性和实用性 。 对于简历和GitHub存储库而言 , 这也是一笔宝贵的资产 。 这个艰难的过程会让你收获颇丰 。
文章图片
留言点赞关注
我们一起分享AI学习与发展的干货
【还在为写论文发愁吗?教你参加Kaggle比赛后如何产出】如转载 , 请后台留言 , 遵守转载规范
推荐阅读
- 王者荣耀:吕布最近强度凸显,玩家认为攻速太高需要尽快削弱,你赞同吗?
- 独家对话宋亚东:一龙与马保国做了坏表率,大众误以为他们是高手
- 92班黄金一代的右后卫内维尔,为曼联奉献一生,时常为曼联支招
- 温柔气质的连衣裙,已成为夏日必备单品,随意一穿就能打造时尚
- 中国停止采购澳大利亚煤炭?澳政客风声鹤唳,这就是惹错人的后果
- 登上央视,国产加特林机枪或将装备,成为直-20贴身保镖?
- 原创 男人能够为你做到这四件事,说明他是真的爱你
- 鬼谷子:摆谱不是内心的虚荣,而是为人处世的高明,使自己保值!
- 为人处事请牢记,如果碰到以下3种人,躲得远才避灾!
- 原创 经常为此而联系你的女人,心里多半都喜欢你!