当前位置: 首页 > 科技观察

一个高效的机器学习研究者应该具备这6个习惯

时间:2023-03-14 23:09:13 科技观察

优秀的机器学习研究者有哪些特点?是不是超级厉害?习惯应该是检验卓越的唯一标准。跟上ArxivSanityPreserver的最新研究,让模型不眠不休地训练,充分利用StackOverflow……除了这些,成为高效的ML研究者还需要什么?近日,有网友在Reddit上发帖发帖提问:“高效的机器学习研究者有哪些习惯?”对此,不少网友纷纷留言献计献策,热闹非凡。此前,OpenAI的创始成员之一、研究科学家JohnSchulman也专门写过一篇文章《机器学习研究指南》,从选择研究问题的能力到研究驱动力,再到具体的研究方法,提出了自己的独特的建议。先来看一下:1.培养选题能力在机器学习研究中,拥有选题能力甚至比自己的技术能力更重要。而这种能力是通过随着时间的推移观察哪些想法最终成功,哪些想法最终被遗忘而发展起来的:那些成功的想法可能会发展成为某些领域新想法和进步的基石,而那些最终被忽视的可能是它们太复杂或太脆弱,或者它们带来的增量进展太少。这种积累的观察可以让你了解哪些观点具有长期价值,哪些观点可能只是“昙花一现”。对于这种能力的培养,你可能也在探索一些捷径。以下方法可以为你提供一些参考:首先,阅读大量论文,批判性地评价这些论文。如果可能,尽量邀请机器学习领域的优秀研究人员一起讨论这些论文。其次,尽量加入研究课题相近的研究小组,学习他们的研究经验,培养良好的团队合作能力。第三,在研究问题的选择上,可以征求资深研究人员或其他有经验的研究人员的意见。向他人征求意见并不可耻,当你最终决定了正确的研究问题时,你的技能就会得到释放,你将能够在很大程度上进行研究。第四,花点时间想想什么样的研究是有用的,会产生什么结果。例如,问自己以下问题:理论在什么情况下有用?什么情况下可以将实证结果转化为研究?是什么让一些想法被广泛接受,而另一些想法最终被遗忘?机器学习领域的未来趋势是什么?哪些研究方向可能会让其他研究方向望尘莫及?其中第一点到第三点,目的是优化你的研究环境,从其他研究者那里得到一些建议和经验,而第四点需要你独立思考。从“几乎所有有影响力和影响力的工作都是由少数研究团队和机构完成”这一事实可以验证第三点第一点的重要性。这并不是因为这些研究团队或机构中的研究人员比其他研究人员聪明得多,而是因为他们站在“巨人的肩膀上”,拥有更高密度的专业知识和观点,所以他们可以比社区中的人做得更好.其他研究人员领先一步。不过,如果你后悔没能在这样的环境下开展机器学习研究工作,也不要气馁。你也可能通过额外的努力走在别人的前面,培养自己的专业能力和独特的视角。2.研究是由观点或目标驱动的吗?选定一个研究问题后,一般来说,可以通过两种方式来决定下一步的工作:第一,观点驱动,遵循一些文献的观点来开展下一步的工作。如果你碰巧看到一篇论文,其观点和想法与你的下一部作品是一致的,那自然是最好的。然后你可以开始一个项目来测试你的想法。第二,目标驱动,目标是发展一些你想掌握的新AI技能,同时解决一些问题,让你离最终目标更近一步。在实验部分,可以尝试对文献中已有的一些方法进行测试,然后在这些方法的基础上提出自己的新方法进行优化和改进。当然,这两种方法并不相互排斥,机器学习的任何一个子领域的研究都不可避免地涉及到一些目标(例如目标检测),所有“想法驱动”的项目也代表了该子领域的发展目标,从这个意义上说,““视角驱动”研究实际上是“目标驱动”研究的一种实例形式。这里所列的“目标驱动”是指个人目标比机器学习的某个子领域的发展目标更明确,强调“做第一个吃螃蟹的人”,而不是基于某项研究。优化和改进。从长远来看,“目标驱动”的研究对大多数研究人员来说更有价值。“想法驱动”研究的风险很高:它可能会重复其他研究人员的研究工作。世界各地的研究人员阅读相似的文献,这使他们很容易得出相似的想法。而如果你想通过“想法驱动”的研究做出突破性的工作,你需要对自己的研究主题建立独特的深刻理解,并且能够以不同于社区其他研究人员的眼光进行研究,一些人就这样了。也许可以做到这一点,但做起来会非常困难。另一方面,在“目标驱动”的研究下,你的目标本身可以给你一个不同于其他研究者的独特视角,引导你提出别人没有提出的问题,从而使你取得更大的进步。不仅如此,这种研究方法还会让你更有动力:你每天早上醒来都可以怀着实现目标的愿景。这将使您更容易在研究的起伏中坚持不懈。在团队合作方面,“目标驱动”研究有助于团队研究人员进行协作研究,从问题的不同方面开展研究工作。然而,“想法驱动”的研究在1或2人的“团队”中进行时最有效。3、高瞻远瞩,一步步攀登目标的巅峰。为什么一些聪明勤奋的人不能做好研究?一个重要的原因是他们研究的问题不是大问题。在开始研究项目之前,不妨问问自己:这个问题的研究前景如何?它会带来10%的提升还是10倍的提升?许多研究人员经常遇到的一个主要瓶颈是:看似有意义的正在进行的项目,但在某些指标上只产生了很小的改进。增量工作(实现10%的改进)对于尝试实现更大的目标非常有用。例如,Krizhevsky、Sutskever和Hinton在2012年发表的一篇关于使用卷积神经网络对ImageNet进行分类的开创性论文并没有提出任何全新的算法部分,而是在许多领域进行了小的改进,从而产生了前所未有的结果,这在时间让几乎每个人都感到意外(尽管事后看来,我们认为这没什么大不了的)。在日常工作中,你可能只会在表现或理解上取得一些渐进的改进,但这些小的改进可以走很长的路,这些小的改进会推动你朝着更大的目标前进。如果您计划对增量想法进行研究,请意识到此类研究工作的有用性取决于它们的复杂性。基准测试的微小改进最好非常简单,否则几乎没有人愿意使用它,即使是你。比如能达到10%的提升,2行代码就可以搞定,能达到50%的提升,再加10行代码就可以了。现在大家不妨回去看看你的机器学习结果表。您的长期研究计划是否足以取得这些成果?如果你仍然看不到通往最终目标的道路,你应该尝试调整自己的计划。4.合理使用notebook一旦打算开发新的机器学习算法,就必须长时间专注于一个问题。强烈建议研究人员有一个专用的笔记本,可以是纸质的,也可以是电子的,用它来记录他们每天的想法和实验。如果是电子版笔记本,建议每天创建一个条目,在这个条目中写上“你在做什么”,你有什么样的想法,实验结果。每隔一两周做一些回顾。回顾包括阅读所有的日常记录,包括思路、感悟、代码进度、后续步骤等,还需要将这些日常记录浓缩成一个简单的总结。有些细节不能忽略,比如在审核过程中随时补充缺失的内容,将实验结果保存在统一的位置,以便快速查看结果。让笔记可以更好地监控时间使用情况,避免研究因时间安排不够思路和线索而半途而废。5.有所作为,不要“爱争”在机器学习研究中,难免会遇到非常具有挑战性的问题。不放弃、不放弃的精神,往往会让你投入太多的时间。但经验表明,有些问题不管你怎么努力,都注定要失败。聪明的做法是适可而止,给自己定一个“限度”,超过限度就放弃。此外,过于频繁地切换所研究的问题往往会导致失败。典型的表现是:为一个想法的实现而苦苦挣扎,脑子里突然冒出另一个有希望的人,然后又转而为这个新想法“挣扎”。如果你能很快上手机器学习的想法,那就试试吧。如果您一开始感到沮丧,请不要失望。合理的坚持,也许就能看到曙光。如何达到合理的“意愿”,经验就是借助笔记本及时回顾项目细节,你可能会发现大部分时间花在了项目“生成可交付成果”上,还有一部分时间是花了一半的时间在这个项目上。因此,及时复习,清醒地保持研究的一致性,将研究进行到底。另一个更有效的策略是花一些固定的时间预算来尝试与主线工作不同的新想法。例如,每周花一天时间做一些与你的主要项目完全不同的事情。在满足“贪欲”的同时,也有助于拓宽知识面。6.多读多写。课本是好老师。机器学习的每一个项目都会带来新的挑战。聪明人在做项目的过程中一边学习技能一边补充个人背景。从长远来看,为个人发展留出时间可以显着增加晋升机会。具体来说,机器学习研究人员应该分配一部分时间来提高机器学习素养。如果只是规划当前的项目,不愿意花精力去改进,那么在了解了日常工作所需的基础知识后,研究人员很可能会停滞不前。当然,呆在舒适区是很舒服的,“站”不动也不需要太大的力气。因此,在职业生涯早期就应该努力扩大舒适区。阅读教科书、论文,复现自己感兴趣的相关算法。制定适合自己的进阶计划,通过阅读一小部分相关论文和教材逐步提高。大多数机器学习专业的学生毕业后很少花时间阅读教科书。这是一个非常不好的习惯。与论文相比,教材的知识密集度更高,可以扩展基础知识。一本优秀的教科书往往涵盖了前几十年的思想,书中使用的符号和术语都比较正规,叙述方式也是循序渐进,由浅入深。除了教科书,相关研究人员的博士论文也是很好的学习资料。一般来说,ML研究人员的博士论文有固定的格式:1.研究背景和前沿问题;文件);三、结论与展望。从上面可以看出,第1部分和第3部分受益最大,因为它们包含对该领域过去和未来的统一看法。教科书和博士论文帮助你建立基础知识,但如果你想成为时代潮流,你必须阅读论文。一篇论文往往聚焦于一个比较新的观点,具有创新性。通过阅读摘要和观察实验比较来丰富您的创新思维。如果你是一名刚起步的研究人员,你应该花更多的时间复现论文中的想法,并将它们与你自己的实验方法进行比较。因为与被动阅读相比,你可以获得对问题更深刻的理解。而且,一旦你重现了更先进的技术,你可能就离超越他只有一步之遥了。除了阅读开创性的论文并复制它们之外,还应该关注不太受欢迎的论文。以批判的眼光阅读,找到对你有帮助的东西,并打开通向其他想法的大门。Reddit网友建议https://www.reddit.com/r/MachineLearning/comments/f4oxuj/discussion_what_are_some_habits_of_highly/对于此类问题的讨论,Reddit机器版块一直不甘落后,18小时热度就达到了265。在回复评论中,很多网友都在点赞中给出了建议!总的来说,有以下几点:1.从早期的试点实验中获得感悟,不要把时间浪费在可能的、近似的、相似的想法上。2.不要总是怀疑自己选择的损失函数。3、多和同事交流,讲不清楚的原理,直接上黑板介绍。4.大多数人喜欢谈论他们的工作。5.为感兴趣的项目创建代码项目文件夹,并按功能对它们进行排序。6.学习建立数据集、清理、分类和收集。7.保持数据井井有条。8、明白“设计汽车发动机的人往往不是赛车手”,完美才是完美的大敌。9、处理疑难问题时,可一分为二。10.知道什么时候偷工减料,什么时候坚持到底。11.与名人合作,让名人更出名,然后你也出名。12.运气很重要!