作者narwhalgary (独角鲸葛瑞)
看板Soft_Job
标题Re: [请益] 非本科(无程式基础),想走机械学习
时间Fri May 13 15:01:46 2016
我想就原po的问题做一些分享,不能说绝对正确,
至少是我转进资工三年来的心得,
原po的问题是,一个没有程式和资工基础的人,是否有办法转进机器学习的领域?
这个问题其实很大很难回答,首先,机器学习这个词现在是很广泛的,
凡是有用到一些类似的演算法,不管再电脑视觉、人工智慧、自然语言处理等等,
其实都可以归到机器学习的范畴,问题是,你到底对哪个有兴趣?
接下来的讨论就学术的领域回答,因为我不知道工业领域的可能性:
(1)我可能对很多都有兴趣,反正以後再转就好啦
Ans:错。
一旦你进了实验室,你大半的实验方向其实就决定了,举例来说,
我进了电脑视觉的实验室,你就不能去做自然语言的东西啦,除非你转实验室。
所以你必须先清楚自己到底对哪种有兴趣才是最重要的。
(2)可是我又还没有进实验室,我哪知道?
Ans:错。
你当然可以进实验室再找方向,但是这真的很冒险,尤其是你事先离职进入一个
未知的领域,我建议你先看一些top conference,看一些paper让你有些感觉,
你真的对某一方面有很浓厚的兴趣,你再去深入考虑要不要进去这领域。
举例:电脑视觉有CVPR,ECCV,ICCV,人工智慧有AAAI等等(我只看电脑视觉的)。
(3)好吧,那假设我想走电脑视觉这样算决定题目了吗?
Ans:还是不行。
光是电脑视觉里面还有好几个子项目,classification,recoginition,image matching
很多东西可以跟类似的演算法结合,但是差异真的很大,你必须了解每个子项目
的优势和缺点,你才有可能做的好,不然你会痛苦很久,通常了解一个子项目,
我会建议你花一年的时间实作一些open source的程式,假设今年是2016,
你最好把2015的每种最好的方法至少有办法做出两三种来,不然你无法比较。
(4)可是我只是想踏入这个领域,有必要要求这麽高吗?
Ans:有。
一旦你踏入了某某资工系,或某某学术机构,你想做类似ML的研究,除非你是一开始
就想走创业这条路,不然你大概就是学术研究优先,如果你要学术研究,
你的目标就是打败现今最强的方法,才有可能发paper(有用的paper),
如果你只是想要随便发一篇硕士论文,随便毕业一下去上班,那我不建议你这样走。
但是当然,没有开始了解就没有结果,没有接触也没有感触,所以这也只是建议而已。
(5)好吧,所以你还是没回答我转进去是不是可行的?
Ans:可以的。
因为我是物理系的,博士班才转进去,我同实验室的各种电机系、半导体和写网页的,
其实和ML没半点关系,大家即使进去了,其实也会卡住很久,卡住几个月或几年这
是看你的努力程度和资质,并不是说有程式背景就会一帆风顺,重要的还是你的动机,
足不足够让你撑到你发达的那天(发paper的那天)。
(6)那我需要先学好什麽程式吗?
Ans:yes and no.
你不应该预设你自己该学什麽程式,因为你会需要学很多种(掩面),特别是不同领域
习惯使用的程式也差很多,我举个例子来说,你应该有听过深度学习(deep learning),
你知道光是深度学习的套件大概就有六七种之多,你知道光是电脑视觉之中,每种子项目
所使用的套件就有严重的不同,简单来说,一旦以前的人用了某种套件,你最好能够
跟他比较,那你就最好学会这种套件,而学会一种,都要花上很多很多的时间,
所以回过头来,我还是先建议你先决定你到底真正对哪种领域的哪个子项目有兴趣,
才是最重要的。
可能有些人会跟你说,『只要你精通某种程式,你就可以写出天下所有演算法。』
理想上来说是这样没错,但是实际上我认为是浪费时间,因为学术研究上,
你会发现很多人的演算法,你是极为难以复制的,简单来说,你最好使用他提供的
程式,不然你重新做出来的东西效能可能没有人家report的十分之一,而这不是因为他的
方法错了,是因为你程式做错了(当然也有可能是因为他paper说谎,不过通常是
写错了),如果你是对ML本身有兴趣而不是程式优化,你不该太执着於自己把某种方法
做出来,因为通常是做不到的(而通常有人会误解这是自己程式基础不够)。
(7)那我到底应该先会什麽?
Ans:Google。
这点我真的完全没有在开玩笑,基本上你只要有一台电脑,可以google,可以拿到那些
paper,你就可以开始做研究了。因为我刚刚提到的每一点,都可以从搜寻开始,
你可以搜寻那些大领域、子项目、paper、最新的code,你通通拿的到,只是可能你不
知道其实现在的网路如此强大,还有你可能没有一些一起研究的同学之类的。你可能
不知道一些专有名词如何去搜寻,可能你也不知道要先去找引用citation最多的paper,
有些东西的确需要老师,有些也许需要学校,但是你最需要的其实是google,
举例来说,你想知道什麽是PCA,你可以去翻课本,去上数学课,你也可以去google找
到一篇中国人写的blog然後用一个小时弄懂顺便把他的code拿来实作一下,(为什麽
是中国人是因为他们写blog分享研究的风气很盛行,你甚至不太需要懂英文)。
(8)我什麽时候才知道我具备这些能力了?
Ans:Related work。
你看paper的related work的时候,你已经知道作者会讲某些方法,而这些方法
你都大概知道做什麽了,而且你知道彼此的优劣,你就具备了研究的能力了。
(9)那我该怎麽开始?
Ans:开始看paper。
只有开始看,你才有机会去碰到我刚刚说的每一项问题,你才知道原来自己是做不出
来某些paper上面根本没有提过,但是他们放出来的code里面却有的细节,
你才知道某些paper是bull shit,某些是瑰宝,你的心里应该要记得某些打动你
心的paper,如果你对某些work有深深的敬畏,你就知道你其实适合做研究了,
至於是不是ML,是哪种ML,我觉得还是先看paper之後你才知道。
(10)那考试呢?
Ans:蒐集资料。
基本上台大博士班的考试,期中或是资格考,还是一个蒐集资料的过程,简单来说
就是考古题,我和我同学都认为蒐集完这个资料能让我考试准备的过程越短越好,
为什麽?因为我们想要做研究,考试是浪费时间但是又不得不考。你可能会问,
申请硕士或博士的考试呢?我认为最好的方法就是不考试,所以你应该先去找个
老师,用研究助理的方法直接进去研究(我们很多同学都无背景),然後申请学校
的时候最好有老师的推荐信,这样口试委员基本上就让你过了(真的),如果
你可能没办法这样,那你可能会需要笔试,就硬着头皮去做吧,但是你要知道,
真正重要的开始是你开始看paper研究,开始真正的去想、思考、实作,
而不是说你辞职想考资工系叫做开始。
祝
万事顺利
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.16.132
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1463122908.A.F91.html
1F:推 alongalone: 首推..!? 05/13 15:07
※ 编辑: narwhalgary (140.112.16.132), 05/13/2016 15:12:18
※ 编辑: narwhalgary (140.112.16.132), 05/13/2016 15:13:07
2F:推 storm654321: 推分享 05/13 16:41
3F:推 LinkCoffin: 推 05/13 17:12
4F:推 neo5277: 看天分 05/13 17:12
5F:推 stitchris: 推 05/13 17:22
6F:推 xaos: 好文 推 05/13 17:26
7F:→ xaos: 想当初 大一进资工系 05/13 17:26
8F:→ xaos: 都不知道领域会分这麽细 05/13 17:26
9F:→ xaos: 到大四了 只知道自己蛮喜欢ai 05/13 17:26
10F:→ xaos: 少了很多时间去做相关的专题 05/13 17:26
11F:→ narwhalgary: 有人问可以省很多时间啊(茶 05/13 17:33
12F:推 MIKEmike07: XXX1好文 m 05/13 18:30
13F:推 A4P8T6X9: 推好文 05/13 19:28
14F:推 htc812: 推,我数学转资工的心路历程和你满像 05/13 19:47
15F:推 hsu761001: 推 05/13 19:55
16F:→ narwhalgary: 希望抛砖引玉,大家能分享各自不同的经验 05/13 20:08
17F:推 hei566: 好文 不过当初真的很难想那麽细 05/13 21:48
18F:推 james847286: 推 这篇还蛮中肯的 05/13 22:05
19F:推 cocoyan: 好文 05/13 23:06
20F:推 joeywayi: 推推我也是物理系 05/14 03:13
21F:推 nitero: 好文 05/14 09:06
22F:推 yibaby77: 推 05/14 12:21
23F:→ baseguard: computer vision不一定全跟ML有关 05/14 18:08
24F:推 ptt0211: 好文推 05/15 00:03
25F:→ jskblack: Image processing->computer vision-> ML 05/16 23:17
26F:推 dophin332: 推 05/19 16:40