给生活来一次傅立叶转换

来源:互联网 发布:保定网络托管 编辑:程序博客网 时间:2024/05/21 17:51

今年暑假快结束的时候,通过和计算机系Advisor的三次谈话,我拿到了从语言学系转到了计算机系的许可。这篇文章就是我大致的转系经历,还有经过这一个学期以后的一些想法。也许有人也在纠结着同样的事情,或许这里杂乱的文字堆砌可以帮助一二。

 

背景:

高中选的文科,因为怕数学;大学选的是对外汉语,还是因为怕数学;因此,大学的四年没有任何一门正经的数学课,包括最最基本的大学数学我们系都很牛(bu)X(xing)地免上。转系前最近一次接触数学是因为考GRE,164(上学以来最好的数学成绩,真丢人)。接着申请到了美国一所大学语言学系的研究生,刚开始自己选的是普通语言学,因为系里同时提供计算语言学的证书,我决定修计算语言学的课程。阴差阳错,拿到了证书同时发现自己喜欢上了这个和计算机交叉的学科。因为语言学属于文科,毕业后OPT只有12个月(计算机系的学生则会有更长的OPT时间),外加语言学系也无法提供更多的计算语言学的课程,权衡之下我考虑转到计算机系。当然,最后转成了。

 

诱因:

在背景介绍里有我转专业的一部分原因。很多人听说我从语言学转到计算机都觉得很诧异,于我自己倒还好,觉得没什么值得惊讶的。这要归功于我的GRE阅读老师陈虎平,某种程度上他可以算得上是我转专业背后的推手。首先是知识结构的改变:上大学的前两年基本上是泡在图书馆看小说度过的,很少接触非虚构类的书籍。听完陈虎平老师的GRE阅读课程后,我开始看一些认知科学、理财金融、以及城市化等方面的书籍(现在也在继续看)。渐渐发现两年的学习并没有让我自己有什么进步,而GRE成了我当时能抓住的自我救赎的最好的一根稻草。其次是观念的改变:这里绝对没有贬低学文科的孩子的意思,不过很多都是事实。每一次浏览陈虎平老师的微博都能看到“文科是重灾区”这种鞭笞我自己的字眼。这也是为什么我研究生的方向不是教育学和文学的原因,因为语言学某种程度上还比较自然科学。计算语言学就更是了,其实很多学校都把这个方向放在了计算机系(比如,CMU)。这两个原因应该是我转专业的初始化吧,就像ML中的ModelTraining一样,初始化启动了一个日后能智能工作的Model。另外的信心来自明炎哥(插播一则广告:明炎哥于今年六月放弃刚拿到的H1B回国创业了,现在是深圳海普洛斯生物科技有限公司的CEO,欢迎有兴趣的小伙伴加入,尤其是大数据分析和生物信息方面的小伙伴们),2014年的新年我在旧金山听了他大学,研究生和博士的经历,心潮澎湃。转专业之前因为担心数学,我在微信上和明炎哥谈了一次,他说:“不行也要有行的信心”。明炎哥也是来美国后换方向,也记得他说第一年的时候经常看书看到深夜两点。没什么挣扎,我开始准备转专业。

 

准备工作:

A.计算语言学

我修了三门课拿到了计算语言学的证书,学了Python。我能转系成功的一部分原因也是我计算语言学的这三门课。两门课拿了A,一门拿了A(丢人)。Advisor在看我本科和研究生成绩的时候只说了一句话“Youare sparkling.”,这成了我来美的获得的最高赞许。

B.自学

但是计算语言学的背景远远不够。特别是在很多基础课,比如数据结构、计算机结构、算法、操作系统这些硬储备,没有这些知识等于没学过计算机了吧。没这些知识,就有了是个人都能想到的第一个办法——“自学”。如人所说“计算机应该是当前最适合自学的一门学科了”(荣誉属于刘未鹏)。问题来了,要跟谁学,选什么教材……毫无取非地向领域中的精英学习无疑是最佳方法(荣誉属于陈虎平老师)。

于是我上了Coursera上李戈老师的计算机概论A。因为有一些python的基础知识,我还上了Coursera上的AnIntroduction to Interactive Programming in Python. 上完这两门课,刚好我就开学了。这里我想讲一下自己自学的经历,有一些经历值得分享(当然也是我最想说的)。

 

u 明确需要

前面提到过的计算机基础知识是例子。我想转系的时候和一个朋友聊天(多聊天,多和在自己行业专业上做得很厉害的人聊天,小感悟),刚好他是学EE的,他说:数据结构挺重要的。谈完话,我回来就开始看网上的一些资料。看到刘未鹏的一篇博客里面有提到“数据结构、计算机结构、算法、操作系统”这些知识是不过时的,学的再好都不为过(既然精英告诉我什么重要,那我就老老实实学吧)。我就开始了补需的过程。

u 不要贪婪

这点太重要了。

只要转系,尤其是到了研究生阶段,每个人都会有不同程度上的知识漏洞。很正常,因为你用之前的四年学了某些和这个领域关系很少的知识。刚开始的时候什么都想学,恰好Coursera上什么课程都有,从最基础的计算机概论到比较专门的NeuralNetwork。选择充满困难,因为人总是贪婪的。在知识获取上就像热量和脂肪的获取,只要需要而且能够得着,总想不断储备。不得不说,我暑假刚开始的时候同时上的不止两门课,但是只有两个月的时间,你不吃不喝不睡,它也只是两个月的时间。大概学了一个礼拜,我就发现这样不行,因为每门课都有预习和作业。无奈之下,我只好上两门课。当时觉得自己挺没用的,直到看完刘未鹏的所有博客我才释然。(刘未鹏博客)同时也很高兴自己这么做了,里面有多篇文章有益,这里就不一一列举了。上两门课给了我更多的时间去思考一些问题,同时也可以花时间去做题和反刍。这样相对来说岁一些问题有更深入一点的了解,同时也可以看清自己是不是真喜欢这些东西。

u 用你可以用的一切去学习

这里我要特别感谢李忻阳同学,如果你能看到这篇文章,希望能和你交个朋友。刚开始的时候,我真的什么都不会,又是学C++这种比较靠近硬件的语言,很多平台不会用,Eclipse我安装了至少六七次(因为老师推荐的),均告失败。无奈之下,我只好用Mac的Xcode,可是我还是不会用啊,代码抄写作业完不成,搞了几天信心丧失殆尽。我当时的愚蠢是只知道通过自己解决问题,不知道这个世界上有那么多像李忻阳同学这样的好人。失败N多次后,我想总有人和我有一样的问题呀,那就上论坛看看吧。刚好看到李忻阳同学说的如何在Xcode上写作业的帖子,而且他还留下了email,那还有什么好犹豫的。我立即给他发了邮件,第二天醒来(人在美国)我就收到了他回复我的邮件,告诉我Eclipse安装的问题,同时让我把Xcode的问题截屏给他。就这样解决了编程平台问题,欢乐的时光开始了。

u 坚持一条道走到黑

很多时候大家都爱说:死脑经,一条道走到黑。嗯,我就是那个死脑经,因为我相信拨开黑暗尽头的那块幕布,前面就是光明通途。为什么要说这个,因为身边有放弃的例子。当时和我一起转系的还有一个会计系的孩子,他比较悲惨,Advisor给他开了七门先修课(我有三门)。暑假的时候,他貌似出去玩了一圈,回来也没有补什么课。我问他有没有兴趣和我一起学数据结构,他说他不懂Java;问他要不要一起学计算机概论A,他说不懂C++。这次之后,我再也没问过他要不要和我一起学习。什么都要等,等到什么条件都有了早就过了大半辈子了。开学的时候,他去上计算机结构,我问他上课讲什么,他说讲“二进制”。 我那叫一个开心啊,因为计算机概论A里面早就讲过了啊,有什么比提前获取知识更开心的事情呢?两周以后,他忽然告诉我他转回会计系了,心里一想,必然的。什么都得坚持,不走到黑,你怎么知道那是死胡同。于是我只有我一个人转系。

u 需要什么学什么

暑假结束,开学上课。很开心,因为又可以搞我喜欢的计算语言学了。我很兴奋地选了SpeechProcessing,这个痛苦的学期就这样不知不觉地开始了。研究生的课程本来就比较难,恰好这个老师又是一Killer,方方面面都很严格(比如实验报告只要有语法错误就会被扣分)。如果有相关背景的同学应该知道:语音识别需要很多方面的知识,机器学习,信号处理,语言学等。语言学的相关知识我是有的,其他都没有。机器学习又需要线性代数和Matlab,我还是没有。于是,想了个好办法:需要什么学什么。现实自学了一个月的线性代数(荣耀属于GilbertStrang,MIT),一共上了七次课,够用。不得不说GilbertStrang是我上学以来遇到的最好的数学老师,我决定上完这门课就把自己的笔记(自己最认真的笔记)全部扫描上传共享。Matlab也是在MIT的公开课上学的(荣耀属于DaniloŠćepanović)。学信号处理的时候就更难过了,真是要感谢以前的懒惰,因为八年没碰过物理。看不懂傅立叶转换啊,看不懂欧拉公式啊。问题出现了,伴随着它出现的还有问题的解决方法。真是无巧不成书,好东西传送门(微博链接)分享了有关傅立叶转换的资料,断断续续看了两礼拜,懂了。这里还是要说一下:需要什么学什么,但是不要贪心。我们家乡有句古话比较适合“贪多嚼不烂”。

写到这就算是把自己的经历多少总结了一下了,那就讲讲为什么使用这个装逼的标题吧。首先,自己被傅立叶转换折磨够了,语音识别到处都用到;其次,是一次在UCSD和一堆博士谈话,聊到高兴的时候,一个听了半天的孩子因为没听懂问了一问题。另外一哥们直接来了一句“你们之间需要用傅立叶转换一下”,大家都笑了。我想要是在上学期,我肯定是笑不出来的,因为不知道笑点。回家的路上,我就在想,对啊,生活也一样,在时域呆久了,不妨去频域看看吧,因为哪里会有不一样的风景。

总结完了,感谢陈虎平老师和明炎哥的鼓励;谢谢Eckberg(Advisor)给我转系的机会;谢谢小百科,你是我奋斗的强大动力;最后,谢谢我亲爱的老爸老妈,你们的支持是我深夜的清醒剂。

 

 

 

0 0
原创粉丝点击