研一学机器学习和深度学习,为什么感觉越学越不会,怎么解决呢?
链接:https://www.zhihu.com/question/371622741 转自:深度学习与计算机视觉 声明:仅做学术分享,侵删
https://www.zhihu.com/question/371622741/answer/1666044043
冲。可以撸吴恩达了,撸完一知半解。冲。刷点李宏毅吧,就记住了宝可梦。冲,刷吴恩达最新视频,还是顶不住。
好吧还是踏踏实实看书吧。概率论,线代书,看了一遍,有信心了。刷PRML,第一章高维高斯我就懵逼了。换统计学习方法,前几章还行,甚至能做做作业。逻辑回归开始噩梦就来了,多分类直接杀我。SVM看了半天,到核技巧又杀我。EM彻底凉了,监督学习就看到这。什么马尔科夫蒙特卡洛,这都是什么神仙。开始看无监督,挣扎了好久奇异值和主成分,也就到此为止了。
熵不知道,要补信息论,看了点皮毛先顶着。蒙特卡洛,马尔科夫不知道,好像得补随机过程,开头就上测度论,测度是个什么鬼,我今天想了半天σ空间,还是一知半解,有点顶不动。统计学还得补,再高级一点的概率论也得补。听说凸优化也得补。也不知道得猴年马月。
Python我也不会啊,刷了20节小甲鱼,先凑乎顶着。直接上kaggle,刷完了Python和ml入门的题,但感觉还是,危。再等等吧。
今天开始刷国科大的机器学习,条件期望杀我,看来随机过程迈不过去,得搞一波。听说随机过程有测度论或者实变函数的基础会比较好,我又查了查听说实变函数有数学分析的基础会比较好,啥也不说了,我今天正式开始学数学分析了。肝一下AISL,再踏实补一下概率论和统计学。
萌萌式噘嘴,今天是2021年1月7号,是我搞机器学习的大概第三个月,留个坑,看看以后会怎么样。
mmp我一个本科土木狗,硕士建筑技术,梦想工地盖高楼,咋就成了现在这个样子。真是万物ml嘛??
不太甘心当调参侠,数学基础不牢固真的地动山摇,效率低就低点吧。好歹二十五年头一次主动觉得学习很酷。补个五年不信顶不动。
https://www.zhihu.com/question/371622741/answer/1269330116
https://www.zhihu.com/question/371622741/answer/1043269559
本人就读于一所中上的211学校,还有1个月就毕业了。研一时候我和楼主一样,一直在学习,自己也会找一些开源的项目,也参加过一些比赛,个别比赛成绩也说得过去。但是学校位置比较偏,导师资源不好,实验室不让出去实习等因素,我处于单打独斗阶段。找工作之前我已经能熟练推出各种主流机器学习公式,用Numpy写出大部分模型,在力扣等网站上刷了500+的题目。
刚入坑的时候,网上的各种行业前景的评价蒙蔽了我的双眼,我满怀自信的参加了2019年的秋招,结果以失败告终,ML、DL基础知识、手撕代码都没什么问题。参加招聘的所有公司中,只有腾讯告诉了我的不足之处,没有实习、没有论文。(很多大佬这时会说了,没有论文还想找算法工程师的职位,我只能告诉你们,实验室只有自己研究这个方向时,需要踩的坑多到无法想象)。华为的招聘我走的最远,但是终面被刷了,因为非科班,没办法这是事实。最后的最后,我去一家通信公司做软开去了。这也算比较好的结果吧。
简单总结一些招聘时候我都会什么了吧,ML基本模型的公式推导+numpy实现,DL的基础知识,CV领域自己手写过SSD、Faster R-CNN、YOLO、retinanet这几种基本目标检测算法的全部代码。改进了Faster R-CNN,但是没来得及出文章。参加了几次比赛,成绩一般,最好成绩是1000个队伍比赛的前20名。数据结构方面,力扣里的中等题基本思路都有,大部分能写出来,毕竟刷了500多个算法题。
我只想说如果是非985硕士,没法发论文,没法去实习,还是老老实实做些软开的项目吧,这些可能更有用。当然,如果你是大佬,就当我在放屁好了。
学这方面的知识还是别看书了,每天认认真真学会一种模型,从公式到代码,每个细节理清,你就可以说你会这个模型了。书上理论讲的很好,但是我认为找一些项目更能帮助你理解这些。如果是数学知识不会的话,就需要好好补习一下了,其实里面的数学知识不算难。
https://www.zhihu.com/question/371622741/answer/1021067702
研一下开始准备学习机器学习,先是看了西瓜书,但是感觉西瓜书可能数学性不太强,翻了一遍大概对机器学习进行入门。然后看了李航《统计学习方法》,这本书非常非常推荐。对统计学习方法进行比较深入的讲解,跟着这本书把lr、svm、gbdt等很多方法推了一边,中间用到的概率论,线性代数等数学知识也去重新看了一下。多看博客,很多大佬们写的博客非常有用。
上面这些都是理论,在你看完书,会推公式并且理解算法之后,可以自己打一些比赛,比如kaggle或者天池,从入门级打起,泰坦尼克?刚开始最好别用sklearn这种封装好的库,尽量自己实现一下lr、svm这些基本的模型。(当然得有个比较好的python基础)。打比赛名词也不要求高,因为比赛老油子们都有固定的trick,对新手而言比赛就是用来入门的,进入机器学习这个领域。
下面推荐去实习,因为我学校地理位置优势+导师人比较好,所以比较早的去某厂实习。个人感觉实习对能力增长更快,无所谓是工程or理论。第一份实习还是以打杂为主,帮忙写写hadoop脚本,写写数据分析脚本等,偶尔跑一点xgboost,玄学调参。第二份实习开始用tf写深度学习模型,也是个比较基础的活。第三份实习开始接触创新型的东西,在一些算法基础上做了点创新。要是没法实习,就得打一点名词比较好的比赛,或者发paper。(实习来看面试官们对比赛不太感冒,比较感兴趣paper)
很多师弟问我要不要入坑机器学习,我都持劝退态度。第一算法方向工资已经和开发差不多了,没有啥优势。第二算法人实在是太多了,而且个人理解门槛比开发低一点。第三算法方向积累可能没有开发高,实习期间很多正式员工干几年都从事开发去了,而且算法还要写论文这个很头疼。
要是入坑了机器学习,建议首先还是定一个方向,比如cv、nlp、推荐等,当然大佬们全部都会的就忽略把。。。每个领域都有很多顶会,读paper并且复现是很重要的能力,然后每个方向深究下去都有很多东西值得学习。
个人认为对算法工程师的要求可能大部分业务部门停留在会用,用好模型这个阶段。更关心面试者能不能理解业务背景,选一个好的简单的模型。而魔改模型然后发paper可能是达摩院这种大佬们做的事把。
https://www.zhihu.com/question/371622741/answer/1111017469
https://www.zhihu.com/question/371622741/answer/1524876086
一开始跟了cs231n课程,也看了李航的书、西瓜书什么的,我记得我一开始从头啃西瓜书的时候,我师兄都很惊讶,因为这本书他们从来没有从头到尾看过一遍。所以这些书看完我也没留下什么印象,cs231n和课程的笔记还是挺有用的,算是打基础了,讲的真的很好。还看了几篇综述类的论文,然后在老师的帮助下选了方向,去知乎或者博客看一些中文的介绍,包括进展之类的,大概花了两三个月。
然后开始看论文,一开始一周一篇,后来慢慢一周两篇,一天一篇,一天好几篇,在后面对于自己领域的论文看看摘要、introduction和实验部分就差不多理解了,好一点的论文再看看方法部分,很快就能过一篇,我们课题组每周都有组会,轮着讲论文,所以中间接触到很多方向的论文,也有几篇论文是自己挖透了做ppt讲给大家听,后面还需要给大家答疑的,所以对于自己讲过的论文都是看了好多遍,这其中才开始真正用到工具书,在遇到一些不懂的东西的时候,带着问题去查阅工具书才是最有效的。大概花了不到半年,这样研一上学期就结束了。因为有课,所以进度比较缓慢。
研一下学期开始一边看论文,一边复现代码,一开始配环境真的是要炸了,而且我第一个配的环境超级复杂,可能当时设备的系统版本不对,大概装了快一个月都没有装好,反反复复各种问题,每天下了课就去实验室配环境,有时候一个问题要解决一个周,好不容易通了又跳出来一个问题,于是很悲催的,到最后还是失败了,所以换了一篇代码,大概花了两天,配好了。。。也不知道我一开始为什么这么执着。。。配完环境以后开始看代码,第一个复现的代码是caffe的,很抽象,看了大概一个月,大概搞清了来龙去脉,包括很多底层文件也看了一些,当然组会一直在继续,这中间突然我冒出来一个小想法,于是开始想改代码,又找了一个pytorch的代码配环境然后改,第一个小想法很水很水,大概一周左右就改好了,而且效果特别好,只是创新性很低,一开始实验室的老师是不太支持我的这个想法的,他觉得可行但是不适合作为创新点,但是因为想让我先写篇论文满足毕业条件,可以先写写投个简单的。
这个时候大概研一下学期还没到暑假吧,暑假之前我把论文初稿写出来了,我的导师当时在国外,他不太懂我的这个方向,看见效果觉得不错,就让我好好写打算投个好点的,我很慌啊 ,我也深知自己的创新点很水,虽然结果很好。于是又想了一些东西加进去,虽然效果没提高很多,百分之零点几的贡献,但是总算凑出来一篇论文了,大概暑假之前写出来初稿了。研一结束。
研一的暑假,课题组的老师带着我和另一个同门做了个比赛,不得不说,这个比赛是我学业的一个转折点,因为刚好是我研究的方向,所以找了个tensorflow的代码当作baseline来做比赛,至此为止,已经对caffe、pytorch、tensorflow三个框架都熟悉了。大概花了一个月,每天在学校做比赛,因为换了比赛数据集,所以对整个代码重新读了一遍,做了很多修改,最后总算跑通了,跟老师汇报之后又改进了一些,顺利进入决赛,八月份去广州参加了决赛,最终得了个二等奖,对我来说已经是很好的结果了,老师也很开心,决赛期间一有时间就带我们吃大餐,潮汕火锅、早茶什么的,还带我们夜游珠江,给我们拍照。前两天和老师吃饭还聊起,这个比赛,我们学校每年都参加,迄今为止,只有我们得了奖。因为是教育部的,国家级的奖,所以学校还是挺认可的,我记得还发了奖金,虽然难度比不上阿里天池之类的比赛,但是学校认啊。
比赛做完已经八月二十几了,这才开始我的暑假,回家舒舒服服的待了一周。研一结束
研二开始很长一段时间沉浸在比赛得奖的喜悦之中,除了日常看论文,就只是找老师帮我改论文了,我们老师改论文相当细致,一个introduction改了有一个周,和我一起一句一句的捋,每句话每个词都要琢磨半天,几乎重写了一遍。当然改的这么慢的原因是我的创新点太水了,为了写的好一点,老师真的是绞尽了脑汁,全程皱着眉头冥思苦想,也是难为老师了。我真的觉得我课题组的老师相当奈斯,超有耐心,而且很专业。改论文加上补实验,再改论文,再再改论文,第一篇论文磨了三四遍的样子,终于在研二上学期结束前投出去了。也就是说我研二上学期并没有做很多事情,寒假之前做了个比赛,但是也没有太投入,不了了之了。
研二下学期,调整心态重新开始搞论文,当时有了新的想法,花了三个多月去做,因为设备等的原因,效果并不好,当时只有一个1070,所以整个想法也就泡汤了。然后祸不单行的是这个时候第一篇论文被打回了,直接reject,投的是sci三区,虽然我觉得确实有些配不上,但是导师安慰我道:“没事,我们改改投个更好的。”。我。。。我内心都崩了,实验室的老师也劝我要不投个简单的先把毕业的问题解决了,然后再安心做科研。但是导师坚持要投一个还不错的会议,于是我们把拒稿时候的建议整理了一下,有几个建议还是挺靠谱的,认真改了改之后转投了个会议。
另一篇论文在做了这么久的无用功后,开始着急。和老师讨论之后换了一种方案,大概在暑假之前完成了改进以及部分实验。改通实验不久得到了第一篇论文中了的好消息,最终发表了ccf b类会议,所以发论文这种事情就很悬,说不定最后就中了一个更好的,还真应了我导师的话。
随后花了整个暑假跑实验加改论文,基本上把第二篇论文弄出来了。研二至此结束,真是大起大落的。
研三开学的时候,我的导师就从国外回来了,因为我是首席大弟子,所以老师对我的论文特别上心,实验室的老师带我改完之后又找了一个博士大牛带我一起改,随后又找了我导师国外的导师给改了一遍,才投出去,投出去的时候已经十二月了,也就是我研三花了半年的时间补实验改论文,最后投了个sci一区,中间也开始找工作。后面就不赘述了,基本上就是毕业论文的事情,做了几个小比赛,整个研究生的科研巅峰都在研一研二上,加上我平时压力小,节奏慢,成果也不多,原本安排的第三篇论文也被我简单指导了一下打算交给师弟师妹了。
趁此机会梳理了一下自己的研究生三年,感觉导师真的是相当好了,平时有条理的安排时间和任务,从来没有发过脾气,实验室两个老师加上我的导师一共三个老师,他们平时关系也很好,从来没有一个老师压迫过学生,但是任务也都会按照计划来督促,也很支持学生的选择,想好好发论文就会认真指导,想找工作也会支持快点满足毕业条件然后放出去实习。还有我一直以为我的导师平时没有什么事情呢,后来才知道他很忙啊,天天晚上加班的,写项目书写方案什么的,从来没有让我帮他干过活,就让我专心搞学术,我甚至研一的时候碰见一个同学去帮我导师报账,也就是说他有啥活都找别人的学生去跑腿。
研究生期间有个好导师太重要了,我室友的导师就是逼着他们发论文,最后还不许他们找工作不许出去实习。
言归正传,学好这个专业,读论文看书是基础,不能当作主要的任务,重点是跑代码,做比赛是一个快速提升的好办法,另外可以看看别的相关方向的最新进展,因为我们组会的时候会听很多其他方向的论文进展,所以对自己方向的改进挺有利的,虽然是最好的方式是先发现问题再找对策,因此产生创新点,但是一开始的时候没有想法的话就可以尝试先改进再想原理,虽然不是一个值得提倡的方式,但是因为条件限制,也只能先这样了,后来我看到cvpr发了一篇和我中间放弃的想法差不多的一篇论文,但是人家的实验动不动64张卡,一百多张卡的,我们实验室现在虽然条件已经很好了,但也只是十几块p100而已。还有就是想法不论大小,大胆去改,一开始看代码总是不敢改,尤其是很大的改进,就怕自己改坏了,后来备份之后直接大胆去改了,改起来其实很顺利。
往期精彩:
Swin-UNet:基于纯 Transformer 结构的语义分割网络
Swin Transformer:基于Shifted Windows的层次化视觉Transformer设计
TransUNet:基于 Transformer 和 CNN 的混合编码网络
ViT:视觉Transformer backbone网络ViT论文与代码详解
求个在看