分享
机器学习需要读博吗?
现在研一在读,电子科大信号处理方向。但是从本科大四起对机器学习有关注,感兴趣。现在有修机器学习的课程,关于入门的话题已在知乎上看过答案。想问的是,第一,毕竟不是本专业,自己学习的话可能比不上科班出来(?),在考虑是否有必要读博。第二个就是在想自己是否适合读博,当然也搜过相关问题,但还是想问,特别是在看过一个答案说 机器学习真心是给聪明人玩的。这句有点让我引发思考,是否脑子够用?比如现在用书PRML,看英文版稍微有点慢,但多看下还是可以理解。但觉得自己对机器学习还是很感兴趣的,觉得有意思(可能没开始看论文,不知水深浅吧)。第三,如果读博,毕竟不是本专业,怎么参与到论文发表,科研之中,想提高自己申请博士的竞争力。暂时就这些,希望各位前辈指条路让我思考一下。谢谢!
回复 ( 10 )
我是你的学长,电子科大信号处理方向,现在博二,研究计算机视觉与深度学习。
我们的专业跟机器学习不算完全契合,但也是很接近的。但是据我观察,我们专业很多人缺乏机器学习的两大必备技能:数学和编程。
数学方面,我们本科学到的除了数学基础课之外,专业方面有用的就只有信号与处理和模式识别,其中模式识别还是选修课。专业课中用到得更多的是微分积分,对概率、最优化、算法等科目普遍要弱一些,而这些是机器学习中最重要的数学基础。
编程能力上就更差了,我们学的脚本语言是matlab,搞机器学习的人用matlab的已经很少了(我本人也还在使用matlab,感觉有点积重难返)。C++也没有学,只有C语言课程。很多人甚至从来没有接触过linux。不知道题主是不是这样的,但这些都是我们要补上来的。
现在还是研一上吧,研一要做的事就是把上边我说的基础补好,研一有几门数学课很不错,矩阵、最优化、数值分析、图论、模式识别(自动化程洪教授的)都是必选的。至于我们专业那一堆信号相关的课程,一个也不要选。
现在还需要把linux和python装起来,开始学着在linux下编程。不过这方面我也做得不好,我的电脑中至今没有安装linux,你可以看看知乎上其他人的建议。
研一下的时候课程压力就小很多了,这时可以开始看看论文,挑选自己感兴趣的方向尝试着复现一下,看看能否提出改进策略。
至于读博,你先把上边几步做好,如果能在研一下至研二上做出成绩能够发表论文,那可以继续深造。如果做不到,建议放弃,现在机器学习岗位也很多,去工作的话一样是要看论文研究算法的。
我走过很多弯路,做事往往事倍功半。以上是我的经验之谈,视野可能不是很开阔,题主有选择性地看看就好。
给一个答案,读不读博并不重要,得坚持。我本科是计算机的,但是没有研究过机器学习和数据挖掘。然后直博,研究机器学习和数据挖掘。
最近得出的一个结论是,多看多练习。首先,得去看书,个人推荐凸优化,prml,统计学习引导,数据挖掘,模式分类,信息论,数值分析,矩阵计算,线性代数导论。这几本书我都有,但是没有一本是完全看完的,有几本的看的多一点。数学这种东西,边看边忘,温故知新。
然后个人建议最好用linux/python/c++(Java).之所以建议python大家都懂,python社区很活跃,很多python的库被大神们优化的很好,甚至numpy有专门的英特尔优化版。至于,c++/java,我认为码农只掌握一门语言是不够的。linux看喜好吧,linux下面用pip install之类的命令比较方便。
其次关于算法实现。实现自己的算法,一定要用现成的算法库,这样做的原因是将关注点放到具体的(数据挖掘)问题上来。笔者开始很天真,自己的算法中所有的子算法都是自己用c++实现,运行效果和运行时间不是一般的差。后来改过几次,稍微有提升。但是,这真的不如直接调用现成的算法库来的好。
最后,(1)要去挖掘和分析真实的数据。一个最快的方法就是参加各种比赛.(2)实现一些基本简单的数据挖掘算法(例如kmeans)(3)还可以做一些简单的数据挖掘应用,去web爬点数据做个推荐和预测什么的。
说了这么多,这些是我一直在努力做的,并不能说明我做的很好,相反的很多我都是我所做的不足的。最后的最后,笔者刚研究生二年级,也不知道我的认知对不对。A long way to go,要更加的努力。
我本科。
不过有的课确实是博士才开的,比如凸优化,我同学就是博士才上这门课。
然而学什么都看自己,又没人拦你,不是非要有那个文凭学位才能做那些事。
我带过一个本科的实习生,机器学习搞得溜溜的,做事机智,基础又扎实。当时极想留住他,可惜保送去北大了
想做深当然要读博啊,最好是美帝的博,最好能跟着大师。你去跟世界上研究机器学习最狠最前沿的一群人一起,那是不是事半功倍?
简而言之,这取决于你的职业规划。。。如果你想成为ml领域的researcher,那么phd is the minimum requirement;如果你只是想用ml的技术解决一些具体问题,就没有必要了。
读博比较累,又要写代码调BUG(我到现在一共已经写了几十万行代码了,我上次统计了一下,还是局部的统计,一共30多万行。正常我不休息的日子如果我写代码每天写300行代码是起码的),又要看理论的东西(数学最起码的东西还是要回的),还要写论文做实验,还要帮老板做项目。像我除了偶尔水水知乎以外基本上就没有太多的空闲时间了。反正比作其他的要累(至少我是这么觉得的)。
至于出来好不好找工作,这个要看个人的。不能一棒子打死。关键看你代码写得怎么样,论文发的怎么样,你老板是谁,对吧。
然后用什么语言,我推荐C/C++或者python。matlab当然不是不可以,但是如果你不打算就把自己丢在高校或者所谓的‘研究机构”的话写我说的这些语言总归是没错的。
学习机器学习确实需要门槛,但也没有到只有读博才能在这方面取得成果的地步。
我们几个同事没有一个是博士,都是在工作中研究机器学习的问题。目前取得了一些小成果,和大家分享一下。
我们的机器学习HAI主要是用来预测足球比赛结果,经过不断改进,截至目前(2015-10-17)已经做到了连续命中11场赛果,命中率不断提高,机器学习的效果正在逐渐展现出来。
题主多次提到不是本专业不是本专业,我就有必要说说了。专业这个东西是别人给你画的圈子,只要自己不备限制住就没有问题。就说我吧,本科是水产养殖专业,研究生是天文图像处理,现在工作了做机器学习,不敢说多么厉害,在同事之间也还凑合。
我在一家日资研发中心。
所以,不要把专业说的那么重要……你自己的想法才重要~
打算把bengio的deep learning 翻译一遍。我今年大三
主页:
取决于你的目标,如果是想做份和机器学习有关的工作,那就不需要。如果你想从事机器学习的研究,那就需要。
读博需要好奇心和毅力。如果你还在怀疑是不是要读博,那就还是不要读了。读个硕士赚钱吧。
ps。有人说读了博士去公司会很难。其实这个和你的学校、导师以及读博士期间还写不写代码有关。国内很多烂学校烂导师的不读也罢,如果可以去好学校、好导师那里,毕业后不论去公司还是去学校都是很抢手的。