作者:刘子腾,南京大学化学化工学院博士研究生

跨专业如何做数据竞赛浅谈

自我介绍

刘子腾,南京大学化学化工学院理论与计算化学研究所(ITCC)博士研究生,导师是马晶教授,主要研究方向是材料的多尺度模拟和基于“材料基因工程”的数据库建设与分子性质预测的算法发展,曾获得Codalab Tencent Alchemy Contest比赛冠军。

怎么知道数据竞赛的

这个要感谢张杰的启发,我最早是通过阿里天池天文赛中张杰的解决方案了解到了数据竞赛,后来去听了他在南京大学的数据科学讲座,从中获知了数据竞赛的大概流程和竞赛经验。我也加入了Kaggle竞赛的社区群,在此社群中可以获得国内外很多赛题的开放信息。

如何跨专业数据竞赛

(1)     选择和自身研究更有关系的比赛。对于研究分子科学的学生,如果是从预测分子性质或者AI制药的比赛入手相对会简单一些,比如同一时期Codalab Alchemy Contest[1]和Kaggle Predicting Molecular Properties对我来说可能都是合适的。但是Kaggle比赛侧重于AI对分子自旋性质的预测,Codalab则是更倾向分子偶极、轨道能级和热力学性质的预测,相比之下我平时所做的后者性质的模拟更多,因此Codalab是更适合我的,同期的Kaggle比赛完全就当参考学习了。

(2)     结合课题思考AI的可用之处。虽然之前没做过这类比赛,但我的一个课题是通过统计手段来研究材料相变热力学性质中的熵效应(entropy effect)。我当时因为完全从物理的角度出发遇到了一些困难,所以一直也在思考能否通过AI来破除困境。后来自己发现这个性质和数据竞赛中的所关注的一个任务关系是十分密切的,这也激发了自己的兴趣,通过数据竞赛和大家一起探索建立合适的机器学习模型来解决问题。

(3)     寻找一位计算机专业的搭档。在算法基本功的方面,计算机系的同学肯定还是更专业一些,他们也能提供GPU资源,对你的思考提出专业的建议;对于跨专业的同学而言,最有价值的是和他们一起读论文,了解他们的思维方式和习惯并从物理角度一起思考解决问题的算法实践方案。这里我更建议先自己独立尝试解决,当比赛到达一定阶段后针对自己遇到的问题,再寻找跨专业的合作伙伴,当各自对问题都有了一定解决和需求后,彼此之间的沟通会更加顺利。

(4)     尝试从已发表论文的展望中寻找解决方案。一篇优秀的论文,通常都会实在地指出自己的不足,并给出未来解决方案的可能发展方向。比如Alchemy比赛的baseline是谷歌团队2017ICML的MPNN[2],在论文最后的地方它指出了该算法的不足并给出了2个方向。我们算法的一部分就是从解决这里的问题展开的,另一部分则是从量子化学模拟原理与比赛数据本身特点,尝试去解决MPNN算法本身的不足,这和他提出的问题也是有一定关系的。

数据竞赛价值与意义

(1)     数据竞赛(尤其是KaggleCodalab等这些国际竞赛平台的比赛)能拓宽眼界,提升问题的思考深度,并促进不同国界不同专业不同背景的交流。在Alchemy竞赛中,参赛者需使用机器学习算法预测经典量子模拟算法中密度泛函理论求解分子的 12 个量子性质。这里不仅有发表过NeurIPS, ICLR的计算机方向的博士,也有发表过Science advance,Nucleic Acids Research或者JCTC等基础科学物化生方向的关注者。在平时,处在不同评价体系的人很少能有一个问题能够让差异化巨大的社区聚在一起交流探讨解决方案。比赛后,相信每一个人都成长了很多,并且很多人都会在第一时间在论坛对主办方表示感谢。作为一个化学届的学生,我最开心的是跟着大家学到了很多AI届发展的处理图结构数据相关的算法会议前沿,而我也遇到了对量子力学感兴趣找我讨论的计算机系的同学,真的很有意思,大家都在另一个维度获得了提升。

(2)     竞赛对论文的发表以及找工作都是非常有帮助的。比如,Alchemy比赛中的第三名慕尼黑工业大学TUM KDD组Johannes Klicpera发展的DimeNet[3,4],在比赛结束后他们把算法做到了更好,不久就中了ICLR2020 spotlight和NeurIPS2020的Machine Learning for Molecules Workshop。并且有的比赛,只要获得不错的成绩,论文就有直接发表的机会。赛后,我也把自己的一点观点整理了一篇小文章[5]挂了预印本在Chemrxiv上,虽然还未正式发表,但是已经被引用5次了。另外,比赛对求职是也是有作用的,虽然自己水平较为一般,但也有不少公司联系我提供了实习机会。

(3)     竞赛让你结识不同领域的朋友,体会到合作共赢的工作方式,对个人发展的影响是非常重要且长远的。数据竞赛不仅会给出最具挑战性的数据和计算问题,通常也是最为公平直接的个人呈现方式,因此会吸引各方向研究者和工程师的汇聚。事实上,比赛会有结束的时候,但比赛所关注的问题可能仍会引发思考。比如,关于分子图结构数据的量子化学性质预测中的迁移性问题,竞赛后,大家之间的讨论还是非常激烈,彼此之间仍然在相互促进学习,并成为了很好的朋友。这里我要尤其感谢自己比赛时的队友,他的信任与帮助,教给了我最重要最宝贵的东西,在和这些人的接触中,你也总能被激发遇到更好的自己。如果在Kaggle或者Codalab这些平台做比赛,你还有可能找到与不同国家的人不同背景的人一起合作努力的机会。Alchemy这次比赛的一位对手是德国人,比赛结束后,我们已经是有兴趣合作去尝试其他竞赛问题的朋友了,在与他的交流中,我也发现成长于另一种教育体系下他身上所具有的独特研究品质,这里面很多都是自己非常欠缺的,甚至给我带来了一些自我反思。

对学弟学妹的建议

(1)     树立自信,勇敢走出舒适区,脚踏实地。这方面,大家要相信自己想学就一定能够学会,可以尝试多去复现AI论文的算法,学习Kaggle等社区的解决方案等。知识的掌握和专业、年纪都没有直接关系,有问题可以多写邮问论文作者、获奖选手或者去相应社区提问,不要害怕走得慢或者问题很难就停下脚步。

(2)     树立“学习的长期主义”、“学习不局限于本专业”的观念。AI发展的一个趋势是越来越多的与专家领域知识相结合,变化也很快,同样作为领域的研究者,也应该去学习前沿的算法理念。没有人能够一开始就能做得很好,但可以通过保持学习逐步积累来获得好的状态,自我充实,逐步提升,这很重要。

(3)     多动手实践,不迷信发表的论文,养成独立思考的习惯。在数据竞赛中,所有的算法都会来到同一个跑道上,你会发现很多论文的算法并没有那么神,相反还可能存在很多问题。多动手实践,能培养你对算法的直觉与理解能力,渐渐地,对于一类数据集,你不动手大概能看到算法的优点和劣势所在,很快筛选寻找合适数据竞赛的解决方案。物理化学材料等科学界,更倾向于直接利用现有的算法去解决问题或者只在自己建立的数据集上发展算法,这会让人拥有一些基础,但如果有空自己也可以独立思考,是否可以通过设计算法把性能指标推到另一个境地,甚至在公用的数据集上与SOTA比较,这对培养数据竞赛能力是很重要的。

(4)     善于向他人学习,多看到对方的优点,听取他人意见。数据竞赛中竞赛选手的背景丰富度可能非常高,各种年龄、专业、学历、国别都存在,对于同一个问题,在大家可能有不同的甚至冲突的反馈,但都是非常宝贵的。这时候你要多去听取不同背景人的意见,给出你的意见并寻求他们的支持。同时,在不违反竞赛协议的前提下,当别人有一些疑惑向你寻求帮助时,你也应该真诚的给出解答,和对方一起走得更远。

最后,有问题欢迎大家给我写信:njuziteng@hotmail.com

参考文献

[1] https://alchemy.tencent.com/

[2] Gilmer, Justin, Samuel S. Schoenholz, Patrick F. Riley, Oriol Vinyals, and George E. Dahl. "Neural message passing for quantum chemistry." arXiv preprint arXiv:1704.01212 (2017).

[3] Klicpera, Johannes, Janek Groß, and Stephan Günnemann. "Directional message passing for molecular graphs." International Conference on Learning Representations (2020).

[4] Klicpera, Johannes, Shankari Giri, Johannes T. Margraf, and Stephan Günnemann. "Fast and Uncertainty-Aware Directional Message Passing for Non-Equilibrium Molecules." arXiv preprint arXiv:2011.14115 (2020).

[5] Liu, Ziteng, Liqiang Lin, Qingqing Jia, Zheng Cheng, Yanyan Jiang, Yanwen Guo, and Jing Ma. "Transferable multi-level attention neural network for accurate prediction of quantum chemistry properties via multi-task learning." ChemRxiv 12588170 (2020): v1.


往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑
获取本站知识星球优惠券,复制链接直接打开:
https://t.zsxq.com/qFiUFMV
本站qq群704220115。加入微信群请扫码:

【竞赛相关】南大化院博士刘子腾:跨专业如何做数据竞赛浅谈相关推荐

  1. 准博士经验分享:跨专业考博必须注意的事项

    考博是个漫长且艰苦的道路,为惠及2021年的博友,希赛特邀了三位2020年考博上岸的学长进行了经验.技巧及书单的分享会. 在学长们分享的时候,大家都有很多问题,那么答应大家的,小编把所有的问题都整理好 ...

  2. 如何做数据竞赛·优秀案例学习(DC03)

    2019年腾讯广告算法大赛冠军思路.代码(PART 3) 方案地址:https://zhuanlan.zhihu.com/p/73062485 代码地址:https://github.com/guod ...

  3. 开始报名啦!——第二届融360“天机”金融风控大数据竞赛火热来袭

    炎炎夏日正好是提升数据分析能力,成为数据科学家的好机会.由融360和统计之都共同主办的第二届融360"天机"金融风控大数据竞赛开始报名啦!不论你是什么学校什么专业,只要你对大数据和 ...

  4. 2022-2023赛季高职大数据竞赛-赛规任务剖析

    2023年高职大数据省赛,任务详解与参考实现. 2022-2023赛季高职大数据竞赛-赛规说明 2022-2023赛季高职大数据竞赛-赛规任务剖析 2022-2023赛季高职大数据竞赛(样题解析)-离 ...

  5. 浅谈 MySQL 子查询及其优化

    2019独角兽企业重金招聘Python工程师标准>>> 使用过oracle或者其他关系数据库的DBA或者开发人员都有这样的经验,在子查询上都认为数据库已经做过优化,能够很好的选择驱动 ...

  6. 《数据竞赛白皮书》发布:竞赛核心价值及促进人才数字化转型

    近年来,"数据竞赛"已经成为大数据与人工智能领域的热门话题.据不完全统计,2014年开始,全球赛事超1000场,仅中国的竞赛场次年均增长达108.8%,累计超120万人次参加,奖金 ...

  7. 《数据竞赛白皮书·下篇》发布,开源办好一场数据竞赛的实践方法论

    两周前,我们发布了<数据竞赛白皮书·上篇·1000场竞赛的深度分析>,通过28000字的研究分析.54个高品质图表,讲透了数据竞赛行业发展,带领大家看懂了竞赛高热度背后的逻辑. 上篇发布后 ...

  8. 南工院C语言试卷答案,南工院11-12-1C期末B试卷 附答案.doc

    南工院11-12-1C期末B试卷 附答案.doc 南京工业职业技术学院 2011/2012 第一学期 期末考试试卷B卷 课程: <C语言程序设计> 出卷人: 刘艳红 考试得分 一.选择题( ...

  9. 《考研计算机专业基础综合考试解析配套1000题》错题集20155314刘子健

    <考研计算机专业基础综合考试解析配套1000题>错题集 By20155314刘子健 目录 数据结构部分 第一章 线性表 第二章 栈.队列和数组 第三章 树与二叉树 第四章 图 第五章 查找 ...

最新文章

  1. 【C 语言】数组 ( 数组类型表达 | 定义数组类型 )
  2. Spring boot的Webjars
  3. Python 读写操作Excel —— 安装第三方库(xlrd、xlwt、xlutils、openpyxl)
  4. Delphi三层开发小技巧:TClientDataSet的Delta妙用
  5. git merge 回退_Git命令
  6. 原生的html组件,如何创建HTML5与原生UI组件混合的移动应用程序
  7. iOS 获取屏幕的属性和宽度
  8. size_t,__T,_T,TEXT,_TEXT等一些特殊宏的理解
  9. 启动转换安装失败 拷贝windows安装文件时出错_在Ubuntu16.04下安装MATLAB2017b
  10. C# 关于浏览器——CefSharp篇
  11. linux调试符号表,strip去除目标文件中符号表、调试符号表信息
  12. CSDN x BSV|区块链工程师能力初级认证正式启动
  13. ros(28):ros基础知识学习:roscore、ros master、ros::init()、roslaunch
  14. 问题解决:虚拟机无法复制粘贴文件
  15. Fabric共识机制
  16. 手机远程计算机桌面,远程桌面预览Windows10,您可以远程通过手机控制电脑
  17. QT隐藏标题栏和背景
  18. Warning: To load an ES module, set “type“: “module“ in the package.json or use the .mjs extension.
  19. Sencha Architect4.0破解教程
  20. resultful 风格

热门文章

  1. Android心得4.1--文件的保存与读取及文件的操作模式详解.doc
  2. MFC 单文档如何修改背景。
  3. 通常你会在什么地方遇到DBNull?
  4. poj3216 Prime Path(BFS)
  5. 知乎爬虫之4:抓取页面数据
  6. 多线程环境下的线程不安全问题(1)
  7. js 调用父窗口的方法
  8. 设置mysql最大连接数的方法
  9. windchill开发之创建对象
  10. Pycharm详细安装教程