All posts by zr9558

25 岁做什么,可在 5 年后受益匪浅?

25 岁做什么,可在 5 年后受益匪浅?

很久之前在知乎上看到一个问题:“25 岁做什么,可在 5 年后受益匪浅?

25 岁的时候

在写这篇文章之前先回忆一下自己在 25 岁的时候在干什么。

笔者在 25 岁的时候应该是 2013 年,正好是在 NUS 读博士的时候。当时笔者的科研进展缓慢,几乎处于无法自我推进的状态。而在笔者迷茫了大半年之后,碰巧在网上看到一本书叫做《战胜拖拉》,于是笔者花了几天功夫读完了整本书之后就将知识用于实战,目标是战胜自己长期拖延不科研的状态。不过花费了一段时间之后,效果比较明显,没花费多少时间就把当时论文里面的第一步 Real Bound Theorem 搞出来了。事后想起这件事情的时候,最感谢的就是《战胜拖拉》那本书的作者,作者在书中确实提供了不少有用的建议。在解决了毕业论文里面的重大难题之后,笔者写了两篇关于拖延症的文章,希望对大家有帮助。

PHD 身边的时间陷阱

战胜拖延-让PHD达成每天必要的工作时间

在看完拖延症的书籍并做完论文的第一步之后,当然要完成的就是论文的全部。在做科研的过程中整体来说还是比较辛苦,以至于读完博士之后还写了一篇文章来介绍科研整件事情,那就是”科研这条路“。

选择比努力更重要

所有的博士生在拿到博士学位之后自然就是面临就业的问题。笔者 2005 – 2015 年一直在数学系攻读学位,回顾读书这十年给笔者最大的感受就是,学校招聘老师的标准是越来越高。刚开始的时候,如果博士的学校较好,也许没有太多的论文都能够进一个还不错的大学。到了 2010 年之后,即使有了不少的论文也不能够保证一定能够进好大学。同时,博士生的数量也是越来越多,在学校的教师岗位根本无法容纳下那么多博士生的情况下,很多无法找到教职的博士生就要去企业工作或者继续从事博士后的岗位。不过有的专业找工作确实相对容易一些,有的专业找工作相对难一些。假设有一个博士生在 2010 年选择机器学习专业,那么在他毕业的时候,正好就是机器学习刚刚火起来的时候,那么肯定会非常容易就业。不过在 2010 年的时候,机器学习也不算什么热门方向,企业所提供的岗位也相对较少。因此,有的时候要想在未来获得更大的收益,选择当前热门的领域并不是一件很好的事情,选择未来有可能火的领域才是关键。不过要想判断未来哪个领域会火实在是太难了。因此,选择比努力重要的多,无论是整个大的行业,还是研究方向,甚至到每天手上所做的那件事情。

自我的成长

在选择了一个合适自己的方向之后,那就要去努力做这件事情,无论是在上学的时候,还是工作的时候,都要时刻注意自己的产出。在学校的时候,学生需要注意的就是这半年需要做什么,能够达到的目标是什么。然后从后往前反推此刻应该做什么,需要做什么样的事情才能够达到相应的结果。比如,如果在开学的时候就想要在期末考试的时候获得一个不错的成绩,那么在开学的时候不仅要下定决心学好这门课,还要根据课程的实际情况制定出相应的学习计划,最后才能够在期末考试中获得相应的成绩。又比如,如果目标是半年后写一篇论文,那么就需要准备开题报告,论文规划和预期效果,以及相应的时间节点。但是做论文的时候最大的风险点在于不确定性,所以很多时候需要根据论文的实际情况来进行调整。如果是在公司里面的话,通常来说都是季度考核,半年考核,全年考核等几个大的阶段。而且在项目的不同时期,考核的方式也是截然不同的,在项目的初期,可能也只是需要有一些调研方向和小的产出;在项目的中期,可能就需要有阶段性的成绩;在项目的后期,可能就需要把整个项目进行回顾,然后总结成功点和失败点,再让所有项目组成员来学习成功点,总结失败点,避免在未来的项目中走同样的弯路。其实无论是在学校里面还是在公司里面,“项目管理”这类知识还是挺有用的,在学校的时候可以用来管理自己的学业,在公司的时候可以用来管理项目的进展。

工作的意义不仅仅在于获得一份工资,有可能的话最好从工作中获得一定的自我认同感,更重要的是获得个人的持续成长。刚开始进入公司的时候,由于是新人,所以可以学的东西其实非常多。无论是专业技能,业务沟通,还是项目管理,每一个领域都够一个新人学一段时间。因此,在刚进入公司的时候,需要给自己一定的压力,前一年半其实是个人成长最快的时候,在这个时候最好需要充分利用上下班的时间,甚至周末最好也花一定的时间进行自我充电。而到了两年之后,成长的速度就会明显放缓很多,感觉每隔半年才会成长一点。

专业的问题

在学校的时候,通常学生都只会关注本专业的知识,只有遇到了想转行的时候才会去主动学习别的学科。但是在工作的时候,如果只想做本专业的知识,那么在其实就是在限制自己的发展空间,千万不要让自己的专业限制了自己的发展。无论是在学校还是工作中所学到的经验是一种财富,但是这些经验在有的时候也会形成自己的绊脚石。一般来说,在工作中做一些相对成熟的事情是容易出成绩的,做未知的事情是需要承担风险的。在做成熟事情的时候大家都会采用已有的方案继续做下去,在做未知事情的时候就需要有人去做很多的调研工作,看看这件事情是否值得做下去,是否能够达到预期的收益效果。如果调研了之后确实能够达到预期的效果,那就值得做下去;如果有一定的风险,那就要把预期降低,在一个合理的预期之内做适当的事情。

明确不想做的事情

可以在学校期间明确一下自己不想做的事情。通常来说,你问别人,你想做什么,他能够七七八八的说出一堆,但是绝大部分都不会去做。而且随着时间的迁移,每个人的想法都会产生变化,今年想做的事情明年不一定想做。但是就一般情况而言,一个人不想做的事情是不会发生太大变化的。如果一个人不喜欢学习物理,那么十几年过去之后可能还是这样;如果一个人不喜欢写作,那他肯定也很难提起自己的笔去认认真真地写一篇文章。所以,可以在学校或者工作的时候确定自己不喜欢做什么事情,然后在选择专业或者就业的时候避开这些专业或者岗位。因为在学校里面会与这些专业相伴几年,而工作的时候在岗位的时间有可能比在家的时间还要多。

 

Advertisements

不要为已经打翻的牛奶而哭泣

当年,曹操与刘备在汉中决战,两军久久僵持不下。曹操见久攻不下,心中烦闷,此时士兵来询问夜间的口令,曹操顺口说一句:“鸡肋。”而主簿杨修听到这句话,便开始收拾行装,并告诉周边的人一起收拾行装。众人不解,反问之,杨修解释道:“鸡肋鸡肋,食之无肉,弃之有味,今丞相进不能胜,恐人耻笑,明日必令退兵。”而杨修因为这句话而引来了杀身之祸。

三国1

熟读三国演义的人都知道,曹操杀了杨修之后,便令众军前进。其实到了最后,曹操也未能战胜刘备,获得汉中攻略战的胜利,只能退回许昌。虽然现在我们很难猜测曹操当时的想法是什么,不过“夫鸡肋,弃之如可惜,食之无所得”这句话却由于这个故事而流传下来。无论是当年的曹孟德,还是现在的很多平凡的普通人,身边总有一些事物与鸡肋一样,食之无味而弃之可惜。

在经济学中可以用沉没成本来描述鸡肋这个概念。沉没成本指的是已经付出了,但是不能收回的成本。例如,有一家电影院不允许顾客退票,有位顾客买了一张电影票,但是他看了半小时的电影之后觉得电影十分难看,这种时候他就有两种选择:

1. 继续看下去;

2. 中途离场,去做自己想做的事情。

其实绝大多数的人都会忍着看完这部难看的电影。而从经济学上的观点来看,如果人是足够理性的,当这个人在做决策的时候,是应该把沉没成本放在一边而不去考虑的,因为沉没成本是无法被改变的。按照上面的例子,无论他选择是否继续看下去,这个电影票的钱都已经无法退回,而此时需要做决定的事情是是否继续看完电影。通常这种情况下,按照经济学的理论来说,经济学家会建议这个人选择中途离场,去做任何自己想做的事情。因为这样的话他只是浪费了一张电影票的钱,但是省下来的时间却可以做其他更有趣的事情。

COSTS

虽然这只是书本上的一个简单例子,但是这样的例子在生活中比比皆是。无论是对学生还是职场人士,无论是对普通人还是位高权重的决策者,都面临着沉没成本是否放弃的难题。对于学生而言,最常见的情况就是这个学生在大学期间学了四年根本不感兴趣的专业,但是在面临存在转专业的机会时,是否要放弃原有的技能而重新学习一个新的专业便成为了一个难题。对于在职人士而言,在面临一个有挑战但是并不熟悉的行业或者领域的时候,是否愿意放弃原有的一些经验,是否存在勇气进入一个新的领域也是一个难以抉择的问题。

沉没成本其实很影响一个人的决策。对于学生而言,如果在某个方向上花费了巨大的精力和时间,是很难下定决心转一个全新的方向的;对于工作后的人士而言,主动放弃已经拥有的一些经验,放弃已经掌握的一些人脉和资源,也是十分困难的。但是,在人生的十字路口,其实又必须要下定决心做一些事情。众所周知,学校里面的不少专业其实就是“鸡肋”,完全符合“食之无味,弃之可惜”的条件,无论是学生的就业率和成材率都处于所有专业的底部。如果这些专业的学生不放弃自己的专业,将会在这些专业里面越陷越深,最终无法自拔。其实,这些专业的学生继续从事该专业的学习都不能称之为“坚持”,而是在“死扛”,用自己的大好前途来耗费在一些没有任何用处的专业技能上。有的技能虽然看上去比较高大上,但实在是“屠龙之技”,离开了已有的圈子,学校之后就再无任何用武之地。这些专业还能继续招生的原因大概就是学校招聘了不少这些专业的教师。因此,对于这些专业的学生而言,不破不立,只有勇敢地走出自己所在的圈子,才能够体会到其他专业的精妙之处。

CHOICE

而对于职场人士而言,基本上都会想靠一些好项目来升职加薪,但是在整个社会的大环境下,有的方向确实是在走下坡路,行业越来越饱和,竞争越来越激烈,所做的技术难度越来越低。随着技术的发展,原有的一些技术和框架都会逐渐被淘汰,掌握的技能价值也会越来越低,甚至可能出现找一些应届生培训几个月之后就能够达到老员工的水平。在这种情况下,随着行业的整体下滑,如果还抱着原有的技术栈不松手,那只能变得越来越没有竞争力。在这种情况下,就要主动寻求突破,寻找自己所拥有的技能和其他专业的共同点,将自己的技能主动地迁移到更有潜力的方向上。在职场上,一定不要死抱着一个东西不放手,一定不要抱着我就是来做这个方向的想法,而其他的方向都不去了解和尝试。在工作中,应该审时度势,创造或者寻找优质的项目和资源,因为一个有潜力的项目和优质的资源所能够带来的好处有的时候会远远大于自己当年所做的方向,那个自己当年不舍得放弃的方向。

上升通道

整体来说,在一个人面临着决策的时候,沉没成本最会影响一个人的决策。无论是从经济学的原理上来说,还是从日常经验上来讲,其实都应该放下包袱,轻装上阵,寻找一个更有前景和前途的方向去发挥自己的特长。

 

梦回金陵:南京大学(一)

笔者从事数学研究大约有十年的期间,后面五年是在新加坡国立大学度过的,而前面的五年则是在南京大学度过的。之前写过不少文章介绍新加坡国立大学的点点滴滴,感觉有必要回忆一下笔者在南京大学的一些事迹。虽然已经时隔多年,但是在南京大学的时候其实还是有许多有趣的人和有趣的事情,也许有一些事情已经不太记得清楚,但是在南京大学度过的五年生活也许是人生中最美好的五年。

梦回金陵1

近二十年来,中国的高校都在发展,学生和老师的人数都随着时间的迁移而越来越多,老校区毕竟面积有限。于是在 1993 年的时候,南京大学浦口校区开始接收第一批新生。在 2005 年笔者刚入学的时候,南京大学的浦口校区已经走过了 12 年的历史。而作为老校区的鼓楼校区则依旧保持着几十年前的景色,无论是校长办公室的北大楼,还是数学系的西大楼,都见证了南京大学的发展和变迁。当年,南京大学只有鼓楼校区和浦口校区,仙林校区还没有对外开放。因此,在 2005 年前后,几乎所有专业的大四学生和研究生都在鼓楼校区,而大一大二大三的学生一般都会在浦口校区。梦回金陵2梦回金陵6

由于南京的地理位置原因,鼓楼校区与浦口校区相隔很远,每次进城购物或者买东西的时候,总是要跨越南京长江大桥。而当年浦口地区还没有通地铁,当年南京唯一的一条地铁就是一号线,如果没有记错的话大概是从火车站到奥体中心。跨越南京长江大桥的办法除了靠双腿走过去之外,还可以选择坐公交 131 路或者 159路。131 路公交当年是开到大桥南路的家乐福店,而 159 路则是开到南京火车站附近。如果浦口大学的学生们只是去大超市买点东西的话,其实大桥南路的家乐福店是一个不错的选择,所以当年很多时候笔者都是乘坐 131 公交去家乐福。不过由于当年的交通工具实在是不方便,每次乘车的时候都是人山人海,要和其他同学一起挤上车,而且每到周末或者节假日的时候,更是人满为患。

梦回金陵3

虽然说当年的浦口校区距离市区非常远,但是学校里面该有的设施基本上还是有的。当年有三个大食堂,分别是六七八号食堂,随着时间迁移,到了大三的时候,九食堂就已经修好并且对外开放。让人印象深刻的是由于当时上泛函分析课程的地点是在西平教室,并且是早上的三四节课,为了避免在 12 点钟的时候在食堂排长队,于是趁着三四节课课间休息的十几分钟就可以冲去九食堂吃饭,然后迅速返回教室。除了食堂之外,当年的浴室是公共浴室,在宿舍只有凉水,于是如果要去洗澡的话,就必须去浦口大学的公共澡堂。而浦口大学的公共澡堂位于当年的八食堂附近,每天下午 14:00 左右开门,晚上 21:00 左右结束。南京素有火炉之称,每逢夏天的晚上,女浴室的门口总是排起了长龙,排队洗澡的人群总是络绎不绝。而男浴室的门口则没有那么多人,一是因为男生洗澡的速度通常比女生快很多,二是有不少的男生会选择在宿舍里面洗冷水澡。

梦回金陵5

在 2005 年左右,当年的手机还是 Nokia 的时代,移动端的娱乐方式并没有现在那么丰富。大家的娱乐方式通常来说就是聚在一起打扑克,或者在一起玩电脑游戏。当时比较风靡的单机游戏是暴雪公司开放的魔兽争霸,网络游戏也是该公司开发的魔兽世界。而大一的时候,绝大多数人还没有拥有自己的个人电脑,于是为了玩这些游戏通常都只能够去浦口大学门口的多瑙河网吧,因此一些人就出现了白天上课,晚上包夜的情况。也许是刚20岁出头的年纪身体比较好,到了30岁左右的时候,想通宵熬夜就是一件很困难的事情了。有趣的是,当时一个宿舍会有四个人,一旦有一个人开始打游戏,通常都会带动整个宿舍的人一起玩。

梦回金陵7

而学生的想象力总是无穷的,总能够挖掘身边无数的资源,变腐朽为神奇。除了浦口大学门口的多瑙河之外,其实学校内部也有机房。当年大一的时候,数学系总会开设 C++ 编程设计这门课,既然是编程课,那么就需要上机实验,因此玉辉楼的数学系机房就是一个还不错的环境。不过既然是机房,那么它的硬件设施就肯定没有外面的网吧好。但是,机房总是免费的,于是就有一些同学会选择在机房玩一些小游戏,当年的几十台机器还是能够择优选择出几台机器可以运行 Diablo II 的。

梦回金陵8

除了数学系的机房之外,其实还有另外一个地方提供了不少的电脑。对于南京大学的绝大多数学生,数学和英语是两门必修课。既然是学英语,那无法避免的就是听说练习,为了提供必要的听说训练,南京大学在教学楼的三区五楼提供了一块场地,叫做大学生英语学习中心。当年刚入学的时候,每个学生都要进行一次入学考试,目的就是把每个学生的英语能力进行分级。总共分了四级。其中,四级的能力最高,只需要上一个学期的英语课;一级的能力最差,要上四个学期的英语课。不过作为贵州出来的学生,英语通常都不会太好,于是就只能够混到二级,上三个学期的英语课。既然是要上课,就无法避免地要做作业和考试。而当年做作业的方式就是在大学生英语学习中心做,学习某门课程之后,然后在机房里面做阅读理解和听力测试。而当时做作业的时候是限时的,必须要在一个合适的时间内完成相应的题目才算及格,而这些作业就算平时的作业成绩了。记得当年考试的时候,考试的题目有一部分就出于书本里面,只要熟记书本里面的内容,虽然不能够保证得高分,但是能够保证自己顺利地通过考试。

梦回金陵10

作为数学系的学生,通常来说学业压力都比较重,一般来说只靠课堂上的时间是无法学好数学的,需要在课下花费很多的时间和精力去学习和巩固已知的课程。而在宿舍几乎就没有办法去学习,毕竟宿舍是提供住宿的地方。而当年浦口大学没有图书馆,图书馆是在2007年左右才建立起来的,在05年左右的图书馆是临时搭建的,属于过渡期。于是,能够提供自习的场所就只剩下了教学楼,西平,南平。西平教室当年是给金陵学院的,南平教室的环境也比较恶劣,就只有教学楼的环境还可以。不过教学楼整体来说也不小,八角楼附近的人比较多,于是为了寻找一个相对安静的环境,通常都会去一区五楼的教室自习。教学楼一区的人数相对偏少,而教室偏多,五楼又是一个比较高的地方,于是自习的人数是最少的。

梦回金陵11

(未完待续)

 

授人以渔—从博士生和新员工的成长谈起

众所周知,无论是在学术界还是工业界,所有的人都是从新手开始,一步一步地走向正轨。如果想在高校谋得一个教授的职位,所有的人都是从本科开始,然后到 Master 阶段,最后走向 PHD 的漫长时期。即使拿到了博士学位,也就是一个预备军的阶段,相当于获得了一个学术界的入场券。通常来说,在获得了博士学位之后,通常还需要一段时间的博士后工作经历,才有可能在学术界谋得一席之地。在工业界,除了少数大牛之外,几乎所有的人都是从底层干起,一年一年的升级打怪,最终获得职位上的晋升。作为一个在学术界和工业界都混过几年的人,在这两个地方都踩过不少的坑,这几年也看到周边的同学在学术界上的分别走向不同的道路,身边的同事也在工业界上作出各自的选择。近期正值博士生开学和新人入职的时期,正好有一些个人的感悟跟大家交流一下。

循序渐进

对于一个在读博士生来说,如果最终想留在学术界工作,并且在高校或者研究所谋得一个讲师或者教授的职位,那么博士期间的工作就显得至关重要。对于一个博士生而言,博士期间的课题通常来说都是导师帮忙定下来的,从一开始的课题收集,开题答辩,整理思路,撰写论文,导师在其中将会发生着至关重要的作用。选择的课题好坏直接决定着博士生最终的产出和收益。其实,要想让一个博士生做不出来课题是非常容易的,直接让他去攻克 Riemann Hypothesis 就可以了,但是这样做并没有任何的意义。导师的作用是培养一个又一个合格的博士生,让其所在的研究方向能够逐渐壮大,从而在国际上处于领先地位。如果让博士生去攻克 Riemann Hypothesis,不仅没有任何好处,也会对博士生造成毁灭性的打击。在博士生刚入学的时候,导师要根据自己的多年以来的工作经验,给博士生选择一个能够出成绩,但是又不是特别难的课题,而不是给学生一个本方向的终极难题。只有这样,博士生才能够在最终答辩和找工作的时候占据一定的优势,并且也有机会在学术界存活下来。

即使选择了一些合适的课题,也不能够让博士生从正面直接攻克它。因为最终的问题可能还是相对偏难一些,对刚进入博士阶段的 PHD 来说可能并不合适。在这种时候,需要采取循序渐进的策略。就拿笔者之前所研究的动力系统方向来举例,刚刚开始攻读博士的时候,尤其是在前两年,只需要做一个 Ergodic Theory and Dynamical Systems 这种级别的论文就可以了。因为这种时候需要的是稳定军心,让 PHD 能够有信心继续从事一些更难的课题。在博士生第三年至第五年的时候,尽量去做一个更难一些的题目,然后其博士论文的课题大致能够发表在 Communications in Mathematical Physics 这种级别上。这样的话,博士生寻找一个博士后岗位甚至一个教职都没有太大的问题。在找到了工作之后,通过会有两种选择,一是可以继续做之前的课题,保持一个持续的领先优势,二是可以做更难一些的问题。如果能够有持续的小论文产出,并且最终有一个大论文的话(例如发表在 Annals of Mathematics)上,基本上 Tenure 之路已经接近稳妥。整体来看,在博士生期间最好的策略是选择一个循序渐进的过程,而不是想一口气吃成一个胖子,给了一个超难的课题让博士生自生自灭。

对于刚刚工作的人也是一样的道理,无论是实习生还是刚入职的应届生,在公司层面都会制定一个所谓的“师傅”或者直系领导帮忙带一下。对于实习生而言,其实他们在公司里面的工作时间也就两三个月,并且最终会面临一个实习生考核,来决定是否录用。在这种时候,如果是想当一个负责任的老员工,在这种时候就一定要给实习生一个相对容易出成绩的项目。而这种项目则不能是那种很难的长期项目,但是与长期项目又需要有某种千丝万缕的联系,最好就是长期项目所需要的核心部分。老员工需要做的就是把这一部分内容从整个项目中剥离开,该准备的数据,该搭建的工具环境都需要提前准备好。只有这样,实习生才能够在一个相对紧凑的时间段内迅速的出成绩,然后最终产出的时候获得一个不错的成绩。

融入圈子

无论是在学术界还是在工业界,都强调一个圈子的概念。在学术界选择导师的时候,就好比足球运动员选择各种各样的俱乐部,有的俱乐部可能比较大并且人才济济,有的俱乐部可能比较小但是却很有发展潜力。在进入了这个俱乐部的时候,导师除了需要把必要的论文资源和材料,相应的方向指导清楚之外,其实最重要的就是带领学生们进入这个圈子。可以通过举办一些学术会议的方式,让学生们去参加,并且主动结识同行中优秀的人才。也可以通过开讨论班的方式,让博士生主动认识院系里面的各位大佬。其实,在未来找工作或者教职的时候,不仅是需要老板的推荐信,还需要同行们的一些评价和建议,甚至由同行大佬们提供一个岗位。因此,提前融入相应的圈子对于一个博士生来说非常重要。在这种时候,导师需要做的就是主动把自己的学生介绍给自己的学术界朋友认识,说不定在互相交流的过程中会有一些灵感出现,对学生做论文也是有益无害的。而且导师也是有着自身的局限性,不可能在学术领域里面面面俱到,这种时候,如果有同行的协助,那么对学生的成长方面则是会很有益处的。整体来看,主动帮博士生寻找必要的资源则是一个合格的导师应该做的事情。

如果是对于公司里面的新员工或者实习生来说,很可能面临的事情就是项目无法推动,无法在团队内部找到资源。这种时候,如果没有老员工一些必要的协助,实习生或者新员工将会举步维艰。因为公司里面的代码,架构,技术很可能散落在各个地方,文档的管理建设方面也未必特别合理。这种时候,只有老员工才知道哪里有坑,哪些人能够解决哪些事情,哪些人能够提供相应的资源。这些是新员工无法预先了解到的事情。如果是一个合格的师傅,就需要及时了解新人在做项目过程中所遇到的困难,所需要寻找的资源和技术,然后协助新人去寻找相应的资源,把项目整体推动下去。在一些集体活动方面,也需要帮助新人主动地融入团队的圈子,避免出现新人被孤立的情形。

避免坑人

无论是在学术界还是工业界,都存在着导师坑博士生,老员工坑新员工的情况。在公司里面,老员工和新员工可能还存在某种竞争关系,因此会出现老员工不太愿意教新员工的情况,甚至主动坑新人的事情。有的时候可能是因为老员工的能力不太行,自己无法开疆拓土,只能靠坑新人来拉开自己和新人之间的差距。有的时候是因为老员工不愿意把自己的核心技术告诉新员工,担心新员工有朝一日取代自己。其实,是否主动教人是完全自愿的,这个看每个人的性格和具体情况来定,但是在团队内部,如果主动坑新人就是老员工的不对了。老员工可以不主动传授别人知识,但是万万不能主动坑害新人。所有的人都是从新人阶段逐步走过来的,如果在项目中老员工发现了一些坑,那么有的时候是需要主动告知新人,避免犯同样的错误。而老员工在一些时候,则需要给新人一些独立成长的机会,让新人能够在项目中获得相应的成长,只有这样,才能够最终独当一面,在未来成为一个合格的员工。

无论是导师在学校带博士生,还是老员工在企业里面带新员工,整体来说,如果新人比较靠谱的话,对导师或者老员工来说其实是有相应的收益的。无论是学术界还是工业界,其最终的目的都是使得课题越做越好,发的论文档次越来越高,项目的收益和技术影响力越做越大。

 

基于自编码器的时间序列异常检测算法

随着深度学习的发展,word2vec 等技术的兴起,无论是 NLP 中的词语,句子还是段落,都有着各种各样的嵌入形式,也就是把词语,句子,段落等内容转换成一个欧氏空间中的向量。然后使用机器学习的方法来进行文本的聚类和相似度的提取,甚至进行情感分类等操作。那么在表示学习(Representation Learning)方向上,除了刚刚提到的自然语言之外,语音,图像,甚至图论中的Graph都可以进行嵌入的操作,于是就有了各种各样的表示算法。既然提到了表示学习,或者特征提取的方法,而且在标注较少的情况下,各种无监督的特征提取算法就有着自己的用武之地。除了 NLP 中的 word2vec 之外,自编码器(Auto Encoder)也是一种无监督的数据压缩算法,或者说特征提取算法。本文将会从自编码器的基础内容出发,在时间序列的业务场景下,逐步展开基于自编码器的时间序列表示方法,并且最终如何应用与时间序列异常检测上。

自编码器

AutoEncoder3

提到自编码器(Auto Encoder),其实它就是一种数据压缩算法或者特征提取算法。自编码器包含两个部分,分别是编码层(encoder)和解码层(decoder),分别可以使用 \phi\psi 来表示,也就是说:

\phi: X\rightarrow F,

\psi: F\rightarrow X,

\phi,\psi = argmin_{\phi,\psi}||X-(\psi\circ\phi)X||^{2},

其目标函数就是为了拟合一个恒等函数。对于最简单的情况,可以令 X = \mathbb{R}^{n}, F=\mathbb{R}^{m},并且编码器和解码器都是前馈神经网络,也就是说:

z = f(Ax+c),

x'=g(Bx+d),

损失函数就是 L(x,x')=||x-x'||^{2} = ||x-g(Bf(Ax+c)+d)||^{2}, 其中 x\in X=\mathbb{R}^{n}, z\in F =\mathbb{R}^{m}. fg 分别是编码层和解码层的激活函数,A,cB,d 分别是编码层和解码层的矩阵和相应的向量。具体来说它们的矩阵大小分别是 A_{m\times n}, c_{m\times 1}, B_{n\times m}, d_{n\times 1}.

AutoEncoder2

对于自编码器而言,它的输入层的维度等于输出层的维度,隐藏层的维度是需要小于输入层的维度的。只有这样,自编码器才可以学习到数据分布的最显著特征。如果隐藏层的维度大于或者等于输入层的维度,其实是没有任何意义的,具体的解释可以参考下面这个Claim。

Claim. 对于自编码器而言,其中隐藏层的维度 m 一定是要小于输入层的维度 n 的。

Proof. 如果 n=m,那么令 A=B=I_{n}, c=d=0, f=g=id 就可以得到一个自编码器,而这个自编码器对于提取特征没有任何的意义。同理,当 m>n 时,A 是一个 m\times n 矩阵,B 是一个 n\times m 矩阵。从线性代数的角度来看,有无数个矩阵 A, B 满足 BA=I_{n}。这种情况下对于提取特征也是没有意义的。而当 m<n 时,其实无法找到矩阵 A,B 使得 BA=I_{n}. 如果存在 BA=I_{n}, 那么

n = rank(I_{n})=rank(BA) \leq \min\{rank(A),rank(B)\} \leq \min\{m,m\}=m.

这就导致了矛盾。因此,只有在 m<n 的情况下提取特征才是有意义的。

对于自编码器而言,其本质上也是一个神经网络,那么它的激活函数其实不仅可以选择 sigmoid, 还可以使用 tanh,ReLU,LeakyReLU 等其余激活函数,其本质上都是为了拟合一个恒等变换,中间层则作为一个特征提取的工具。在训练的时候,同样是使用反向传播算法,可以使用不同的优化函数,例如 SGD,Momentum,AdaGrad,RMSProp,Adam 等。

在图像领域,有学者尝试使用自编码器来进行图像的重构工作,图像的特征提取等内容,整体来看也能达到不错的效果,请看下图:

AutoEncoder1

从上图来看,基于均方误差的自编码器是无法重构出乒乓球的。由于该自编码器的容量有限,目标函数是均方误差,因此自编码器并没有意识到乒乓球是图片中的一个重要物品。

 

时间序列异常检测:

时间序列异常检测一直是学术界和工业界都关注的问题,无论使用传统的 Holt-Winters,ARIMA,还是有监督算法进行异常检测,都是统计学和传统机器学习的范畴。那么随着深度学习的兴起,是否存在某种深度学习算法来进行异常检测呢?其实是存在的。请看上图,左边一幅图有一个白色的小乒乓球,但是随着自编码器进行重构了之后,白色的小乒乓球已经在重构的图像中消失了。那么根据异常检测的观点来看,小乒乓球其实就可以作为图片中的异常点。只要在图片的局部,重构出来的图片和之前的图片存在着巨大的误差,那么原始图片上的点就有理由认为是异常点。

在这个思想下,针对时间序列异常检测而言,异常对于正常来说其实是少数。如果我们使用自编码器重构出来的时间序列跟之前有所差异的话,其实我们就有理由认为当前的时间序列存在了异常。其实,简单来看,基于自编码器的时间序列异常检测算法就是这样的:

原始时间序列

-> Auto Encoder(Encoder 和 Decoder)

-> 重构后的时间序列

-> 通过重构后的时间序列与原始时间序列的整体误差和局部误差来判断异常点

简单来说,只要输出的时间序列在局部的信息跟原始的时间序列不太一致,就有理由认为原始的时间序列存在着异常。

那么,首先我们需要提取时间序列中的一些子序列,例如我们可以提取今天(today),昨天(yesterday),一周前(week)的数据,基于同样的时间戳把它们重叠在一起,也就是下图这个形式。其中,蓝线表示一周前的数据,黑线表示昨天的数据,红色表示今天的数据。

AutoEncoder4

基于一条很长的时间序列,我们可以提取它的很多子序列,从而构造出很多的片段序列。这些片段序列就可以形成自编码器的输入数据,而自编码器是模拟一个恒等变换,因此它会把有异常的点尽量磨平,而正常的点则保持原样。所以,通过大量子片段来进行训练数据的输入,自编码器就能够得到一个较为合理的权重。得到了一个训练好的自编码器之后,对于任何一个子片段,都可以重构出一个新的片段。例如上面的子片段就可以重构成下图:对于今天的数据(today),那个凸起被直接抹平;对于昨天的数据(yesterday)而言,那个凹下去的部分也被磨平。基于时间序列重构前和重构后的数据差异,可以获得时间序列的异常点。

AutoEncoder5

除此之外,还有很多时间序列的异常点可以被自编码器(AutoEncoder)发现,例如下面四幅图,无论是上涨,还是下跌,其实都可以被自编码器(AutoEncoder)发现异常。

总结

通常来说,在时间序列异常检测场景中,异常的比例相对于正常的比例而言都是非常稀少的。因此,除了有监督算法(分类,回归)之外,基于无监督算法的异常检测算法也是必不可少的。除了 HoltWinters,ARIMA 等算法之外,本文尝试了一种新的异常检测算法,基于深度学习模型,利用自编码器的重构误差和局部误差,针对时间序列的异常检测的场景,初步达到了一个还不错的效果。这种方法可以用来提供部分异常样本,加大异常检测召回率的作用。但是这种方法也有一定的弊端:

  1. 从理论上说,它只能对一个时间序列单独训练一个模型,不同类型的时间序列需要使用不同的模型。这样的话,其实维护模型的成本比较高,不太适用于大规模的时间序列异常检测场景;
  2. 对周期型的曲线效果比较好,如果是毛刺型的数据,有可能就不太适用;因为长期的毛刺型数据就可以看成正常的数据了。
  3. 每次调参需要人为设置一定的阈值,不同的时间序列所需要的阈值是不一样的。

参考文献

  1. Unsupervised Anomaly Detection via Variational Auto-Encoder for Seasonal KPIs in Web Applications, Haowen XU, etc., 2018
  2. Deep Learning, Ian Goodfellow, etc., 2016
  3. https://zr9558.com/2016/06/12/replicator-neural-networks/

 

短板与长板理论

之前听说过一个木桶理论:“一个木桶能够装多少水,取决于最短的一块板”。这个理论听上去确实很有道理。在高考的时候,如果一个学生的英语只能考 20 分,那么即使其他课程都是满分,也是上不了最好的学校的。反之,如果一个学生的每门课都很好,即使他没有达到每科顶尖的水平,在填写高考志愿的时候也是会比前者能够选择得更多。因此,在高中的时候,老师们都会奉劝大家不要偏科,因为在高考的大环境下,过度的偏科确实没有太大的好处。

后来念了大学和研究生,发现在一个知识爆炸的时代,在一个人的精力实在是有限的前提下,实在是无法做到面面俱到。即使在数学专业,几乎也无法做到一个人精通数学的所有领域(当然精通本科数学课程那种程度实在是不能算)。一般来说,研究分析和研究代数的就是两拨人,这两拨人的技能点和兴趣点都不太一致。在数学界尚且如此,更不要说跨行业的精通了。就像在企业里面,很难找到一个前端,后台,设计,机器学习统统都精通的人(不是说找不到,而是非常稀缺)。在这种情况下,每个人都面临着选择,是选择做一个全栈工程师,还是一个只精通一个领域的人。

如果选择做一个什么都会做,面面俱到的人,首先就要跨领域的多学习各种东西,例如前端,后台,机器学习等等。在精力上就要像高考的时候一样做到相对均衡的分配,在每个领域都需要有所涉及。这样的好处就是什么样的活都能干,如果团队里面暂时缺少某个领域的人,这类人就可以及时补上,能够把项目顺利完成。这类人在就业的时候选择面也会广一些,因为他们什么任务都能够做。而且很多时候,在团队里面确实需要一些这样的人才。但是这类人才可能也会有一些问题,那就是精力会相对分散。毕竟研究的面广了之后,研究的深度可能就要打折扣。不过,这件事情也是因人而异的,毕竟人和人之间是不一样的。

如果选择做一个精通某个领域的人,那么他的精力就会相对集中。在同等智力条件下,他所研究的深度就会比面面俱到的人所研究得深。说句实在话,在知识爆炸的时代,即使是人工智能领域,其实也很难做到样样精通。例如,自然语言处理所使用的技巧和方法与图片处理所用的方案是有一定的区别的,在推荐系统上所使用的技术到了运维系统上可能就不能生效。在这种时候,如果企业要解决某个业务难题,无论是防止黑客攻击还是做一个智能运维系统,都会聘请一个在这些领域有过相关经验,并且在业界有一定知名度的人才来帮忙解决这个问题。一般来说,在这种时候不太可能选择一些没有相关工作经验的人来重新培养,因为一来成本太高,二来无相关工作经验的人可能也无法胜任这类工作。总之来说就是风险太大。

就普通成年人而言,一般都有着自己的工作习惯和专业技能。如果一个人的学习能力还可以,那么就可以把他已掌握的技能迁移到其他类似的领域去;但是却很难去让一个成年人进入一个他完全不了解的领域。如果进入一个完全陌生的领域,一来重新学习新的技能成本太高,二来放弃自己所掌握的技能是一件很困难的事情。所以,有的时候这个人能否做不同类型的工作就看此人是否具备技能迁移的能力了。

整体来说,做通才或者专才看的是这个人的性格和能力,每个人都需要根据自己的实际情况作出最适合自己的选择。在精力充足的情况下,可以选择多学习一些方向,掌握不同的技能点;在精力有限的情况下,不如根据自己的兴趣爱好,选择一个最擅长的领域做下去,然后在这个领域形成自己独有的竞争力。

 

在新加坡的这五年—生活篇(二)

上一篇文章《在新加坡的这五年—生活篇》已经整体介绍了新加坡的衣食住行,本篇文章将会回顾一下个人在新加坡遇到的有趣的人和有趣的事情。

新加坡国立大学(National University of Singapore)的 PHD Research Programme 的项目是其实是专为博士生量身定做的。虽然是博士生的项目,但是在刚入学的时候其实不能够被当做博士生,基本上和国内的硕士生没啥区别。因为 PHD Research Programme 里面有一项无法避免的内容,那就是修满一定的学分,而在不同的院系有着截然不同的修课标准。就数学系的博士毕业标准而言,那就是在四年时间内修满八门课,并且博士生要把 MA 5198 这门课修完。对于刚入学的博士生来说,除了修课之外,还有一个重要的任务,那就是尽快通过 Qualify Exam,因此几乎所有的 PHD 都会选择分析,代数,计算这三门课中的两门。

qualifyexam.png

在 2010 年,当时的数学系刚刚从 S14 搬到 S17,而 S17 的只有 6-8 层已经装修好,4-5 层几乎还处于没有装修的状态。导致当时要上数学系的课程,教授和学生都必须要去 S14 的教室上课。而当年的代数课程是由 Berrick 教授负责,并且Qualify Exam 的考试又是由 Berrick 负责出题,但是 Berrick 教授给的分数一向不高 。说实话,我对代数课程其实没有太多的兴趣,总觉得代数课程过于抽象,而这门课的主要内容居然是范畴论(Category Theory)。对个人来说这门课几乎是一门绝对用不上的课程。而范畴论好比数学界的黑话,这个理论总喜欢把一个容易理解的东西用及其抽象的语言描述出来,让人摸不着头脑。和范畴论相比,什么线性代数,抽象代数都已经是非常具体,浅显易懂的课程了。虽然范畴论的内容我现在已经全部忘记,半点都想不起来,但是在课堂上我印象最深刻的就是每次上课的时候 Berrick 教授都会拿着一种饮料进入教室,而且只喝那一种口味。于是,个人后续逛超市的时候就专门去寻找了那种饮料,终于在 West Coast Plaza 里面的 FairPrice 超市看到了那款饮料,尝试了之后果然味道不错,于是后续去 FairPrice 的时候,经常都会买那款饮料来喝。

carrotjuice
FairPrice 能够买到的 POKKA 饮料

提到 NUS 周围的超市,远远不止 FairPrice 这一家。就拿 West Coast Plaza 附近来说,除了 FairPrice 之外,还有 Shengsiong 超市。当年住在 Block 602 的时候,就觉得就 Shengsiong 超市的价格比 FairPrice 貌似要便宜一点。而当 Kent Ridge 地铁站建好了之后,对于 NUS 的学生而言,买东西的首选已经从 West Coast Plaza 变成了 Kent Ridge 地铁站,因为地铁站的二楼和三楼有一个小的 Shopping Mall,并且二楼同样也有 FairPrice 超市。无论是从 PGPR 宿舍区还是从 UTown 出发,都能够乘坐校车 A1 或者 A2 直达 Kent Ridge 地铁站,因此除非是特别想买某个物品,否则一般来说也不太需要专门去 West Coast Plaza 那边了。

fairprice.jpg

shengsiong
Shengsiong 超市和 FairPrice 超市的 LOGO

其实读博士不仅仅是上课和搞科研,在此期间也会做很多助教的工作。在做助教的时候,给人印象最深刻的就是大峰哥和全知帝等人,这几人在读博期间所得到的助教成绩和学生的认可度都非常高,长期高居数学系助教排行榜的榜首。大峰哥在搞助教的时候,通常都会去 NUS 的 COOP(校园超市)购买一些打印纸,然后给学生们打印相应的课程材料,并且在考试之前都会给学生们进行详细的辅导。说到 NUS 的 COOP,无论是打印纸,笔记本,中性笔等常见的学习用具都能找到,甚至教授上课所用的教材都应有尽有。并且也会有一些 NUS 的周边礼品,包括最经典的小狮子,笔记本电脑,NUS 的文化衫等内容。对于 NUS 的学生而言,如果想要购买基础的学习用具,都可以在 NUS 的COOP 商店里面搞定。

nuscoop1

nuscoop2
NUS COOP 里面出售的物品

对于大峰哥而言,除了科研和助教之外,还有其余有趣的事情。在 2014 世界杯期间,作为球迷的大峰哥经常买可乐和零食给大家,请大家在吃东西的同时一起看球。由于新加坡的酒水实在是太贵,估计大峰哥买的不算太多,只能够靠可乐来撑数量。除此之外,貌似是在 2014 年底,百事可乐举办了抽奖活动,而抽奖的内容就是收集百事可乐的瓶盖,瓶盖越多中奖概率越大,所以大峰哥经常去超市搬一些可乐回来请办公室的同学们喝。刚开始的时候大家还是有兴趣喝,但是喝了几周之后其实大家都没有什么兴趣了。有个同学听闻大峰哥在做这件事的时候,就直接打电话给超市,送了几箱百事可乐过来,最终貌似由于百事可乐的版本不对而作罢。话说回来,个人觉得还是可口可乐比百事可乐好喝一些。

pepsi
百事可乐经典款

刚到了 NUS 的时候,由于数学系刚刚搬迁,除了教室不足之外,连 PHD 的办公位都很紧张。刚开始的时候,新来的 PHD 都要通过抽签的方式来决定是否拥有办公位。由于本人的运气比较背,连续两次都没有抽中办公位,于是在 NUS 的第一个学期只好在学校里面的几个图书馆之间打转。距离 S17 最近的图书馆自然是 Science Library。图书馆里面的书并不是所有的都能够外借。而不能外借的通常来说都是由任课老师所指定的,当时正在使用的教材。除此之外,其余的书籍基本上都能够外借。NUS的图书馆除了 Science Library 之外,Central Library 和 Business Library 都是非常不错的图书馆。当年读书的时候除了在 Science Library 借过书之外,在其他 Library 也借过不少的资料。NUS 的一个特点就是在走廊,图书馆的外面拜访了不少的桌子和椅子,专门给学生们自习或者讨论问题用的。当年准备 Qualify Exam 的时候恰好是圣诞节和元旦的时候,而每次到了 Public Holiday,图书馆都会闭馆。所以在当时没有办公位的情况下,Qualify Exam 的准备工作个人就是在图书馆门口的座位上准备的。

ScienceLibrary2
Science Library 的门口
ScienceLibrary1
数学的 GTM 教材

 

提到博士生的生活,除了日常的搬砖和去超市购买日用品之外,经常做的事情就是组团出去吃海鲜或者火锅。而且新加坡的火锅通常来说都是自助的形式,30 新币左右就可以吃到饱。刚开始去新加坡的时候,经常和富贵等人一起去吃 West Coast Plaza 的川江号子火锅,或者在周末的时候跟陈老师去吃 Shengsiong 附近的添一点火锅。提到添一点火锅,一开始还想着经常吃撑,不过到了后面的时候基本上也就是看情况而定。在 PHD 第一年的某个假期,个人和陈老师经常中午去吃添一点火锅,一开始先吃肉和蔬菜,然后到了最后就只吃虾,于是到了晚上的时候就再也不用吃饭了。后来除了火锅之外,大伙又在 Novena 地铁站附近发现了一个海鲜自助餐,维也纳海鲜,那里整体的环境和氛围都相对偏好。无论是牛肉还是螃蟹,甚至各种饮料都是畅饮。所以,后续我们年级的 PHD 如果有啥集体活动的时候,大伙都会选择去那边吃。之后 RDD 同学来的几次,都会去维也纳海鲜吃自助,其实那里的螃蟹和龙虾整体来说还是非常不错的。

vienna
维也纳海鲜自助

除了各种各样的自助餐之外,其实海鲜一直是新加坡的特色,而个人比较推崇的就是黑胡椒螃蟹。提到黑胡椒螃蟹,就想到司北当年从日本来新加坡旅游,个人请他在克拉码头的珍宝海鲜楼吃了一顿饭,貌似三个人花费大概在 120 SGD 左右。珍宝海鲜楼的黑胡椒螃蟹在新加坡的食物中都算得上是一流的。当年 RDD 来的时候,其实也吃过不少黑胡椒螃蟹。整体来看,黑胡椒螃蟹或者螃蟹米粉是新加坡的一大特色,来新加坡的朋友千万不要错过这几种美食。

jumboseafood.jpg
珍宝海鲜楼

生活都包括衣食住行,对于留学生来说不可避免的就是租房问题。当年的 PGPR 和 UTown 还没有对 PHD 们开放的时候,大伙通常来说都会在外面租房子住。一开始的时候,姜师兄帮忙在 Block 602 #11-28 租了一间房,我和陈老师共同分担房租。其实后面 RDD 来玩的时候,也会去短租一些房子。至于找房子的问题,除了通过朋友们介绍或者转租之外,当年租房子的时候个人都会去华新论坛或者狮城论坛上面找。对于学生而言,一般都在华新论坛上面逛。每当看到一个合适的房源,都会去现场看一下,跟房东聊一下,然后就签订一份协议。不过相比国内现在的租房市场来说,当年签订的协议基本上就是君子协议,一般也就按时交房租就可以了。不过一开始在 Block 602 的时候,是 760 SGD 一间房,后续涨到了 800 SGD,貌似到了后面就越来越高了。和陈老师住的时候其实也就是住了一年,个人在 Block 602 的时候换过四个室友,陈老师,XXX(我真不记得了,就住了两个月),温同学,杰爷(我居然跟杰爷住过),上将。之后房东就不让我,杰爷和上将继续住了,我和上将就申请了 PGP 的房子,就剩下杰爷找了一个 260 SGD 的床位继续住。不过杰爷后续去了美帝国之后,从 Princeton 毕业之后大概找了一个几十万 USD / Per Year 的工作,估计再也不会住 260 SGD 的床位了。没过几年,上将也去澳洲继续攻读博士学位,当年在 Block 602 住过的几位室友恐怕很难再聚集到一起了。(未完待续)

block602
West Coast Plaza 附近的 Block 602