每个人都有学习目标,可能单纯的是为了自己近期目标–毕业论文,又或者是小论文(SCI,EI,当然大佬想中trans以及顶会CVPR,AAAI的就不要嘲讽小的了,毕竟没有平台和资源真不好中)。
可能每个人有不同的学习方法和理解方式,也可能我的学习方法不好,你有更好的,但这里只是介绍我的个人经验,不喜勿喷。
万丈高楼平地起,基础很重要。所以在这里我要强烈推荐几个学习资源:
吴恩达机器学习深度学习视频,很基础,一定要把梯度问题搞清楚,以及为什么会有训练集,测试集,验证集。模型的调整方法等等。可以掠过可能用不到的传统ML方法以及matlab和数学的介绍(前提是你本来就会)。
李航统计学习方法:https://pan.baidu.com/s/1zDgK28ylbeyY7WGt6yCoRg ,提取码:9i43。李航对机器学习的算法介绍的很清楚,关键是整本书分模块也还可以。网上资源较多,一定要认真手推公式,理解透彻,不要偷懒。可以关注一个人黄海广, 他有一些代码开源,可以关注一下他的github。
代码部分可以关注两个人,一个是莫烦大佬, 另一个是余霆嵩. 莫烦的教程相对来说学习的人多,所以比较容易找到答案,余霆嵩写了85页pdf,篇幅很短,但是很清晰的讲解了pytorch的模型结构。还有很多教程,比如西瓜书,深度学习花书,python深度学习,深入浅出python机器学习深度学习等等。总之真正吃透一本就可以了。
他山之石,可以攻玉。论文阅读是帮助读者尽快的了解研究前沿,以及提供灵感。所谓站在巨人的肩膀上指的就是论文阅读,否则就是闭门造车了。
论文阅读是有技巧的,网上有很多人讲了很多方法,但普遍都是文绉绉的,初学者看着比较头疼。初始阅读论文也给我造成了“痛苦”,所以这里我分享一下经验。
首先,明白哪些论文要读,哪些论文不用读。如果时间比较充裕,可以选择从基础的论文开始,比如说基础的网络模型(LeNet, AlexNet, VGG, ResNet等等)。这些论文相对比较简单,而且网上可以参考的资料较多。编程能力稍强的人可以尝试复现几个。一般数据集包括Minist数据集、Cifar数据集、ImageNet的猫狗数据集等等,这些数据集比较简单,帮助你更快的理解。
积累,当熟悉了基础网络之后可以结合选题进行阅读,可能刚开始一头雾水,不了解自己的选题是什么。我刚开始也是,觉得选择传统的SVM就行了,何必选择深度学习,后来发现传统的方法在简单数据集的二分类问题上表现能力还行,一旦数据集复杂,效果直线下降。而且如果发论文的话,审稿人会很鄙视的,他们会让你证明你的方法比深度学习好(从理论和实验上证明识别率和效率会更高),我证明不出来,否则引领新的人工智能革命。而且国内的期刊对双非大学很是不友好,所以建议投外文期刊,最起码不被歧视。话有点扯远了,开始阅读一些中文的文章,比如中文核心或者是博士论文,综述性论文,可以快速的掌握已有的研究方向及成果。之后就可以阅读一些近五年的顶刊顶会的论文(和你研究方向一致或者相近的论文)。
渐入佳境,恭喜你,总算入门了。开始阅读顶刊顶会的论文吧,阅读论文是有技巧的。为什么之前没有提?哈哈,没有入门,技巧谈不上。入门后了解了previous工作,所以Introduction和related work就不用仔细看了。其实SCI论文沿袭了中国封建的八股文制度,方面审稿的同时也方便了读者阅读,不得不说八股文优点和缺点共存才是宇宙的规律。拿到论文,**第一件事看title,Abstract,**因为没有人为你甄别论文是否适合(如果有老师好心帮你甄别,别告诉我,羡慕嫉妒恨死你了)。如果适合,保留,否则删掉。推荐一款软件zotero,可以像下图所示的那样整理文献。
每篇论文可以写上自己的感悟,便于之后回顾。刚开始可能阅读论文速度比较慢,这很正常,熟能生巧嘛。熟悉之后就可以阅读的很快了,我读懂一篇同领域的论文有时候大概1小时就可以了。欲速则不达,千万不要只图快,我发现很多人阅读一篇论文,理解的很少,只有30-40%,有些甚至还不如。阅读原文献,一定要不要只阅读翻译后的,比如CSDN博客,因为写博客的都加入了自己的思想,不一定和作者一致。同时阅读原文也可以增加词汇量和句式,便于之后的文章撰写。刚开始可以借助软件阅读,比如说知云翻译等。带着问题阅读文献,每篇文章不是凭空造出来的,必然有他的contribution,这是文章的核心。仔细思考文章的目的,这样才能反推作者创新过程。每篇文章都在讲一个故事,读懂了故事的人,才算的上真正读懂了这篇文章(80%以上理解)。反思论文,是否可以借鉴?是否存在缺陷?哈哈,如果有了这个意识,恭喜你,进入了下一个阶段。。。
科学到了最后阶段,便遇上了想象。——雨果
之前的所有工作都是为了这一步服务,登堂入室就是从这里开始。横看成岭侧成峰,每个人都有不同的思维方式,创新方向以及对知识的掌控有所不同,创造出的结果就会千变万化。这是好事,要是都一样不就没有进步了吗?但是通过我的经验总结了几个“凡人”的创新方法,勉勉强强凑合,比不上那些“天才”,毕竟1%的灵感太难找到。
旧瓶装新酒,在阅读了大量本领域论文后,要关注一下基础的模型,比如Non-Local,SE,SK,AC等等Attention方向的论文,Res-Block之类的增量模块,还有别的如强化学习之类的论文,还有一些细碎的知识点,比如说Leak-RELU等等。这些都是将来的灵感。有时候比较火的研究方向必然是淘汰了传统的方法,但是金无足赤,code总有缺点,也有闪光点,新事物的产生不可能脱离旧的事物。所以找到新事物的缺点,用老的方法补救也不失为一种创新。
框架创新,框架的创新需要站在全局的思路考虑,不再局限于模型中的一个小的block,站在整个模型全局考虑,把现有最先进的方法与实际研究对象结合,这类创新是优秀论文的普遍做法。相对难度较大。
理论创新,又称为严谨创新。就是通过一步步数学原理,推导,证明,你提出的方法的优点。最后通过实验加以印证。这种方法最考验创新者的数学能力,所以数学不好的同学不推荐。
或许有人提出,可以把现有方法排列组合,或者是拿来主义。说实在的,生搬硬套,不结合实际场景的很难效果好,也很容易被审稿人拒稿。
阅读了大量文献之后,创新可以说是水到渠成。不要刻意思考,该是你的跑不了,佛系一点会更好。
熟读唐诗三百首,不会作诗也会吟。英文论文撰写是一个很费劲的过程,为什么说过程?因为它不是一蹴而就的。第一篇论文的书写会暴露很多问题,比如说不知道写什么,论文框架混乱。又或者是Chinglish,拼写错误,句式错误,时态错误等等。所以照葫芦画瓢对新手是很重要的。不要相信网上说的,新手3天/一个星期写完一篇SCI,那些我感觉是骗人的,新手不可能做到。当然天才就不用吐槽我了,我不配你们吐槽。
平时多练习写作,可以写一些博客,CSDN就提供了一个平台,Markdown本身具有很好的排版能力,数学公式更是需要学习LaTeX来进行编辑。为什么说LaTeX呢?LaTex是一个“脚本语言”,用“代码”去写论文对我这样的审美障碍和排版障碍人士来说简直就是福音。所以Texlive和Texstudio是我写论文的不二之选,因为期刊都会提供模板,这样我就可以解放鼠标全心撸代码,呸,撸论文就可以了。
CSDN上是鱼龙混杂,没准你能结识你的伯乐,也可能结实你的“老师”(指出你的理解错误,帮助你提高)。当然也有键盘侠喷你,无所谓,就当他们为了提高你的承受能力。
平时阅读论文的时候,善于总结句型句式,观察别人怎么写,好的拿来用,不要怕查重,因为只要内容不同,国外查重相比于知网还是比较友好的。
论文写作是帮助整理作者实验思路的过程,打动审稿人,必然会有所夸张,但是不要过于夸大,造一些名词,否则审稿人会给你较真的。多用简单句式短语,句子之间有过渡,这是基本也是关键。
更多的之后还会总结,这里就先说到这。
三人行,则必有我师。参加会议的人很多,老师更多。不要碍于面子,大胆的去问,出错了也不怕,毕竟没人会记住你,他们连问题都问不出来,还好意思笑话你?多参加学生的交流会,少参加或者不参加那些“盛典”。推荐MLA会议,学生分享自己发的论文(都是顶刊顶会的论文),这里你可以畅所欲言,对着poster,也不用害羞。多提问多总结,大有好处。
论语云:“取乎其上,得乎其中;取乎其中,得乎其下;取乎其下,则无所得矣”。每年组里面都要立Flag,既是促进,也是老师们的期冀。尽量立的Flag高一点,即使达不到也没有什么,老师也不能吃了我。相反可以给自己带来压力,就有了动力。从我个人考虑,Flag我不是给老师立的,毕竟没有一次真正完成 。30岁之前可以狂一些,毕竟还未而立,而立之后需要稳中。我认为做的最好的人,就是在哪个位置就要像这个位置的人就够了。
这几天回忆过往,偶有心得,聊以记录。既是自我反省,也是对青春的记录。(单身久了,瞎感慨)
还有找的别人的模板自己搭的网站:http://zztchios.github.io。挺好玩的