软技能 2:软件开发者职业生涯指南

《软技能 2:软件开发者职业生涯指南》的作者是【美】John Sonmez,他是畅销书《软技能:代码之外的生存指南》的作者,也是 “Simple Programmer” 网站的作者。他为在线培训机构 Plural sight 开发了 50 多门在线课程,涉及 iOS,Android,.NET,Java 和游戏开发等多个主题。他是 “Get Up and Code” 播客的主持人,在这里他讨论 “程序员健身”;他还是 “Entreprogrammers” 播客的主持人,在这里他和其他三位开发者/企业家分享他们构建在线业务的真实故事。

软技能 2

之前笔者也撰写过一篇关于《软技能:代码之外的生存指南》的简单介绍,在第一本书中,作者撰写了职业,自我营销,学习,生产力,理财,健身,精神等七个章节。而在第二本书中,作者的侧重点就放在以下五个方面:

  1. 如何转行成为软件开发者:介绍了入行经验,傍身之技,如何学好一门编程语言等部分;
  2. 找到一份工作:初出茅庐,创新思维,唇枪舌剑等部分;
  3. 关于软件开发你需要知道什么:编程语言概述,开发流程,测试流程,代码维护等部分;
  4. 软件开发者的日常工作:与同事,老板,质量保障人员,生活,团队的共存,协作之道等部分;
  5. 推进你的职业发展:建立声望,广结善缘,与时俱进,笔耕不缀,未雨绸缪,学无止境等部分。

从本书的标题《软技能 2:软件开发者职业生涯指南》就可以看出这本书将会关注程序员的职业生涯发展,与第一本书《软技能:代码之外的生存指南》略有不同。而从章节的安排来说,作者依次介绍了转行,求职,软件开发的日常工作,职业发展路径的部分。

本书的阅读对象主要包括 3 类:

  1. 初学者或者只是对学习软件开发感兴趣的人士;
  2. 中级开发者;
  3. 神经百战的专业人士。

从豆瓣的评分来看,《软技能 2:软件开发者职业生涯指南》的评分高达 9.0,当然这个要经过时间的考验才行。

豆瓣评分

笔者拿到《软技能 2:软件开发者职业生涯指南》这本书没多久,还没来得及读完所有的章节,只好选择部分章节来摘选一下该书中的经典语录:

第四篇:软件开发者的日常工作

你要是想通过获得越来越多的职责来成长和扩展你的领地,就找一些还没有人探索过的沼泽地,没有人想去碰它,你把它拿走,别怕它会弄脏你的手,然后在那里建造出一个主题公园—华特.迪士尼就是那么做的。找出那些没人愿意染指的领域,那些没人愿意触碰的项目,接管它们。然后,让它们变成你的高光时刻。我向你保证,如果你能持续得到晋升,并在任何组织中加大你的职责,最后加薪的事情将不在话下。

你能做的第一件事情就是投资对自己的教育。坦诚地讲,你要买更多的书并阅读它们。只是读书还远远不够,还要聆听在线课程,并且真正完成它们。走出去参加研讨会或者行业会议,以及现场培训课程。

第五篇:推进你的职业发展

只有习惯性地做比被要求更多的事情,才能够带来进步。— 加里.瑞安.布莱尔

如果你真的想要出类拔萃,你真的想要把你的事业提升到一个更高的水平,你就需要学会如何建立起稳固的声望,包括如何推销自己,如何打造个人品牌,这些将为你打开常人难以企及的机会之门。

下面列出的是可以让你出名的渠道或者方法:

1. 写出你的博客;

2. 在其他人的博客发表评论;

3. 写一本书;

4. 为杂志撰写文章;

5. 登录别人的播客;

6. 创建自己的播客;

7. 创建自己的 YouTube 频道;

8. 成为一名活跃的 Twitter 或者其他社交媒体用户;

9. 在当地的用户组和编程训练营上发表演讲;

10. 在大型开发者人员会议上发表演讲;

11. 创建一个广受欢迎的开源项目。

我发现,在编程的世界保持与时俱进的最佳方法之一就是每天清晨花 30 分钟左右的时间阅读编程方面的博客。

你需要持续不断地学习新东西。不管你对当前的技能是多么驾轻就熟,也不管你的教育背景有多么深厚博大,你总是要去学习新东西。定期评估你现在的技能,定期校正你的学习方向,这样就可以明确确定你应该学习哪些新东西,以及你的学习内容的优先级和顺序。不过,要注意一点:不要去学那些你永远都不会用到的东西。

无论你眼下的工作岗位或者工作氛围多有保障,都不要过得太安逸,这点很重要。

行家里手:做专才还是做通才?真正的答案应该是:两者兼而有之。如果在你的领域内没有对综合知识的广泛积累作为基础,那么想成为一名优秀的专家是非常难的。当公司说他们想要一个通才的时候,他们真正说的是:他们想要的是一个适应能力强,学习速度快的人。他们担心的是他们会雇佣一个只能做一件事情的人。宁可错误地选择过于狭小,太过具体的专业方向,也不要选择太宽泛。你要么在自己选定的主攻方向上直接深入地透彻研究,要么就去学习那些放之四海而皆准的永恒经典。不要试图学习一堆你可能永远不会用到的编程语言与框架。

一般来说,你会发现,软件开发者不管选择了那一条特定的职业路径(也许不止一条),最终都会遇到所谓的“玻璃天花板”。这个玻璃天花板实质上就是一个极限,限制了你在职业发展路径上可以前进多远,限制了你作为一个软件开发者可以得到的最高薪酬。无论你决定做什么,最重要的是:你需要做出决策,并且为此做出计划。

结束语

知道要做什么与知道该怎样付诸实践之间,还存在着巨大的鸿沟。

就在今天,就在此刻,立即采取行动!

深圳坪山行

坪山区是深圳东北部的一个市辖区,它的东部是惠州,南部是大鹏新区。随着坪山高铁站的投入使用,从坪山高铁站到深圳北站只需要 20 分钟的时间,从坪山高铁站到福田站也仅需 50 分钟。虽然坪山距离福田的距离也没有那么远,通过高铁也可以极大地缩短了从坪山到深圳关内的时间,但是笔者来深圳近五年时间由于种种原因也没有去过坪山区。

深圳市行政区域划分

近日由坪山区人才局的领导牵头,也有 NUS 的校友牵线,笔者有幸于 2020 年 7 月 12 日参加了“新加坡国立大学及南洋理工大学博士坪山行”的活动。该活动是希望大家能够进一步地熟悉坪山,了解坪山产业企业的真实情况,参观坪山的文化聚落,以及与各个领导和部分企业进行深入交流。

虽然从福田到坪山有高铁可以前往,但是这次活动的举办方还是贴心地从福田区的市民中心安排了大巴,让大家可以选择乘坐大巴或者自行驾车前往坪山。在这个行程活动中,包括几个关键的环节:

  1. 【08:45】从市民中心 B 出站口出发前往坪山;
  2. 【10:30】参观坪山国家生物产业基地— 生物医药园区企业;
  3. 【12:00】区政府食堂;
  4. 【13:40】参观坪山文化聚落;
  5. 【15:00】与坪山的各位领导和部分企业进行交流;
  6. 【18:00】返程。
深圳国家生物产业基地

从福田到坪山的路上,只要进入坪山区,在街道两侧就可以见到不少的生物医药公司。而深圳的国家生物产业基地也正是位于坪山,坪山也将生物医药产业当做重点发展的方向之一。

生物产业基地

从地图上可以看到,随着未来的深圳地铁 14 号线投入运营,坪山与福田的距离将会进一步拉近。而在 14 号线周围则有很多的生物医药公司,医疗器械公司等高科技企业,也吸引了不少生物专业和医疗方向的工作人员前来工作。

生物产业基地的发展历程

坪山的三大重点产业包括生物医药,新一代信息技术,新能源汽车产业。生物医药包括高端医疗器械,生物制药,基因诊断,生物医药工程,现代中药,化学制药,医疗器械等产业;新一代信息技术包括人工智能,新型显示,高端设备等产业;新能源汽车包括技术创新,关键材料及核心零部件,高端整车等领域。

规划模型示意图

从展厅中的规划模型中也可以看到,除了相关的企业提供就业岗位之外,也有人才保障房,文化聚落,公园等周边设施,进一步地完善了人们的日常生活需要。

坪山区的人才引进计划

创办企业自然离不开人才,除了一些保障房的建设,坪山区还启动了“聚龙引才”工程来推动人才汇聚坪山。“聚龙英才”需要围绕坪山区的重点产业,包括深圳市认定的 A,B,C 类人才都在补助的范围内。其中 C 类人才还包括 5 年 200 万元奖补和任内免租金 100 平人才房。坪山区的重点产业包括新能源(汽车),生物医药,新一代信息技术。也支持“聚龙英才”的创业创新团队去坪山发展。除此之外,还包括“聚龙名师”,“聚龙名医”等诸多优秀的人才项目。

坪山图书馆

大家书房

坪山文化聚落是坪山区大力建设的重大文化设施,包括剧场,美术馆,展览馆,文化馆,图书馆,书城等多种文化功能,是一个综合建筑群体。图书馆除了提供日常的读书,借阅书籍等功能之外,还有一个“大家书房”,在今年年初的时候有不少的名家学者会来到坪山图书馆给市民带来人生哲思课。

商品房

在坪山的文化聚落附近,周边设施也日渐完善,不仅包括超市,银行,快餐店,还包括坪山实验学校,坪山区中心公园。人们除了工作之外,日常生活和居家氛围也能够得到必要的保障。

公园

本次的​“新加坡国立大学及南洋理工大学博士坪山行”不仅让大家认识了坪山的产业布局,也了解了坪山的人才计划,还知晓了坪山的文化聚落。希望以后还有机会能够进一步地来熟悉坪山,最后也感谢大家对这次活动的组织和筹备工作。

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

校庆对于每所大学都是非常重要的一件事情,它不仅标志着大学的诞生,也可以反映学校的发展历史。今年正值新加坡国立大学成立 115 周年,也是笔者毕业五周年之际,于是提笔写下此文回忆当年参加毕业典礼的往事。

新加坡国立大学

新加坡国立大学(National University of Singapore,简写为 NUS)是新加坡的第一所高等学府,是亚洲的顶级名校,其前身是一所成立于 1905 年的海峡殖民地医学学校,距今已经有 115 年的历史。目前,新加坡国立大学已经是拥有多个学院的综合性研究大学,其中包括理学院,工学院,商学院,医学院等重要学院。在泰晤士报的排名和 QS 世界大学排名上,NUS 一直在亚洲甚至世界上名列前茅。

NUS 的官网

在 NUS 的官网上,也换成了 115 校庆的页面,同时右上角的标语 “SHAPING THE FUTURE” 引入眼帘。其标语的中文含义大致就是形塑未来。并且可以在 NUS 的官网上看到校长寄语。

校长寄语

其大致的中文意思就是:

打开时光的卷轴,走进新加坡国立大学的峥嵘岁月,重温那些为国家为社会作出的卓著贡献。这一刻,我们深受鼓舞,我们倍感振奋!百余年间,新国大的优秀传统和创新精神一路引领着我们,追求卓越,精益求精,不断取得新的成就。

近年来,我们不断提升教学质量,增强科研能力,探索创业培育,构建一流的教育管理体系。未来我们将继续提供高质量的变革性教育,开展前沿和具有实际应用的科学研究,发扬传承创新精神,建设一个更美好的新加坡和世界。

新加坡国立大学始终致力于塑造未来。欢迎你与我们一起秉承新国大的创新精神,共同实现新国大立志成为全球最具创新力大学之一的愿望。

——陈永财教授

新加坡国立大学校长

NUS 的里程碑

除此之外,在 NUS 的 115 周年的官网上也可以看到近些年来 NUS 在科学研究和教育领域所取得的成绩和里程碑。无论是 Technology(科技),Health(健康),Enterprise(企业),Community(社区),Sustainability(可持续发展)方面,新加坡国立大学都取得了非常不错的成绩。

NUS 2020 年的毕业典礼

由于今年的新冠病毒猖獗,3 月份的 NUS Open Day 也从线下转成了线上,开启了史上第一次的 NUS E-Open House。在 2020 年的 5 月份至 6 月份,新加坡也开启了封城的策略,鼓励民众戴口罩少出行。往年的 7 月份,都是学生们参加毕业典礼的时候。但是今年为了防控疫情的需要,毕业典礼将会从 2020 年 7 月份延期至 2021 年的 1 月份延期半年,具体时间等待通知。

NUS 2015 年的毕业典礼

当年笔者是在 2015 年从 新加坡国立大学毕业的,当年毕业的时候学生签证恰好到期,最终还是通过办理旅游签证的方式进入新加坡。当时的毕业典礼是在 University Cultural Centre 举行,时间跨度从 2015 年 7 月 6 日 – 24 日。每个学生参加毕业典礼的时间是根据学位,院系等情况来进行安排的,有可能被安排在早上,下午,或者晚上。

2015 年的小狮子

在参加毕业典礼的时候,学生们都必须穿上相应的衣服,然后上台领取学位证书和成绩单。在 Universal Cultural Centre 外面,会有各种各样的道具以供毕业生们拍照。

NUS 百年校庆纪念邮票

在 2005 年,恰好是新加坡国立大学百年校庆的日子,其百年校庆的口号是 Unleashing Minds, Transforming Lives(思想任驰骋,生活显姿彩)。为了庆祝百年校庆,新加坡国立大学和新加坡邮政(Singapore Post)在 2005 年 4 月 20 日联合发行了纪念邮票。不过,当年的笔者才刚刚进入大学,从来没有想过会在五年之后进入 NUS 攻读博士学位,有的时候人生总是那么的奇妙。

毕业典礼结束

在参加毕业典礼的时候,学生需要穿着学位服,而学位服的获得方式有两种,一是通过购买的方式,二是通过租赁的方式。每个学生参加毕业典礼的时候,都会获得两张门票,也就是说可以带自己的亲戚朋友去参加毕业典礼。学校的礼堂分两层,毕业的学生需要穿着相应的毕业服坐在第一层,然后在轮到自己的时候上台领取毕业证,再返回自己的位置。而自己的亲戚朋友可以坐在二楼,从高处观看所有的学生参加毕业典礼。而颁发毕业证的时候,都是校长亲自颁发,一般情况下这是普通学生能够接触到校长的唯一机会。

博士毕业照(从左到右:赵博士,王博士,郦博士,蔡博士,徐博士,张博士)

笔者当年参加毕业典礼的时候是 2015 年 7 月 9 日,当天下午就与众多博士生一起在 NUS 的校园里面合影留念,毕竟博士毕业是人生的一件大事。上图都是当年在 NUS 已经取得博士学位的同学们,里面绝大部分已经走向了学术科研的道路,只有少数人投身进入了工业界。

毕业典礼日程表
与校长近距离接触

当时笔者在参加毕业典礼的时候,拿到一张毕业典礼的日程安排,时间是在 2015 年 7 月 9 日的晚上 8:00 开始,其中包括领导讲话,优秀毕业生致辞,颁发学位证书等环节。到了颁发学位证书,需要学生们上台的时候,学生们要先在旁边按照既定顺序站好,然后逐一上台领取毕业证并且与校长合影。而在每个学生领取毕业证书的时候,屏幕上都会呈现出文凭的名称和学生的名字。

白天的 S17 天桥
晚上的 S17 天桥

新加坡是一个降雨非常频繁的国家,第一年在 Science Library 学习的时候,大约在 11,12 月份雨季,每天到了下午 4:00 的时候,笔者在图书馆内就会发现外面在下雨,而且下雨的时间非常准时。总让人觉得新加坡是一个定时降雨的国家。正因为如此,在 NUS 总有各种各样的雨棚,可以让教职工和学生不需要淋雨从一栋楼走到另一栋楼,或者走向车站。从 NUS 数学系的 S17 到 S16 也是存在一条过街天桥的,当年每次思考数学遇到瓶颈的时候,就喜欢来这里透气,看一看外面的风景换一换思绪。

S17 的 4 楼办公室

在离开新加坡的前一个晚上(2015年7月17日晚上),笔者独自一人坐在 S17 的 4 楼会议室里,回想着这几年来新加坡生活的点点滴滴。从刚下飞机到进入 NUS 学习,从 Block 602 到 PGPR 再到 UTown,从通过博士资格考试到最终拿到博士学位。虽然经历了五年时间,但是每次回想起来却感觉是昨天的故事。正如歌词里唱的“有过多少往事,仿佛就在昨天;有过多少朋友,仿佛还在身边”。(未完待续)

2019年厦门游记

在公司这几年,每年都有外出进行团队建设的机会。所谓团队建设,就是一个部门或者跨部门的小伙伴们会组织到一起,由团长组织报名一个旅行团,大家可以在旅游期间交流工作心得与业务。笔者刚进公司的时候,错过了第一年的团队建设,但在后续的几年中每年都跟着团队一起出行,去过的地点包括台湾(2 次),老挝(1 次),厦门(1 次)。之前的游记均已按时写完,由于今年在疫情期间也不知道有没有出行的机会,于是写篇游记来回忆一下去年的厦门之行。

厦门一直是国内的旅游城市,其知名的景点非常多,包括南普陀寺,厦门大学,曾厝垵,中山路步行街,鼓浪屿等等。任何一个景点都足以让游客玩上大半天到一天的时间。整个团建的时间不算长,只有 3 天的时间,于是正好把这些景点都走一遍,也算是在忙碌的工作之余丰富一下大家的日常生活。

厦门景色

从深圳到厦门有很多出行方法,较为方便的还是从深圳北站坐高铁出发,3 小时 45 分钟左右就可以到厦门北站。高铁沿途游客可以欣赏周边的风景,也可以小憩一会补充睡眠,以便在下车之后有充足的体力进行游玩。为了能够有更多的时间进行游玩,旅行社安排大家乘坐早上的高铁,这样的话大家就可以在厦门吃午餐。因为深圳是一线大城市,每个人居住的地方也不太一样,于是旅行社就提供了两种方案供大家选择。一是住在公司附近的人可以选择赶到公司,早晨 6:30 乘坐大巴前往深圳北站;二是自行乘坐交通工具在 7: 40 之前到达深圳北站。不管怎么乘坐,都需要在规定的时间内赶到深圳北站,以免错过了行程。

深圳北站-厦门北站

本次厦门之行的人数有 28 人,也算是一个人数较多的旅行团。按照公司的标准,貌似成团人数少于 15 人就不能够出行,这次的厦门之行成团还算顺利,可能是由于扫尾团的缘故,就凑集了不少的同事一起出行。

在 2019 年 9 月 25 日这天,厦门之行正式开始。到达厦门之后第一个去的景点就是南普陀寺,它是国内的佛教寺院,烧香拜佛的人特别多。而南普陀寺的后山就是五老山,是厦门的著名风景区之一,来南普陀寺如果没有太多的事情的话,其实可以考虑从寺庙爬上五老山体验一下厦门的风景。

五老峰半山腰

南普陀寺的旁边就是厦门大学,但厦门大学是需要游客的身份证等证件才能够顺利进去的,并且其开放的时间比较短,目前应该是只有中午才能够开放的。但这也需要根据疫情的严重程度而定,去年还算会开放给游客,但是今年则不一定了,毕竟今年并不是一个太平年。

厦门大学

厦门大学旁边除了南普陀寺之外,还有一个著名的景点,那就是胡里山炮台。胡里山炮台始建于 1894 年光绪年间,里面分成站坪区,兵营区,后山区等部分。最著名的应该是有一门德国产的大炮,这应该是胡里山炮台最值得看的景点之一了。

胡里山炮台

从胡里山炮台出来,就可以走到海边,在海边除了沙滩之外,还有不少小贩在贩卖烧烤。如果有时间的话,在海边吃着烧烤,喝着啤酒也不失为一桩美事。

胡里山炮台背后的沙滩

之前去台湾旅游的时候,笔者每逢夜晚就会去台湾的夜市进行游玩,里面吃的玩的应有尽有。同样,厦门的夜市也是厦门的特色之一。而较为繁华的地点就是中山路步行街了,在这里不仅可以置办各种伴手礼带回去给同事,也可以购买一些礼物送给家人。如果实在是不知道买啥的话,就在步行街闲逛也是不错的选择。除了礼品店之外,各种各样的小吃店和果汁店也是逛街的必备。

中山路步行街

由于是跟着旅行团出行,于是住宿的条件其实还算不错,第一天(2019-09-25)住在岛内的一家酒店,而第二天(2019-09-26)则是全天都待在鼓浪屿,包括最后的住宿都在岛上。

第一晚的住宿

来了厦门旅游,不能错过的旅游景点自然就是鼓浪屿。鼓浪屿位于厦门的西南侧,这里汇聚了菽庄花园,日光岩,皓月园等著名的景点,在岛内沿途也有着很多不错的小吃。如果时间充裕的话,在岛内住一天体验一下生活也是不错的选择。

菽庄花园
日光岩

鼓浪屿岛上也有不少网红店,包括张三疯猫式奶茶,土耳其小哥的冰淇淋。有兴致的朋友一定不能够错过这些店。

冰淇淋小哥

鼓浪屿的夜晚与白天有着明显的区别,白天人声鼎沸,到处都是各种游客。但是到了夜晚则会安静下来,四处都只有海浪的声音,有很多店也会随着游客的离开而开始休息。

夜晚的鼓浪屿

到了第三天(2019-09-27),则是开始返程的日子,为了赶上下午的高铁,当天的行程就只安排了早上的曾厝垵。曾厝垵其实是一个小渔村,现在则成为了一个文化创意村,里面在卖各种各样的文艺物品和小吃。其实曾厝垵与台湾的九份山城并没有太多的区别,玩法和内容都差不了多少。

曾厝垵

可能是这次的行程已经花了足够的费用,于是这次的团建并没有安排购物的环节,饮食各方面也达到了之前所有团建的最佳水平。在刚进公司的时候也在十一期间去过厦门,这次重返厦门也算别有一番风味吧。

高铁返程

高考那些事

2020 年是一个不普通的年份,由于疫情的原因,各行各业都受到了巨大的影响,高考也因此从 6 月延期至 7 月。但在今年的高考前夕,却出现了一系列与高考有关的新闻,先是有艺人在直播中自爆在高考中获得不当利益,后又爆出了 XX 省份有一连串高考顶替的现象出现。

高考

自 1977 年 9 月高考恢复以来,在中国高考一直被誉为最公平的考试,考生们需要靠自身的考试成绩来决定自己未来的道路和发展方向。考试中每一分的差距都会给自己和家庭带来完全不同的人生道路。虽然随着社会的发展,城市的进步,各大城市的考生会有很多求学的机会,不管是通过竞赛保送,自主招生,出国留学,都可以帮助大城市的考生们进入心仪的大学。但是对于很多中小城镇的考生而言,高考则是少数几次可以改变自己人生的机会。不少考生会因为自身的成绩而与心仪的学校失之交臂,但是更加让人痛心的则是这段时间报道出来的一系列高考顶替事件。

所谓高考顶替事件,就是有人通过一些手段,将本来不属于自己的高考成绩和高校录取通知据为己有,顶替其他考生去读大学和走向职场。被顶替者通过高考获得的鲤鱼跃龙门机会则化为乌有,本来应该在大学读书的机会就永远再也不会出现。在当年各种通信尚不发达的年代,家庭条件不佳的被顶替者们可能根本就不知道这件事情,直到事后的十几年才逐渐爆出这些让人感到震惊的事情。

高考录取率

在 2011 年,南方周末的记者写了一篇文章《走到只剩下我一个》,该文撰写了一个从农村走出的大学生的一些人生经历,通过小学,中学,大学的求学之路,反映了一位农村大学生求学之路的艰辛和困苦。从文章中摘选其中的几段话如下:

等到小学毕业时,我所在的班级就只有三十三个人了,同村的同学就只有一个男孩子。初小那些同学,除了两三个留级,其余没有读书了。邻近几个村情况也都一样,辍学成为家常便饭,纵然是集镇上条件好的家庭也有很多人辍学,他们常是因为调皮被老师体罚,跑回家就再也不敢到学校了。

等到上高中时,整个年级就只有一个人是我小学的同学。对于很多家长来说,农村上学希望太过渺茫了,不如让孩子打工攒钱盖房子,盖好房子娶妻生子则是最实惠的选择。从小到大,我的那些同学们总会逐渐消失于上学的途中,出现在田间地头或者打工者拥挤的火车上。

今年我大学毕业,回想自己一路来的经历,如果说把我和同伴们所经历的教育过程比喻为一次探险,我更愿意相信自己只是一个走到最后的幸存者。

其实这样的事情并不罕见,在很多不发达的地区,对于孩子们而言,读书也许就是唯一改变命运的机会,否则就只能够去大城市打零工谋生。虽然也有一些学历普通的人能够通过创业的方式改变自身和家庭的命运,但是从整体来看,读书能够改变人生的概率其实还是比其他方式大许多的。

大学毕业前夕,我回家参加初小同学的婚礼,听到了一个好消息,一个坏消息。

好消息是,教过我们的大伯今年要退休了,这位有着43年教龄的乡村教师,回想职业生涯最得意的是,这辈子总算培养出一个大学生,也就是我。他的许多同事,穷尽一生也没教出一个。

坏消息是,村小班上的5个男生,如今就剩下我们俩了。其他三人辍学后到煤矿打工,被埋在了矿下面,回到村里的只有他们的骨灰盒。

每个考生的家庭条件是不一样的,家庭条件好的考生可以通过留学,自主招生,竞赛保送等很多很多的方式来进入高等院校。但是对于普通家庭条件的学生而言,通过读书参加高考则是少数几次可以改变自身命运的机会。一般情况下,人都会经历几个阶段:

  1. 婴幼儿阶段;
  2. 小学阶段;
  3. 中学阶段;
  4. 大学阶段;
  5. 职场阶段。
选择

在人生的早期,其实每个人没有太多的选择,毕竟那个时候会受到原生家庭的影响和限制。但是到了 18 岁左右,通过高考这一个公平的考试,每个人都拥有改变自己人生的机会。参加高考,每个人就可以离开原有的环境,继续提升人生的高度,就可以拥有更多的发展机会。如果高考这个考试不再公平,那么通过求学而改变人生的这条路也被堵死了,那么很多家庭条件欠佳的学生就再也没有上升的通道了。

记得当年在高考的时候,在进入考场的时候,每个学生都需要检查身份证,准考证,照片,是否携带电子设备。在中国,高考应该属于非常严格的考试之一。笔者身边很多同学也在高考之后进入了理想的院校进行求学之路,毕业之后也是在各自的工作岗位上发光发热。

今年在高考前夕则爆出了各种各样的事情,无论是艺人自爆在高考阶段通过不正当手段获利,还是 XX 省份的多起高考顶替事件,都会让人觉得高考是有一定的灰色地带的。在这些灰色地带,则是通过损害正常考生的合法权益而让靠各种手段投机取巧的考试获得了本不属于自己的利益。通过这些不正当的手段,考生们被迫改变了自己的命运,人生的发展之路无奈地被改变了。对于家庭条件欠佳的考生们而言,在人生发展的重要阶段出现了顶替事件,这样的损失恐怕已经不能够来用金钱衡量了。

人生之路

在人生的道路上,有些事一旦错过了就真的错过了。越走越远,根本不给你重来的机会。

新手宝爸爸和宝妈妈的待产包清单

作为新手宝爸爸和宝妈妈,在准备待产包的时候总是会觉得手足无措,一直在网上搜索各种资料,看各种资料的分析和讲解。在努力了一段时间之后,把整理好的资料写出来分享给大家。由于地域和医院不同的问题,可能会导致有一些细节不太一致,希望大家谅解。既然是新手,那么在整理的过程中难免会出现一些错误,希望大家及时指正。

蜡笔小新的婴儿时期

入院/就诊的时刻

按照医生的嘱咐,根据入院通知单的时间来入院。或者出现以下情况的时候来医院待诊等医生检查后确认是否入院。

  • 一胎规律宫缩:宫缩持续 30 秒以上,间隔 5-6 分钟;
  • 二胎不规律宫缩;
  • 胎膜破裂;
  • 胎动明显增多或者减少;
  • 异常阴道出血。

入院必知

入院的话,就需要根据医院的要求要准备相应的材料。除了在孕期日常需要按照流程来进行必要的产检之外,在孕期末尾最好提前准备好入院的材料,做到有备无患,不至于到了最后时刻手忙脚乱而不知所措。

孕期资料的准备

  • 深圳市的母子保健手册
  • 孕期所有检验报告单
  • 提前准备好以下三份报告单:B 超单(最新的一次),乙肝结果(9 – 13 周),GBS 结果(35 – 37 周)。

身份证件的准备

  • 身份证;
  • 社保卡;
  • 计划生育证明;
  • 结婚证;
  • 户口本;
  • 资金:因人而异,多退少补,可以使用现金,银行卡/信用卡,微信/支付宝
  • 银行卡/信用卡(出院退费约 7 个工作日返还);微信/支付宝(出院退费约 25 个工作日)。

新生儿落地费需自费,入院押金因人而异,多退少补。

陪护制度

不同的医院应该有着不太一样的陪护制度,这里的陪护制度仅供参考。就以即将入院的医院为例,会需要有以下几个要求:

  • 产妇入院之后不可私自外出,24 小时只能留一名陪护人员;
  • 探视时间可以有两名陪护人员,中午 11:30 – 12:30,晚上 18:00 – 20:00;
  • 查房时间:早上 8:30 – 10:00,陪护人员需要离开病房;
  • 禁止 12 岁以下的儿童进入病房;
  • 新型冠状病毒疫情期间:陪护人员需要戴口罩(自备口罩),产妇和陪护人员都需要做核酸检测(价格根据每个城市的情况来定),因此在办理入院手续的时候,就需要开核酸检测单,以便后续能够进行陪护;
  • 就餐方法:病区会提供冰箱,微波炉等常用电器,根据要求来使用即可。陪护人员可以自行通过外卖平台来订餐,月子餐需要看医院食堂是否有,如果有的话直接购买会方便不少。

宝妈妈的用品

通常来说,医院会告知妈妈们需要提前准备什么东西,就以即将入住的医院为例,医生们写了以下几样东西来提醒妈妈们:

  • 妈妈换洗衣服(2 – 3 套);
  • 洗漱用品;
  • 卫生用品:产褥垫(至少 20 张 60 * 90 CM),卫生巾,纸巾;
  • 防滑拖鞋(很重要);
  • 电动吸奶器(对于早产特别重要);
  • 眼罩,耳塞(建议准备,以便更好地休息)。
野原美伢准备待产包

以上是医院建议妈妈们需要带的最简化版本的待产包,如果想要舒适一点的话,其实可以根据各种资料持续准备更多的物品。一般来说,各种月子中心和网上的资料一般会提供更多的待产包资料。待产包可以分成以下几个部分:

  1. 卫生用品;
  2. 哺乳用品;
  3. 食物和餐具;
  4. 衣物类;
  5. 洗浴用品;

卫生用品包括:

  • 产褥垫:生产时用,至少 20 张 60 * 90 CM;
  • 卫生巾:可以选择产妇专用的卫生巾;
  • 成人纸尿裤:刚生产完的时候用,比较省事;
  • 刀纸;
  • 普通纸巾;
  • 一次性内裤:产后用比较方便;
  • 一次性马桶垫;
  • 口罩;
  • 剖腹产伤口贴(剖腹产);
  • 会阴冷敷垫(顺产);
  • 会阴坐垫(顺产有侧切);

哺乳用品包括:

  • 吸奶器;
  • 储奶袋;
  • 防溢乳垫;
  • 乳头防裂膏;
  • 乳头保护罩;

食物和餐具包括:

  • 巧克力和其他零食:顺产时补充体力;
  • 水或饮料:可以选择红牛/红枣桂圆汤,顺产时补充体力;
  • 吸管杯;
  • 弯头吸管;
  • 饭盒,筷子,勺子:需要买可以在微波炉使用的款式;
  • 洗洁精,洗碗布;
  • 水果刀,削皮器;

衣物类包括:

  • 换洗衣服(睡衣);
  • 哺乳胸衣;
  • 纯棉汗巾(长条);
  • 包脚拖鞋,防滑拖鞋;
  • 袜子;
  • 收腹带;
  • 月子帽;
  • 外套;
  • 产妇外出服;

洗浴用品包括:

  • 脸盆 & 洗脚盆等;
  • 会阴冲洗喷壶;
  • 免洗洗手液;
  • 梳子,镜子;
  • 防滑拖鞋:不要带一次性拖鞋,不防滑;
  • 毛巾,刷牙杯,牙刷,牙膏,漱口杯;
  • 洗面奶,护肤品(爽肤水,眼霜,乳液,防晒霜,唇膏);

杂物类包括:

  • 记事本,笔;
  • 手机,数据线,充电宝,充电器;

宝宝的用品

与妈妈的入院用品一样,医院同样会告知妈妈们需要提前准备宝宝的用品。医生们建议妈妈们准备好以下几样:

  • 宝宝换洗衣物,包被(2 -3 套);
  • 普通脸盆(沐浴用,约 40 * 40 CM);
  • 小毛巾 2 条,湿纸巾若干;
  • 纸尿裤若干;
  • 喂杯(自备,不建议用奶瓶)。
野原向日葵

同样的,宝宝的待产包也可以分成以下几个部分:

  1. 婴儿衣物;
  2. 卫生用品;
  3. 哺育用品;
  4. 洗浴用品;

婴儿衣物包括:

  • 和尚衣或者爬衣;
  • 肚围;
  • 肚脐贴/护脐贴:用来保护肚脐,洗澡必备;
  • 婴儿帽:出院的时候给宝宝带上帽子;
  • 袜子;
  • 包被:宝宝洗澡的时候或者出院时会用到;
  • 口水巾;
  • 纱布浴巾:宝宝洗澡时用,夏天也可以当做小杯子。
  • 纱布手帕:洗脸/洗澡用;

卫生用品包括:

  • 纸尿裤:准备 100 片左右,考虑透气性和吸水性;
  • 隔尿垫:可以准备反复使用/一次性使用的两种款式的;
  • 湿纸巾;
  • 棉柔巾;
  • 云柔巾;
  • 棉花棒;
  • 医用酒精:给宝宝消毒肚脐;

哺育用品包括:

  • 新生儿喂杯;
  • 软头勺;
  • 奶粉,奶瓶,奶嘴,奶瓶刷,奶瓶夹,奶瓶嘴清洁剂(禁止携带);
  • 蒸汽消毒锅:用来煮宝宝用的东西;
  • 暖奶器;
  • 恒温壶:冲泡奶粉用;
  • 小夜灯;

洗浴用品包括:

  • 脸盆,浴盆,小脸盆;
  • 水温计:小宝宝洗澡时量水温用;
  • 宝宝衣架;
  • 沐浴露,洗发液;
  • 婴儿专用指甲钳;
  • 液体爽身粉:预防尿布疹;
  • 润肤乳;
  • 护臀膏:改善尿布疹;
  • 抚触油;
  • 洗衣液:需要买婴儿专用的;

寝具和其他包括:

  • 婴儿床;
  • 耳温枪;
  • 婴儿背带;
  • 婴儿车;
  • 婴儿安抚玩具;
野原一家

除了待产包的准备之外,其实还有很多东西和资料需要查看,包括月子中心/月嫂,计划生育证明的办理,医院的定时产检等各种必须要提前准备的环节。后续将会持续完善待产包的清单和其他资料,供大家参考和讨论。

你真的适合当自由职业者吗?

你真的适合当自由职业者吗?

对于绝大多数人而言,大家基本上都是在公司,企业或者政府部门工作,借助平台和个人的力量来获得相应的报酬,那么一直从事这样的工作很可能会让人觉得日复一日,没有激情,创意不足。因此,就会有人向往一种自由自在的工作状态,看着别人发表旅游文章同时希望自己也能够过上说走就走的生活,看着别人开咖啡店的时候也想着自己啥时候也去开一个咖啡店。总之,最终要做到自己当自己的主人,不再为了一些工作上的琐碎事情所搅扰。

通常来说,自由职业者(self-employed)指的是自己雇佣自己,不属于任何组织,在自己的指导下找合适的项目做,通过自己的能力和付出来获取相应的报酬。如果要找到合适自己的项目,那么首先就要知道自己所擅长的领域是什么。有的人可能觉得自己特别擅长写作,可以靠自媒体写作来养活自己;有的人觉得自己擅长烹饪,因此可以通过开一家小店来盈利;有的人觉得自己讲课水平优秀,可以通过开一个培训班来实现财富自由。

说到这里,笔者就想到曾经在知乎上看到过一个问题,“普通人和专业运动员的差距有多大?”其中有一句话给我留下了深刻的印象,那就是“永远不要用你的业余爱好来挑战别人吃饭的本事”。意思就是你觉得你所擅长的东西其实在专业选手面前其实根本不值得一提。你觉得你自己擅长写作,但是你跟中文系,新闻转播专业的同学比起来怎么样?你觉得你擅长烹饪,但是你就能够保证做饭的水平能够超越专业厨师吗?你觉得你能够开培训班,但是你能够比专业的培训机构抢到更多的生源吗?结合自己的经历,之前也有不少的人说自己对数学有着浓厚的兴趣,特别想去攻读一个数学PHD学位,但是目前情况是只学过微积分,希望请教一下数学本科的相关书籍和学习步骤。这种时候只要向他推荐一本 Rudin 的《数学分析原理》,基本上也就没有然后了。因此,一个人觉得自己非常擅长的某个领域很可能只是一种错觉,因为在职业选手面前实在是不堪一击。

在公司的时候,基本上还不太需要担心自己没有事情可以做,按部就班地工作就能够获得相应的报酬。但是一旦成为了自由职业者,有很多的事情就必须要自己一个人去面对,例如如何选择合适的项目,如何与客户沟通,如何保证项目的合理进展,如何保证合同的顺利签署等等,所有繁杂的事情都压在了一个人的身上。在这种时候,自由职业者就必须要向市场证明自己的价值,否则很可能连一份合同都拿不到,甚至连自己的赚钱系统都无法顺利的搭建。最后很可能证明的事情就是,你之前觉得你所擅长的事情,其实在市场上根本一文不值。

就算有了自己的赚钱渠道,例如自媒体写作,开咖啡店等。怎么安排自己的工作时间就是另外一个问题了。读过PHD的人都知道,除了那些整天要去实验室做实验的PHD们,理论研究的PHD们时间一般来说是相对自由的。在自由的时间里,有多少PHD是做了有价值的事情呢?我想大部分可能还是陷入拖延症的漩涡里不能够自拔吧。每天早起就是看电视,中午玩游戏,下午稍微看看论文,然后晚上就外出吃饭聚餐。除此之外,如果家人或者朋友觉得你是自由职业者,都会觉得你十分的悠闲,时不时的可能让你去拿个快递,寄封信件,然后陪他们出去聚餐等。这样的话,其实每天的工作时间就会十分的有限,工作效率也会大打折扣。因此,即使有了工作渠道,能否制定合适的工作计划和时间安排,也是自由职业者必须面对的问题。

在读书或者工作的时候,都会有人觉得迷茫,觉得这份工作或者继续读书没有价值。在从事自由职业的时候,这种迷茫与彷徨的感觉可能会更加强烈。例如,上个月没怎么努力就赚到了5000块钱,但是这个月努力了很久,却只收到了3000块。不稳定性和不确定性很容易让一个人的内心产生迷茫与彷徨,而且这种时候身边的人也不会理解你,因为他们很可能不是自由职业者。要解决这种问题其实只能够靠自己或者进入一个自由职业者的圈子里面,看一看别人是怎么解决这类问题的。但是,即使别人告诉你他的经验,也不见得对你有多大的帮助。对于时间相对自由的工作岗位,例如拿到 tenure 的大学教授,工作不是很繁忙的职员。在保证工作稳定的情况下,可以在工作之余尝试一下自己的兴趣爱好能否挣到钱,是否在市场上具有一定的竞争力。这样做的话能够尽可能的降低自己的风险。

综上所述,要判断一个人是否适合自由职业,首先要看以下几点:

  1. 自己拥有的技能是否真的有市场,能否给自己真正带来收入;
  2. 对自己的要求是否高,在日常的生活中自律性是否足够强;
  3. 对自己的未来是否有较为清晰的规划,是否能够扛住短期没有收入的风险。

如果不清楚以上几点,那么就不适合当自由职业者;如果能够清楚的知道以上几点,可能就具备了自由职业者的基本素质。

张戎 数学人生 2017-04-04

大数据领域的近似分析方法(一)

基数估算问题

基数估算(Cardinality Estimation),也称为 count-distinct problem,一直是大数据领域的重要问题之一。顾名思义,基数估算就是为了估算在一批数据中,它的不重复元素有多少个。

这个问题的应用场景十分广泛。例如:对于 Google 主页面而言,同一个账户可能会访问 Google 主页面多次。于是,在诸多的访问流水中,如何计算出 Google 主页面每天被多少个不同的账户访问过就是一个重要的问题。那么对于 Google 这种访问量巨大的网页而言,其实统计出有十亿 的访问量或者十亿零十万的访问量其实是没有太多的区别的,因此,在这种业务场景下,为了节省成本,其实可以只计算出一个大概的值,而没有必要计算出精准的值。

从数学上来说,基数估计这个问题的详细描述是:对于一个数据流 x_{1},x_{2}, \cdots, x_{s} 而言,它可能存在重复的元素,用 n 来表示这个数据流的不同元素的个数,i.e. n=|\{x_{1},\cdots,x_{s}\}|, 并且这个集合可以表示为 \{e_{1},\cdots,e_{n}\}. 目标是:使用 m 这个量级的存储单位,可以得到 n 的估计值 \hat{n}, 其中 m\ll n, 并且估计值 \hat{n} 和实际值 n 的误差是可以控制的。

如果是想得到精确的基数,可以使用字典(dictionary)这一个数据结构。对于新来的元素,可以查看它是否属于这个字典;如果属于这个字典,则整体计数保持不变;如果不属于这个字典,则先把这个元素添加进字典,然后把整体计数增加一。当遍历了这个数据流之后,得到的整体计数就是这个数据流的基数了。

cardinality_estimation_naive_solution
Naive Solution

这种算法虽然精准度很高,但是使用的空间复杂度却很高。那么是否存在一些近似的方法,可以估算出数据流的基数呢?其实,在近几十年,不少的学者都提出了很多基数估算的方法,包括 LogLog,HyperLogLog,MinCount 等等。下面将会简要的介绍一下这些方法。

cardinality_estimation_survey_table_1
基数估计的部分算法

HyperLogLog 的理论介绍

HyperLogLog 是大数据基数统计中的常见方法,无论是 Redis,Spark 还是 Flink 都提供了这个功能,其目的就是在一定的误差范围内,用最小的空间复杂度来估算一个数据流的基数。

Spark
Spark 的 Logo

HyperLogLog 算法简要思路是通过一个 hash 函数把数据流 \mathcal{D} 映射到 \{0,1\}^{\infty}, 也就是说用二进制来表示数据流中的元素。每一个数据流中的元素 x 都对应着一个 0,1 序列。

在介绍 HyperLogLog 之前,我们可以考虑这个实际的场景。在一个抛硬币的场景下,假设硬币的正面对应着 1, 硬币的反面对应着 0; 依次扔出 0,0,0,1 的概率是多少?通过概率计算可以得到是这个概率是 1/2^{4}=1/16. 那么相当于平均需要扔 16 次,才会获得 0001 这个序列。反之,如果出现了 0001 这个序列,说明起码抛了 16 次硬币。

考虑这样一个 0,1 序列,w=w_{1}w_{2}\cdots, w_{i}\in\{0,1\}, i\geq 1,k 表示第一个 1 出现的位置。也就是说 w_{1}=w_{2}=\cdots=w_{k-1}=0. 那么在扔硬币的场景下,出现这样的序列平均至少需要扔 2^{k} 次。对于一批大量的随机的 0,1 序列, 可以根据第一个 1 出现的位置来估算这批 0,1 序列的个数。也就是说:

  • 出现序列 1XXXXX 意味着不重复的元素估计有 2^1=2 个;
  • 出现序列 01XXXX 意味着不重复的元素估计有 2^2=4 个;
  • 出现序列 001XXX 意味着不重复的元素估计有 2^3=8 个;
  • 出现序列 0001XX 意味着不重复的元素估计有 2^4=16 个。

于是,对于随机的 0,1 序列,可以定义函数 \rho(w_{1}w_{2}\cdots) 来表示 1 出现的第一个位置。i.e. \rho(1XXXXX)=1, \rho(01XXXX)=2, \rho(001XXX)=3, \rho(0001XX)=4.

简单来看,其实 HyperLogLog 的基数统计就使用了这样的思想,通过二进制中 1 出现的第一个位置来估算整体的数量。首先把这批元素通过 hash 函数处理成 0,1 序列,然后把这批 0,1 序列都放入 1 个桶,然后通过计算这个桶里面所有 0,1 序列的 \rho(w) 的最大值,就可以预估出整体的数量。i.e. M=\max_{w}\rho(w), 整体的数量预估是 2^{M}=2^{\max_{w}\rho(w)}.

  • 1 个桶:计算出 M=\max_{w}\rho(w), 预估不重复的元素个数是 2^{M}.

那么如果只有 1 个桶,其实是会存在一定的偏差的。为了解决这个问题,一种想法就是重复以上操作,从 hash 函数开始处理成 0,1 序列,每次都把这批 0,1 序列放入 1 个桶,每次获得一个 M 值。总共操作 m 次,第 j 次操作得到的值记为 M_{j}; 于是就可以对 \{M_{1},\cdots,M_{m}\} 进行均值处理,可以使用以下方法:

  • 算术平均数:M=\sum_{j=1}^{m}M_{j};
  • 几何平均数:M=\sqrt[m]{M_{1}\cdots M_{m}};
  • 调和平均数:M=m/\sum_{j=1}^{m}M_{j}^{-1};
  • 中位数:M = median\{M_{1},\cdots,M_{m}\}.

从而可以预估整体的数量为 2^{M}.

如果按照以上的步骤进行操作,就是需要重复进行多次操作,在足够多的情况下,其实是没有必要那么操作的。HyperLogLog 也是用了多个桶,但是用了一个截断的技巧。对于一个 0,1 序列 x=\cdots x_{b+2}x_{b+1}x_{b}\cdots x_{1}, HyperLogLog 从某个位置 b 开始,低位 x_{b}\cdots x_{1} 用于决定桶的序号,也就是第几个桶。桶的个数就是 m=2^{b}, 高位 \cdots x_{b+2}x_{b+1} 用于估算放在桶里面的元素个数。

每次都可以获得一个值,也就是桶里面第一次出现

  • 第 1 个桶:计算出 M_{1}=\max_{w}\rho(w), 预估元素个数 2^{M_{1}};
  • 第 2 个桶:计算出 M_{2}=\max_{w}\rho(w), 预估元素个数 2^{M_{2}};
  • ….
  • m 个桶:计算出 M_{m}=\max_{w}\rho(w), 预估元素个数 2^{M_{m}};

均值的计算,HyperLogLog 使用了调和平均数 m/\sum_{j=1}^{m}2^{-M_{j}} 来估算桶里面的元素个数,那么在有 m 个桶的情况下,整体的元素个数就可以估算为 E=m^{2}\cdot\bigg(\sum_{j=1}^{m}2^{-M_{j}}\bigg)^{-1}.

hyperloglog_algorithm_simple
原始的 HyperLogLog 算法

其中的 \alpha_{m}=\bigg(\int_{0}^{+\infty}\bigg(\log_{2}\bigg(\frac{2+u}{1+u}\bigg)\bigg)^{m}du\bigg)^{-1}.m=1 的时候,\int_{0}^{+\infty}\log_{2}\bigg(\frac{2+u}{1+u}\bigg)du 是发散的;当 m\geq 2 的时候,\int_{0}^{+\infty}\bigg(\log_{2}\bigg(\frac{2+u}{1+u}\bigg)\bigg)^{m}du 是收敛的。因此,在使用这个算法的时候最好放入 m\geq 2 个桶。

HyperLogLog 分成两块,第一块就是 add 模块,用于分桶和统计;

for v in M:
    set x := h(v);
    set j = 1 + <x(b),...,x(2),x(1)>;
    set w := x(b+1)x(b+2)...; 
    set M[j] := max(M[j], \rho(w));

在 HyperLogLog 算法中,对于集合 \mathcal{M} 中的每一个元素 v\in\mathcal{M}, 可以通过 hash 函数转换成一个 0,1 序列 h(v)=x=<\cdots x_{b+2}x_{b+1}x_{b}\cdots x_{1}>, 其中 x_{1} 表示二进制中的最低位,x_{2} 表示次低位。

然后可以通过 <x_{b}\cdots x_{1}>_{2} 来计算放在第 j 个桶,这里 j=1+<x_{b}\cdots x_{1}>_{2}. 同时将 x 的高位拿出来,也就是 x_{b+1}x_{b+2}\cdots, 计算这批序列的 \rho 函数的最大值,然后记为 M_{j}; 这一步也可以称为 merge 模块,也就是进行更新合并。

compute Z := (\sum_{j=1}^{m}2^{-M[j]})^{-1};

上一步就是 HyperLogLog 的另外一步,count 模块,于是,进一步估算出 E=\alpha_{m}m^{2}Z.

HyperLogLog 的空间复杂度特别低,大约是 O(m\log_{2}\log_{2}n) 这个量级的,其中 m 是桶的个数,n 是基数。HyperLogLog 的时间复杂度则是 O(n), 只需要遍历一遍所有元素即可得到最终结果。

  • 假设基数为 2^{k}, 二进制就是 k 位,1 最晚就会出现在第 k 个位置上;而 k 只需要 log_{2}k 个 bit 就能够存储;
  • 假设基数为 2^{64}, 二进制就是 64 位,1 最晚会出现在第 64 个位置上;而 64 需要 6 个 bit 就可以存储。

hyperloglog_algorithm_compare
算法对比

在论文中,论文 “Hyperloglog: the analysis of a near-optimal cardinality estimation algorithm” 的作者们针对各种算法进行了对比,其实 HyperLogLog 的空间复杂度是非常小的,并且误差也在可控的范围内。

hyperloglog_algorithm_theorem
HyperLogLog 的定理证明

在论文 “Hyperloglog: the analysis of a near-optimal cardinality estimation algorithm” 作者们得到上述定理,精准的给出了 HyperLogLog 算法的误差估计。因此,HyperLogLog 算法其实是有数学定理证明的。

以上只是获得了理论上的 HyperLogLog 算法,但是在实战中,其实是需要进行微调的。主要的微调部分是根据理论中的 E 值来进行调整。将 E 值进行调整的话,情况可以分成三种:

  • 小范围;
  • 中等范围;
  • 大范围;

hyperloglog_algorithm_practical
实战中的 HyperLogLog

Case(1):小范围

在小范围的情况下,E\leq 5m/2, 此时的基数相对于桶的数量而言不算太多,因此可能存在多个空桶,需要进行调整。

可以思考这样一个问题:假设有 m 个桶,同时有 n 个球,把这 n 个球随机往这 m 个桶里面扔,每个球只能够进入一个桶,那么空桶个数的期望是多少个?

Answer:假设 A_{1},\cdots,A_{m}m 个桶,

P(A_{j}=\emptyset)=\bigg(1-\frac{1}{m}\bigg)^{n} 表示桶 A_{j} 空的概率;

P(A_{j}=\emptyset \cap A_{k}=\emptyset)=\bigg(1-\frac{2}{m}\bigg)^{n} 表示桶 A_{j}, A_{k} 同时为空的概率(j\neq k);

那么空桶个数的期望就是 m\cdot\bigg(1-\frac{1}{m}\bigg)^{n},m,n 充分大的时候,约为 me^{-n/m} 个。

因此,在小范围的情况下,如果空桶的个数 V\neq 0, 那么可以更新为 m\ln(m/V). 事实上,可以通过 V=me^{-n/m} 解出 n=m\ln(m/V).

Case(2):中等范围

E 值不作调整。

Case(3):大范围

E>2^{32}/30, 那么更新为 E^{*}=-2^{32}\ln(1-E/2^{32}), 其中 E^{*}>E.

通过这样的方法,E^{*} 的误差大约在 \pm 1.04/\sqrt{m} 左右。

除此之外,\alpha_{m} 其实也可以用近似值来代替,毕竟如下公式的计算是有一定的成本的。

\alpha_{m}=\bigg(\int_{0}^{+\infty}\bigg(\log_{2}\bigg(\frac{2+u}{1+u}\bigg)\bigg)^{m}du\bigg)^{-1}.

近似的值为 \alpha_{16}=0.673, \alpha_{32}=0.697, \alpha_{64}=0.709, \alpha_{m}=0.7213/(1+1.079/m)m\geq 128.

HyperLogLog 的案例分析

有一个关于 HyperLogLog 的 demo 网站可以看到 HyperLogLog 的算法过程,其链接是 http://content.research.neustar.biz/blog/hll.html

在这个 demo 中,作者对比了 LogLog 和 HyperLogLog 的区别和运行过程,有助于大家理解整个过程。其中 LogLog 与 HyperLogLog 的区别就在与它们平均值的处理方式不一样,前者是使用算术平均值,后者是使用调和平均值。

  • LogLog\alpha_{m}\cdot m\cdot 2^{\sum_{j=1}^{m}M_{j}/m};
  • HyperLogLog\alpha_{m}\cdot m^{2}\cdot\bigg(\sum_{j=1}^{m}2^{-M[j]}\bigg)^{-1};

hyperloglog_demo_1
HyperLogLog Demo:初始化

hyperloglog_demo_2
第一个 hash 值:3852172429

3852172429 的二进制是:11100101100110110111110010001101,可以划分为100 110110111110010 001101。最后的六位是 001101,十进制就是 13,那么这个数字就会被放入第 13 个桶;而 110110111110010(从低位到高位看),\rho 函数的值就是 2;于是在第 13 个桶就会把 0 更新成 2。

hyperloglog_demo_3
第二个 hash 值:2545698499

2545698499 的二进制是 10010111101111000100011011000011,用同样的分析可得结论。

hyperloglog_demo_4
第三个 hash 值:2577699815

2577699815 的二进制是 10011001101001001001001111100111。

hyperloglog_demo_5
第四个 hash 值:775376803

775376803 的二进制是 101110001101110100111110100011。

hyperloglog_demo_6
运行结束

从以上的 Demo 运行过程可以看出,整个 HyperLogLog 的算法逻辑还是相对清晰的,其整个算法的亮点应该在于借助了抛硬币的场景,用抛硬币的结果来估算抛硬币的次数。

参考文献:

  1. Count-distinct Problem 的维基百科:https://en.wikipedia.org/wiki/Count-distinct_problem
  2. Heule, Stefan, Marc Nunkesser, and Alexander Hall. “HyperLogLog in practice: algorithmic engineering of a state of the art cardinality estimation algorithm.” Proceedings of the 16th International Conference on Extending Database Technology. 2013.
  3. Flajolet, Philippe, et al. “Hyperloglog: the analysis of a near-optimal cardinality estimation algorithm.” 2007.
  4. HyperLogLog 的 demo 网站:http://content.research.neustar.biz/blog/hll.html

统计与大数据专业究竟在学什么?

统计学是一门关于数据分析的学科,用于测量,收集,整理,归纳和分析数据的真实情况和估算情况。统计学从 17 世纪的中期逐渐发展起来,不仅存在于概率与数理统计领域,还广泛应用在各种自然学科,社会科学和人文科学上,也会被用于各种团队,企业和国家的决策。随着大数据时代的到来,统计学也与计算机,信息学等领域紧密结合,是数学科学的有力工具之一。

概率论_2
正态分布

描述统计学(descriptive statistics)又称为叙述统计,是统计学中用于描述和总结所观察到对象的基本统计信息的一门学科。描述统计的结果是对当前已知的数据进行更精确的描述和刻画,分析已知数据的集中性和离散性。描述统计学通过一些数理统计方法来反映数据的特点,并通过图表形式对所收集的数据进行必要的可视化,进一步综合概括和分析得出数据的客观规律。与之相对应的是推断统计学(statistical inference),又称为推断统计,是统计学中研究如何用样本数据来推断总体特征的一门学科。推断统计学是在对样本数据描述的基础上,对总体的未知数据做出以概率形式来描述的推断。推断统计的结果通常是为了得到下一步的行动策略。以上的两个统计学方向都属于应用统计学。

population_and_sample
总体和样本

在有的学校,统计专业是放在数学系里面的,而有的学校则是把统计和数学分开,形成数学系(Department of Mathematics)和统计系(Department of Statistics)。无论分开还是合并,一般情况下都是放在理学院(Faculty of Science)的。

NUS_Stat_Logo
NUS 统计与应用概率系

统计系和数学系的低年级课程是十分接近的,基本上还是数学分析,线性代数,概率论等一系列的课程。

Module_Level_1_2
Level 1000 和 Level 2000

到了高年级之后,所学的课程与数学系的课程就会出现明显的区别。数学系的学生会学习实分析,复分析,泛函分析等一系列课程。而统计系的学生会学习回归分析,随机过程,数据分析,贝叶斯分析等诸多课程。统计系的学生更偏向应用一些,数学系的学生课程则会更加理论一些。

Module_Level_3_4
Level 3000 和 Level 4000

从 NUS 在 2020 的 E-Open House 的资料可以看出,统计专业的学生,其就业方向也是十分宽泛的,可以考虑去银行,金融机构就职;也可以考虑去咨询公司,也可以去政府或者教育机构找到合适自己的工作。

统计的行业需求
统计专业的行业需求

对于第四年的学生,如果在国内的话,一般情况下会选择保研,考研,找工作,甚至出国留学。有的学生也会选择去找一个长达半年到一年的实习。这个就根据每个同学的实际情况而定了,但是绝大部分也就是这几个选择,或者有人也会选择 gap 一年修正一下。

简要课程安排_3
最后一年的项目

相对于数学系,统计系的课程安排更加偏向于实战与应用,并且其实用性也会高于数学系的理论课程。如果未来要从事数据分析,商业分析等方向的话,其实攻读统计系是一个还不错的选择。

在新加坡国立大学的统计与应用概率系,除了统计系这一经典的专业之外,还提供了数据科学与分析(Data Science and Analytics)这一个新兴专业供学生选择。

众所周知,随着科技时代的到来,数据的增加是非常迅速的,无论是用户自身产生的数据,还是平台方产生的数据,都是十分巨大的。数据的增大那就意味着需要使用各种各样的计算机,统计,数学方面的技术来解决现有的疑难杂症,于是大数据时代的技术也逐渐映入大家的眼帘。

DataScience_1
数据趋势

无论是国内还是国外,都在提倡智慧城市这一概念,那么在智慧城市中,大数据技术就是一个绕不开的话题。各行各业都将会使用大数据系统来做各种服务,包括推荐系统(Recommender Systems),高频交易,风险管理,移动支付等等。通过这些技术,人们的生活质量将会大大提升。通过这些产品,科技将会给人们带来诸多便利。

DataScience_3
智慧城市

而数据科学是一门交叉学科,它需要使用到计算机科学(Computer Science)数学(Mathematics)统计学(Statistics)等多种学科的技术和知识点。如果要应用在金融领域,还会要求从业者掌握金融方面的知识。因此,数据科学在这个时代背景下是具有实用性的,也是很多行业的发展趋势。

DataScience_4
数据科学

从其课程设置也可以看出,学生们所学的课程包括编程,数据结构与算法,也包括微积分和线性代数,还有统计学等诸多基础课。在高年级的时候,将会学习人工智能,计算与优化,数据库,数据处理,机器学习等课程。除此之外,在具体做项目或者实习的时候,将会根据方向的需要来学习相关的业务知识,涵盖了金融,医药,调度优化等诸多领域。

DataScience_6_Essential_Modules

DataScience_7_Elective_Modules
课程设置

整体来看,统计与数据科学专业是以实用性为目的,培养学生的理科思维,动手能力和数据分析能力的一门学科。如果学生希望学习理科并且将来学以致用的话,其实选择统计或者数据科学是一个不错的选择。

参考资料:

  1. NUS E-Open House:2020,YouTube 视频;
  2. http://www.stat.nus.edu.sg:NUS 统计系官网。

《软技能:代码之外的生存指南》

《软技能:代码之外的生存指南》是笔者刚刚进入公司工作,开始职场生涯的时候,一个偶然的机会从同事那里看到的一本书。从其内容提要可以看出,这是一本关注软件开发人员自身发展的书籍,书中讲了 7 个部分,包括:

  1. 职业;
  2. 自我营销;
  3. 学习;
  4. 生产力;
  5. 理财;
  6. 健身;
  7. 精神。

软技能_Cover
《软技能:代码之外的生存指南》

本书的作者从自身的亲身经历出发,按照以上 7 个方面给大家介绍了软件开发人员的自我发展历程,包括程序员的职场发展,程序员的自我营销策略,程序员如何培养学习习惯,程序员如何提升自己的生产力,如何培养良好的理财习惯健身将会带来多少好处,精神将会如何提升自我的能力。通过阅读这本书,程序员确实可以从作者的字里行间学习到很多东西,并且积极思考自己的职业生涯,丰富自己的业余生活,让自己的生活更加丰富多彩。

从作者的自我介绍可以得知:John Z. Sonmez 是 “Simple Programmer” 网站的创始人,他为在线培训机构 Pluralsight 开发了 50 多门在线课程,其领域涉及 iOS,Android,.NET,Java 和游戏开发等诸多主题。他还是 “Get Up and CODE” 的主持人,并且在这里讨论关于程序员健身的话题;他也是 “Entreprogrammers” 的播客主持人,他在此与其他人分享构建在线业务的真实故事。

John Z. Sonmez 是不少程序员的人生导师,通过他写的教材,讲授的课程,传递的人生故事,让不少的程序员了解到了前辈的发展历程,并且能够启发程序员如何才能够过上更加充实的生活。通过“化繁为简”的方法,传授给程序员让他们达成自身目标的力量与动力。

下面来摘选一下本书中的经典语录:

Chapter 1:职业

就业选择:列出你的选择:

  1. 雇员:对广大软件开发者而言,这是一项常见的,默认的就业选择。身为雇员的最大好处就是稳定。
  2. 独立咨询师:独立咨询师通常有自己的公司,依照合同为客户工作,但并不与任何一个客户绑定。做独立咨询师最大的好处可能就是赚钱的潜力。
  3. 创业者:创业之路可能是你职业生涯中最难,最不确定但却最具回报潜力的选择。雇员和独立咨询师都在以时间换金钱,而创业者尽管换不来预付的报酬,但是他却有机会在未来获得更大的收益。创业者的两大优势:完全自由和完全不封顶的赚钱潜力。

软技能_Table_6_1
优点与缺点

选择什么完全取决于你自己,并且你也可以随时切换路径。

成为专业人士:

  1. 一切都始于习惯。习惯是成为专业人士必不可少的部分。需要培养自己的专业习惯,需要具备时间管理技能。
  2. 坚守正道。专业人士必须对工作的优先级做出艰难的抉择。
  3. 追求品质,完善自我。你必须不断改善和提高自己的工作品质。

Chapter 2:自我营销

自我营销的正确方式就是为他人提供价值。成功进行自我营销的关键在于:如果想让别人喜欢你,想和你一起工作,你就必须要为他们提供价值。

你也许是世界上最有天赋的软件开发人员,但是如果没有人知道你的存在,你也只不过是浮云一片。

软技能_Table_19_1
自我营销的方式

打造引人注目的品牌

  1. 品牌所需要传递的信息;
  2. 品牌的一致性;
  3. 品牌的视觉符号;
  4. 品牌的曝光率。

创建大获成功的博客

  1. 打造成功博客的最大秘诀有且仅有一个—持之以恒;
  2. 只是持之以恒还不足以使你的博客大获成功,你还应该确保你写的都是高质量的内容。
  3. 重视博客内容品质的另一个重要原因是为你的博客提供更有价值的链接。
  4. 在起步之初,你的博客很可能会很糟糕。但是,随着不断尝试贡献出优秀的内容,而不是将自己脑子里的东西随意丢在网上,不考虑格式和结构还有一大堆拼写错误,你终会成功。

软技能_Table_23_1
通过社交媒体分享的内容

Chapter 3:学习

十步学习法

  1. 第 1 步:了解全局;
  2. 第 2 步:确定范围;
  3. 第 3 步:定义目标;
  4. 第 4 步:寻找资源;
  5. 第 5 步:创建学习计划;
  6. 第 6 步:筛选资源;
  7. 第 7 步:开始学习,浅尝辄止;
  8. 第 8 步:动手操作,边玩边学;
  9. 第 9 步:全面掌握,学以致用;
  10. 第 10 步:乐为人师,融会贯通

知识短板会阻碍你的进步。准确识别它们的最佳方式之一就是看看自己在哪些工作上花费了大量的时间。或者一直在进行重复性劳动。

任何你所做的重复性工作都值得彻查一番。

另一种识别知识短板的方法就是,时刻都要试图了解自己不理解或不清楚的事物。

软技能_Table_35_1
检查知识短板

Chapter 4:生产力

生产力提升计划:我的生产力提升计划的基本思路就是,我把一周的时间分配给一个一个用时不超过两小时的小任务。

  1. 季度计划:在做季度计划时,我会尽力列出我想在本季度完成的每一个大项目,我还会制定一些较小的目标。
  2. 月计划;每个月的第一天我会打印出当月的月历,并且规划出每天要完成的工作。
  3. 周计划;每周一的早晨,我会做我的周计划。
  4. 日计划及执行:要计划好这一天,我首先要把对应日期里的卡片移到“今天”这一栏,并把它们按照重要性排序。我要保证自己优先完成最重要的事情。

一些常见的时间杀手

  1. 看电视;
  2. 社交媒体;
  3. 新闻网站;
  4. 不必要的会议;
  5. 烹饪:因人而异;
  6. 玩电子游戏(尤其是网络游戏);
  7. 工间喝咖啡休息:因人而异。

软技能_Table_48_1
任何行动都比不采取行动好

Chapter 5:理财

软技能_Table_49_1
资产与负债

Chapter 6:健身

可能的健身目标:

  1. 减肥(减掉脂肪);
  2. 增肌(增长肌肉);
  3. 增加力量(不一定是增长肌肉);
  4. 增加肌肉耐力(改善运动表现);
  5. 改善心血管健康;
  6. 在某些运动上表现更好。

Chapter 7:精神

积极思考问题的根源是这样一种信念—你比你所处的环境更伟大。这种信念让你总能先看到事物好的一面,因为无论身处任何环境,你都有能力改变自己的未来。这是人类成就的最高信念,是世界上最强大的力量。

从更现实的层面来讲,积极思考就是选择从好的一面(而不是从坏的一面)去思考问题。

畏惧失败似乎是大多数人的本能。

失败不同于被打败。失败是暂时的,被打败是永恒的。

不要畏惧失败,要拥抱失败。不只是因为失败和被打败不同,还因为失败是通往成功的必经之路。

结束语

感谢你抽出时间来阅读这本书,并真诚地希望你能在本书中发现一些永久的价值。

 

时间序列异常检测—节假日效应的应对之道

在时间序列异常检测中,通常有一个较为常见的场景就是“节假日效应”。所谓节假日效应,指的就是在节假日的时候,其时间序列的走势跟日常有着明显的差异性,但是又属于正常的情况。从国内 2020 年的节假日安排可以看出,一年中有好几个关键的假日:

  1. 元旦:1 天;
  2. 春节:7 天;
  3. 清明节:3 天;
  4. 五一劳动节:5 天;
  5. 端午节:3 天;
  6. 国庆节:8 天。

在这些节假日的时候,为了调休,自然也会带来工作日上的调整。例如:在 2020 年 1 月 19 日,2020 年 2 月 1 日是需要上班的(虽然今年受疫情影响最终也没上班)。因此,在这些节假日进行调整和变化的时候,各种各样的业务指标(时间序列)通常也会发生变化,变得跟以往的走势不太一致。因此,如何解决节假日效应的时间序列异常检测就是业务上所面临的问题之一。

£¨Í¼±í£©[Éç»á]2020Äê½Ú¼ÙÈշżٰ²ÅŹ«²¼
2020 年的放假安排
清华大学的 Netman 实验室在 2019 年发表了一篇论文,专门用于解决时间序列异常检测中的节假日效应问题,论文的标题是《Automatic and Generic Periodic Adaptation for KPI Anomaly Detection》。在本文中,所用的时间序列是关于各种各样的业务指标的,包括搜索引擎,网上的应用商店,社交网络数据等等。作者们针对 KPI(Key Performance Indicator)做了时间序列异常检测,并且发明了一种方法来避免节假日效应的问题。论文针对时间序列的工作日(work days),休息日(off days),节假日(festival)做了必要的区分,然后将时间序列的不同时间段进行合理地拆分和组装,再进行时间序列异常检测,从而在一定的程度上解决节假日效应问题。

节假日效应_Fig1
实际案例(1)

在实际的案例中,我们可以看到,同一条时间序列的走势在工作日(work day),休息日(off day),春节(Spring Festival)明显是不一样的。因此,根据工作日的时间序列走势来预测春节的走势明显是不太合理的;同理,根据春节的走势来预测休息日的走势也会带来一定的偏差的。那么如何解决节假日效应的问题就成为了本篇论文的关键之一。

节假日效应_Fig3
实际案例(2)

在上图中,我们可以看到论文中使用的数据都具有某种周期性(Periodicity)。KPI A,B,C 都是具有明显具有工作日和周末特点的,在工作日和周末分别有着不同的形状;KPI D 则是关于网上应用商店周五促销的,因此在周五周六的时候,其实时间序列会出现一个尖峰(peak);KPI E 的话则是每隔 7 天,会有两个尖刺,然后并且迅速恢复;KPI F 的话则是可以看出时间序列在十一的走势跟其余的时间点明显有区别。除此之外,对于一些做旅游,电商等行业的公司,其节假日效应会更加突出一点,而且不同的业务在节假日的表现其实也是不一样的。有的时间序列在节假日当天可能会上涨(电商销售额),有的时间序列在节假日当天反而会下降(订车票,飞机票的订单量)。因此,在对这些时间序列做异常检测的同时,如何避免其节假日效应就是一个关键的问题了。

而在实际处理的时候,通常也会遇到几个常见的问题;

  1. 周期性的多样性:通过实际案例可以看出,对于不同的时间序列,其周期是完全不一样的,而且在不同的周期上也有着完全不同的表现;
  2. KPI 数量巨大:这个通常来说都是智能运维领域中的常见问题;
  3. 周期的漂移:一般来说,通过时间序列的走势我们只能够看出一个大致的变化,但是具体到细节的话,周期是存在一定的波动的。例如不一定恰好是 7 天,有可能是 7 天加减 5 分钟之类的周期。这个跟业务的具体场景有关系,也跟当时的实际情况有关。

于是,基于这些挑战,作者们希望提出一个健壮的机器学习算法来解决这个问题,本文的系统被作者们称之为 Period,正好也象征着解决节假日效应这个寓意。

Period_Fig7
Period 的整体架构

从论文中可以看出 Period 的整体架构如上图所示,包括两个部分:

  1. 离线周期性检测(offline periodicity detection);
  2. 在线适应性异常检测(online anomaly detection adaptation)。

在第一部分,每一条时间序列都会被按天切分成很多子序列(subsequence),然后将其聚集起来,把相似的时间序列放在一类,不相似的放在另外一类;在第二部分,新来的时间序列会根据其具体的日期,分入相应的聚类,然后用该类的时间序列异常检测方法来进行异常检测。

Period_Fig6
Period 的核心思路

从上图可以看到 Period 的核心思路(core idea)。在本文使用的数据中,时间序列的长度较长,一般来说都是好几个月到半年不等,甚至更长的时间。对于一条时间序列(a given KPI),可以将它的历史数据(historical data)进行按天切分,获得多个子序列(sub KPIs)。对于这多个子序列,需要进行聚类以得到不同类别。或者按照日历直接把时间序列的工作日(work day),休息日(off day),春节(spring festival)序列进行切分,将工作日放在一起,休息日放在一起,春节放在一起。把这些子序列进行拼接就可以得到三条时间序列数据,分别是原时间序列的工作日序列(work day subsequence),休息日序列(off day subsequence),春节序列(spring festival subsequence)。然后分别对着三条时间序列训练一个异常检测的模型(例如 Holt-Winters 算法,简写为 HW)。对于新来的时间序列,可以根据当日具体的日期(工作日,休息日或者春节)放入相应的模型进行异常检测,从而进一步地得到最终的结果。

在离线周期性检测的技术方案里面,是需要对时间序列进行周期性检测(Periodicity Detection)。而周期性检测有多个方案可以选择。第一种就是周期图方法(Periodogram),另外一种就是自相关函数(Auto-correlation function)。但是在这个场景下,用这些方法就不太合适了。作者们提出了别的解决方案。

在本文中,作者们提出了一种 Shape-based distance(SBD)的方法,针对两条时间序列 X=(x_{1},x_{2},\cdots,x_{m})Y=(y_{1},y_{2},\cdots,y_{m}),提出了相似性的计算方法。

X_{(s)}=\begin{cases}(0,\cdots,0,x_{1},\cdots,x_{m-s}), &\text{ if } s\geq 0 \\ (x_{1-s},x_{1-s+1},\cdots,x_{m},0,\cdots,0), &\text{ else } s<0.\end{cases}

其中 0 的个数都是 |s|. 进一步可以定义,当 s\in[-w,w]\cap\mathbb{Z} 时,

CC_{s}(X,Y)=\begin{cases}\sum_{i=1}^{m-s}x_{i}\cdot y_{s+i}, &\text{ if } s\geq 0 \\ \sum_{i=1}^{m+s}x_{i-s}\cdot y_{i}, &\text{ else } s<0.\end{cases}

于是,选择令 CC_{s}(X,Y) 归一化之后的最大值作为 X,Y 的相似度,i.e.

NCC(X,Y)=\max_{s\in[-w,w]\cap\mathbb{Z}}\frac{CC_{s}(X,Y)}{\|x\|_{2}\cdot\|y\|}.

而基于 SBD 的距离公式则可以定义为:

SBD(X,Y) = 1-NCC(X,Y).

Period_Fig8
Periodicity Drift

那么为什么需要考虑一个漂移量 s 呢,因为在一些实际的情况下,时间序列是会存在漂移的,例如上图所示。该时间序列在 10 月 30 日,31 日,11 月 1 日 都出现了一个凸起,但是如果考虑它的同比图,其实是可以清楚地看出该时间序列就存在了漂移,也就是说并不是在一个固定的时间戳就会出现同样的凸起,而是间隔了一段时间。这就是为什么需要考虑 s 的由来。

Period_Alg1
聚类的命名算法

通过相似性和距离的衡量工具,我们可以将时间序列进行聚类,然后通过上述算法也可以对每一个聚类的结果进行命名。

Period_Table1
实验数据

Period_Table2
实验数据的聚类结果

在本文中,针对以上六条时间序列,作者们做了详细的分析,也对其余的 50 条时间序列进行了实验。其使用的方法包括 HW,TSD,Diff,MA,EWMA,Donut。在 HW 中,针对不同的日期使用了不同的方法,例如 HW-day,HW-week,HW-period;其余的方法也是针对不同的日期来做的。

Period_Table3
实验方法

Period_Table12
实验效果

从实验效果来看,Period 方法的话相对于其他方法有一定的优势。

结论:Period 方法包括两个部分,第一部分是离线周期性检测,第二部分是在线适应性异常检测。通过这样的方法,可以有效地减缓时间序列异常检测受节假日效应的影响。除此之外,想必未来也会有其余学者提出相应的问题和解决方案,敬请期待。

信息与计算科学是一门什么专业?

信息与计算科学是一门什么专业?

在 2005 年刚进入大学校门的时候,数学分析和高等代数就是大一新生的必修课,当年讲高等代数的是丁老师与何老师。由于个人的姓氏英语字母是 Z,则被安排在二班,于是恰好就由何老师教授高等代数课程。刚入学没多久,何老师则在课堂上问大家,“你们当时为什么选择信息与计算科学?”下面顿时一片寂静。何老师紧接着就说可能是因为专业名字的原因,在填写志愿的时候,高中生一看这个专业的名字,既有信息又有计算,就会觉得这是一个非常偏应用的专业,于是就果断地将其填写在第一志愿上。结果入学之后傻眼了,这个专业是被安排在数学系,也就是属于数学这个一级学科。

信息与计算科学(Information and Computing Science)从名字上来看,确实像一个计算机方向的学科,但是它的原名却是计算数学,后来教育部在 1998 年改成了信息与计算科学。该专业强调以信息领域为背景,数学,信息,计算机管理相结合的数学类专业。目的是培养有良好的数学基础,能够熟练使用计算机,初步具备在信息与计算机科学领域的某个方向从事科学研究,解决实际问题,设计开发有关计算机软件的能力的学生。

在数学系的话,就不可避免地要学习各种数学系的课程,通常来说数学系的前两年都是基础课的教育,包括:数学分析,高等代数,解析几何,C++,离散数学,常微分方程,抽象代数,复变函数,数值计算等课程。

到了第三年才开始逐渐分流,学习不同的课程。如果是在数学与应用数学专业,就是学习实变函数,泛函分析,拓扑学,微分几何等课程。如果是在信息与计算科学,则是学习实变函数,泛函分析,偏微分方程数值解,运筹学,计算机图形学,信号处理等课程。在不同的专业上面,所学习到的课程内容则是完全不一样的。而该专业的编程工具主要还是使用 Matlab,毕竟用 C++ 这种编程语言写矩阵运算一类的确实不太合适。

如果是想在信息与计算科学这个专业上学习很多计算机方面的基础课,例如操作系统,计算机网络,计算机组成原理等课程,估计会让学生们大失所望。因为,信息与计算科学是属于数学这个一级学科,是数学系的专业,而不是计算机系的专业。于是,绝大部分高校还是会把它设置在数学学院下面,而不是计算机学院下。不过,确实也听说有的工科学校确实也给数学系的学生传授了很多计算机方面的知识,但整体来看信息与计算科学方面的学生所学的计算机知识还是相对偏少的。PS:当年读书的时候,该专业确实没有设置计算机方面的课程,例如数据结构等计算机的经典课程其实都是相对缺失的。

在校园招聘的时候,信息与计算科学这个名字也具有一定的迷惑性,因为总有很多面试官会认为这是一个计算机的专业,而没有意识到这个是一个数学类的方向。结果问了一堆计算机方面的问题,学生都不一定能够回答得上来。

近些年的机器学习方向很火,有的公司确实也会考虑从数学系招聘一些相关的人才。数学系所学的课程其实整体来看还是偏理论,实践方面的偏少许多,即使是信息与计算科学这个专业,教授的也是矩阵运算,偏微分方程数值解等课程,在工业界确实也有一定的应用,但是确实也算是脱离了实际。一般情况下,在工业界哪能够精准地写出一个偏微分方程或者常微分方程,最常见的都是一大堆表格数据,各种图片和文本数据,极端情况下,连数据都还没有收集好。数学系的学生实践方面的能力在刚毕业的时候确实不太行,不如计算机专业的学生上手极快,但是确实应该给予数学系的学生一定的耐心和鼓励。毕竟两者思考问题的思路和方向是不太一样的,从不同的角度看问题确实能够带来不同的启发。

提到机器学习,不知道现在的课程安排有没有做适当的改进和迭代。如果想要从事数据挖掘和机器学习相关工作的话,光靠信息与计算科学专业所教授的数学课程内容应该是远远不够的,无法满足工业界对人才的需求,因此建议在编程方面还应该补充一些 SQL,Python,C++,Java,Golang 方面的基础知识,也要掌握数据结构中的常见算法,更要把机器学习的相关课程尽量补上。只有这样,才能够在求职就业的时候占据一定的优势。只靠数学系所教的数学想找工作是非常困难的,只有把数学和计算机相结合之后才能够发挥数学系专业人才的优势。

如果学生恰好在信息与计算科学专业就读,最担心的一种情况就是不仅数学没学好,计算机方面的技能也稀松平常,最终耽误了自己。因此,在学习的时候还是建议先打好数学和计算机方面的基础,然后加强社会实践,多参与实习和各种社会活动,通过实习来了解业务问题,才能把所学到的数学知识应用到实践中产生价值。

 

傅里叶分析与调和分析

傅里叶分析

傅里叶变换(Fourier Transform)其实是数学里面非常重要的一门技术。在数学分析里面,就有傅里叶分析的身影,用于计算正整数的倒数和等于 \pi^{2}/6, 并且还有很多其他有意思的性质。

对于初学这门课程的人而言,建议阅读一代数学大师,沃尔夫奖得主 Elias M.Stein 撰写的《傅里叶分析导论》,英文名是 Fourier Analysis An Introduction。

在这本书里面,作者从波动方程和热方程开始,逐渐引入傅里叶变换的基础知识和概念,也介绍了傅里叶级数的收敛性质。其中包括单位区间上的傅里叶变换和实数轴上的傅里叶变换,最终将其推广到高维实数空间中。除此之外,作者也基于这些基础知识介绍了傅里叶分析在其他领域中的应用,包括等周定理(The Isoperimetric Inequality),同程度分布定理(Weyl’s Equidistribution Theorem),数论中的 Dirichlet 定理等等。让读者在学习傅里叶分析的同时,认识到傅里叶分析是在数学各个领域都有着重要应用场景的一门学科。

傅里叶分析导论
傅里叶分析导论

调和分析

之前在北京大学学了整整一个学期的调和分析,是由 BICMR 的苗老师主讲。在这门课上我受益匪浅,故写一篇文章来感激下这位老师,同时写一下自己学习调和分析的感受。

调和分析起源于 Fourier 这位数学家的研究,故也可以称为 Fourier 分析。其主要内容包括算子插值方法,Hardy-Littlewood 极大算子,Fourier变换,Calderon-Zygmund’s Inequality,函数空间,Ap 权等等。下面一一介绍这些基本内容。

(1) 算子插值方法

里面主要有 Marcinkiewicz Interpolation Theorem 和 Riesz Thorin Interpolation Theorem两个定理,分别是用实变方法和复变方法证明的。这两个定理则是研究算子的 L^{p} 有界性的关键定理,是整个调和分析的基础。

(2) Hardy—Littlewood Maximal Operator

这个是一个相当重要的拟线性算子,利用 Vitali Covering Theorem 和 Marcinkiewicz Interpolation Theorem 可以证明该算子是 L^{p} 有界的。证明过程不超过10行,但是证明过程相当的漂亮。

(3) Fourier Transformation

调和分析的主要工具,这个工具不仅仅在调和分析上有用,在 PDE 和随机过程中,这也是一个相当重要的工具。它把一个物理空间上的函数,转换成频率空间上的函数,从而获得了很多很好的性质。

(4) Calderon-Zygmund’s Inequality

这个定理是调和分析的经典定理之一,是处理卷积型的奇异积分的。可以看成是 Minkowskii 不等式的推广。Zygmund 把定理的条件放的很弱,只需要加上 Hormander 条件就可以得到算子的 L^{p} 有界性。然后也可以考虑其条件的充要条件。

(5) 函数空间

调和分析里面提到的函数空间包括 Sobolev space,Lipschitz space,Hardy space,Besov space 等等。 其中 Sobolev space 在 PDE 上面用处广泛,其代表作就是 Adams 的 Sobolev Space。Besov Space 里面有一个插值定理,也相当的重要,差不多 5 页吧,当时苗老师让我们全部背下来,嘿嘿。另外, Hardy Space 里面有一个相当重要的定理,就是所谓的 Duality of BMO and H^1 Space. 其证明过程大概有10页吧,是由 C.Fefferman 和 Elias.M.Stein 在上个世纪70年代给出的,方法太经典了,看完之后甚至会觉得自己没有必要学数学了。

(6) Ap weight

这个也是调和分析的分支之一,其中周民强老先生的书上有详细记载,就不一一阐述了。

以上的这些内容就是之前一个学期在北大学习所学到的东西,学了调和分析之后,基本上就不怕所谓的硬分析了。总之收获还是蛮多的,非常欣赏那位老师,一个学期讲了那么多东西。其实以上我提到的只是他讲的东西的一半内容,他后面还讲了很多 Schrodinger 方程的内容,由于本人实力有限,实在是没有能力再学后面的内容了。

ps:去 BICMR 学习是 2009 年的事了,一晃眼 11 年过去了。

参考文献:

  1.  Loukas Grafakos,GTM249,Classical Fourier Analysis
  2. Loukas Grafakos,GTM250,Modern Fourier Analysis
  3. Elias M.Stein 傅里叶分析导论

备注:

  1. 第 1,2 两本书是调和分析的经典之作,几乎涵盖了实变方法的所有内容。不过有点厚,差不多 1100 页。
  2. 除此之外,也可以阅读 Elias M.Stein 所撰写的《调和分析》,但是这本书不适合做教材,只能够作为翻阅的材料进行阅读。

在新加坡的这五年—学术篇(三)

上一篇文章写了博士生毕业答辩的一些事情,这篇文章来写一写其他的内容。

无论在哪个高校,不少的博士生在准备博士答辩之前,就已经在导师的安排下早早找好了下家。有的同学是去美国,有的同学是去日本,有的同学是去欧洲。如果实在暂时没有外出的计划和打算,同学们也就留在新加坡继续从事科研工作,例如可以留在本校做研究员(Research Fellow)继续从事之前尚未完成的工作,也可以选择去 A*Star 等科研机构跟随其他教授。对于部分能力较强的博士,则可以直接找到国内外的教职,正式拿到学术圈的入场券。

刚进师门的时候,师兄们尚未毕业,等到师兄们毕业的时候,其实也有不少的选择。有的师兄去英国做了短期博士后,有的师兄则是去了智利等南美国家从事了好几年的博士后工作。虽然相对新加坡而言,智利确实也算不上特别好的出路,但是为了科研和论文,其实去智利从事几年科研工作也是非常不错的选择。翻阅了一下 Google,看了各个国家的人均 GDP,新加坡还是属于名列前茅的,智利算是南美洲还不错的国家之一。

新加坡人均GDP
新加坡人均 GDP

智利人均GDP
智利人均 GDP

中国人均GDP
中国人均 GDP

相比智利而言,巴西实在是一个不那么靠谱的国家。虽然巴西这个国家不那么靠谱,但是他们的数学好像还是可以的,尤其是动力系统方向。在 IMPA 数学研究所和圣保罗大学(University of Sao Paulo)大学都有不少杰出的数学家,不仅有菲尔兹奖得主,还有各种各样的科研工作者。对于在新加坡生活过的学生而言,虽然去巴西能够认识一些优秀的数学家,但是这对自身的科研发展而言并不是最优的选择。毕竟未来找教职的时候,学校除了看候选人的论文之外,也会看候选人的出身。而博士出身就包括导师的人脉,学校的排名等诸多因素。

IMPA
IMPA

在 Google 上搜索了一下新加坡的博士后工资和巴西的博士后工资。根据汇率兑换工具可知:5854 巴西雷亚尔 = 7534 人民币,不如 2019 年深圳的平均工资。5000 新加坡币 = 25000 人民币,这说明新加坡的博士后收入其实是远高于巴西的博士后水平的。而且在新加坡工作的博士生,通常待遇都还不错,一般情况下也能够找到 4000 – 5000 新币甚至更高收入的工作。不到万不得已,其实没有必要去做一份 7000 人民币的工作。

巴西博士后工资
巴西博士后的工资

新加坡博士后工资
新加坡博士后的工资

巴西作为距离中国最远的国家之一,从中国香港飞到圣保罗大约需要 26 个小时的时间,至少需要在欧洲转机一次才能够继续前往巴西,而且有不少航班都是转机两次。如果在南美洲从事科学研究的话,估计回家也是一件困难的事情,一年最多只有一次机会,极有可能三年的青春都在巴西度过了。

世界地图
世界地图

在豆瓣上,有一部可以排进 Top250 的电影,叫做《上帝之城》。讲述的是巴西黑帮在里约热内卢的故事,“上帝之城”是巴西的里约热内卢这座城市西南部的一片贫民窟。这部影片所聚焦的,正是这片贫民窟 60,70,80 三个年代中发生的一件件黑帮兴衰史。

上帝之城
上帝之城

2016 年的里约奥运会,有些运动员经历了抢劫,不仅财物被抢,还有各种证件和工作物品。可见巴西在里约奥运会期间也没有把治安问题解决好,让游客和运动员都蒙受了一定的损失。

里约奥运会_1
奥运代表团

在 2018 年 9 月 2 日,巴西国家博物馆发生火灾,近九成物品被烧毁。自 2013 年以来,巴西政府一直减少博物馆的预算。国家博物馆每年维护成本需要的 50 万巴西雷亚尔,但是获得的经费只有 5.4 万雷亚尔,博物馆出现了明显的欠缺维护迹象,如剥落的墙壁和裸露的电线。2018 年 6 月,巴西国家博物馆庆祝成立 200 周年,结果却在 2018 年 9 月份被烧毁。

巴西国家博物馆
巴西博物馆

在 2020 年的疫情面前,不少国家也有很多神操作,巴西自然也不例外,其感染人数也一直在持续增加,估计短期内并不能够解决这个问题。

新型冠状病毒20200503_巴西1新型冠状病毒20200503_巴西2

新型冠状病毒20200503_巴西3
巴西的疫情

在毕业答辩的当天,曾经有一个巴西博士后的岗位放在我的面前,我没有珍惜,等我失去的时候我并没有后悔,人生最开心的事情莫过于此。因为有无数的经验告诉我,选择比努力更重要。(未完待续)

描述统计学

描述统计学(descriptive statistics)又称为叙述统计,是统计学中用于描述和总结所观察到对象的基本统计信息的一门学科。描述统计的结果是对当前已知的数据进行更精确的描述和刻画,分析已知数据的集中性和离散型。描述统计学通过一些数理统计方法来反映数据的特点,并通过图表形式对所收集的数据进行必要的可视化,进一步综合概括和分析得出数据的客观规律。

与之相对应的是推断统计学(statistical inference),又称为推断统计,是统计学中研究如何用样本数据来推断总体特征的一门学科。推断统计学是在对样本数据描述的基础上,对总体的未知数据做出以概率形式来描述的推断。推断统计的结果通常是为了得到下一步的行动策略。

本篇文章将会集中讲解描述统计学中的一些常见变量及其含义。

数据类型:

总体population),又称为全体或者整体,是指由多个具有某种共同性质的事物的集合。

样本sample),是指全体中随机抽取的个体。通过对样本的调查,可以大概的了解总体的情况。从总体抽样的时候,需要抽取一定数量的样本,如果样本太少,则不足以反映总体的情况。

population_and_sample
总体和样本

案例 1:一亿张图片所组成的图片集可以称之为一个总体,我们希望分析在这个图片集中包含汽车的图片有多少张。一种方法是一亿张图片每一张都看一遍,从而可以获得包含汽车的图片数量,这样就可以得到一个精确的数字。但是这样的工作量可能相对较大。另外一种方法是从一亿张图片中随机选择十万张或者一百万张,也就是获得了一个样本集。在这个样本集中,把每一张都看一遍,获得这个样本集中包含汽车的图片数量,进一步估算出总体中包含汽车的图片数量。这样的话,工作量相对较少,但是得到的则是一个估算数字。

ImageNet
ImageNet

案例 2:我们想知道某个国家居民的平均身高和体重,一种方法是将所有的居民都测量一遍,但是这样做的效果就是耗费的人力成本巨大。而另外一种办法就是随机抽样,抽取一定数量的居民进行身高和体重的测量。即可估算出这个国家居民的平均身高和体重。

特征类型

在机器学习领域,特征是被观测对象的某种特性和度量。一般情况下,事物的特征很多,但是提取的特征应该尽量要服从于我们的目的,如果提取了很多无效的特征,那么在机器学习实战中的价值也不会很大。通常来说,特征包括两类,第一种是离散型特征,第二种是连续型特征

discrete_and_continuous
连续与离散

离散型特征指的是该特征的数据类型是离散的(discrete)。例如人的性别,有男女两个选择,可以用 0 或者 1,或者其他记号来表示。例如某个城市是否属于某个省份,如果是的话该特征就是 1,如果否的话该特征就是 0。例如某只股票近期属于上涨还是下跌,上涨用 1 表示,下降用 0 表示。某个人当前处于婴儿,少年,青年,成年,老年的哪个阶段,分别用记号 0,1,2,3,4,5 表示,这种也是离散型特征。离散型特征的数值之间的大小关系(实数域比较)有的时候是没有意义的。例如人的性别,男(0)女(1)两个值,在实数域中 0 < 1,但是却没有意义。

连续性特征指的是该特征的数据类型是连续的(continuous)。例如某个国家一年的天气温度,温度是可以连续变化的,可以从 30 摄氏度连续地下降到 20 摄氏度,也可以连续地上升到 35 摄氏度。某个人的身高,可以从 170 cm 逐渐长高到 175 cm,这也属于连续的特征。连续特征的数值之间有大小关系(实数域比较),比如通过气温特征的值,是可以反映这个地区的温度情况。通过某个人的身高则可以反映出这个人距离上一次测量有没有变化。

特征统计量

集中趋势的度量(measure of central tendency)

集中趋势(central tendency)指的是某种平均的指标,通过这种指标可以反映一组数据的整体分布情况。在这里,这组数据并不需要有先后关系,只要是一个集合即可。对于 n 个数据所组成的集合,可以表示为 X=\{x_{1},x_{2},\cdots,x_{n}\}.

算术平均数(Arithmetic Mean)

数据的总和除以数据的个数,也就是

A_{n}=\mu=\sum_{i=1}^{n}x_{i}/n.

几何平均数(Geometric Mean)

如果该集合里面的数字都是非负数,那么可以定义其几何平均数为

G_{n}=\sqrt[n]{x_{1}\cdots x_{n}}.

从高中的数学知识可以得到几何平均数不大于算术平均数。

调和平均数(Harmonic Mean)

如果该集合里面的数字都是正数,那么可以定义其调和平均数为

H_{n}=n/(x_{1}^{-1}+\cdots+x_{n}^{-1}).

平方平均数(Quadratic Mean)

平方平均数指的是

Q_{n}=\sqrt{\frac{\sum_{i=1}^{n}x_{i}^{2}}{n}}.

Theorem. 如果 x_{1},\cdots, x_{n} 都是正数,那么 H_{n}\leq G_{n}\leq A_{n}\leq Q_{n}. 也就是说,调和平均数\leq几何平均数\leq算术平均数\leq平方平均数。

proof. n=2 的情形证明如下图。其余可以用数学归纳法等多种方法证明。

二维均值不等式的几何证明
二维均值不等式的几何证明

方差(Variance),标准差(Standard Deviation)

方差和标准差反映了数据的波动情况,方差指的是 \sigma^{2}=\sum_{i=1}^{n}(x_{i}-\mu)^{2}/n. 而标准差则有两种情况,第一种是总体的样本差(population standard deviation),总体的标准差定义为方差正的平方根,记为 SD,

SD = \sigma = \sqrt{\frac{1}{n}(x_{i}-\overline{x})^{2}},

其中 \overline{x}=\sum_{i=1}^{n}x_{i}/n.

第二种是样本的标准差(sample standard deviation),此时集合 \{x_{1},\cdots,x_{n}\} 是从一个更大的总体抽样出来的部分数据。样本的标准差记为 s, s 的定义为

s = \sqrt{\frac{1}{n-1}\sum_{i=1}^{n}(x_{i}-\overline{x})^{2}},

其中 \overline{x}=\sum_{i=1}^{n}x_{i}/n.

众数(Mode)

众数指的是这个集合 \{x_{1},\cdots,x_{n}\} 中出现得最多的数字。

k 阶矩(k Moment),k 阶中心矩(k Central Moment)

k 阶矩指的是

m_{k} = \sum_{i=1}^{n}x_{i}^{k}/n,

它称为样本的 k 阶矩,它反映了样本总体的信息。显然,m_{1} 就是算术平均数。

k 阶中心矩指的是

\mu_{k} = \sum_{i=1}^{n}(x_{i}-\overline{x})^{k}/n,

它称为样本的 k 阶中心矩,它反映了样本距离均值的情况。显然,\mu_{2} 就是样本方差。

偏度(Skewness)

偏度定义为

\sum_{i=1}^{n}\frac{1}{n}\cdot\frac{(x_{i}-\overline{x})^{3}}{\sigma^{3}}=\frac{\mu_{3}}{\sigma^{3}}.

n 个样本的样本偏度(sample skewness)定义为 \mu_{3}/s^{3}, 其中 s 是样本的标准差,i.e s = \sqrt{\frac{1}{n-1}\sum_{i=1}^{n}(x_{i}-\overline{x})^{2}}.

而另外常见的一种样本偏度定义为 \frac{n^{2}}{(n-1)(n-2)}\cdot \frac{\mu_{3}}{s^{3}}. 而偏度的结果可以是正数,负数,或者零。分别被称为 Positive Skew(右侧的尾巴更长),  Negative Skew(左侧的尾巴更长) 和 Zero Skew。当均值等于中位数等于众数的时候,该概率分布是对称的。Median(中位数)相对于 Mean(均值)是更加接近 Mode(众数)的数字,因此根据 Median 和 Mean 的大小关系也能够大致判断 Skew(偏度)的趋势。

skewness_1
偏度的两种类型

skewness_2
中位数,众数,平均数,偏度

峰度(Kurtosis)

n 个样本的样本峰度(sample kurtosis)可以定义为:\frac{\mu_{4}}{\mu_{2}^{2}} - 3, 其中 \mu_{4} = \sum_{i=1}^{n}(x_{i}-\overline{x})^{4}/n, \mu_{2}=\sum_{i=1}^{n}(x_{i}-\overline{x})^{2}/n. 减去 3 的目的是为了让正态分布的峰度为零。

Theorem. 正态分布 4 阶距的值是 3。

Proof. 需要计算 \frac{1}{\sqrt{2\pi}}\int_{-\infty}^{+\infty}x^{4}e^{-\frac{x^{2}}{2}}dx 的值。可以使用极坐标的方法来解决,首先通过坐标变换可以得到原式子等于 \frac{4}{\sqrt{\pi}}\int_{-\infty}^{+\infty}x^{4}e^{-x^{2}}dx. 其次,令 A=\int_{-\infty}^{+\infty}x^{4}e^{-x^{2}}dx, 可以得到

A^{2}=\int_{-\infty}^{+\infty}\int_{-\infty}^{+\infty}x^{4}y^{4}e^{-x^{2}-y^{2}}dxdy

= \int_{0}^{2\pi}\cos^{4}(\theta)\sin^{4}(\theta)d\theta \cdot \int_{0}^{+\infty}r^{9}e^{-r^{2}}dr

= \frac{3\pi}{64}\cdot 12=\frac{9}{16}\pi.

进一步得到 A=\frac{3}{4}\sqrt{\pi}. 从而原式子等于 3。i.e. 正态分布 4 阶距的值是 3。

中位数(Median)

中位数指的是将集合中的数字从小到大排序之后得到的有序数列,中间的那个数字。如果的数列的长度是偶数,则取中间两个数的平均值。

median
中位数的计算案例

带权重的算术平均数(Weighted Arithmetic Mean)

对于一组数据 \{x_{1},x_{2},\cdots,x_{n}\}, 可以设置其一组正数权重 \{w_{1},\cdots,w_{n}\}, 然后得到其带权重的算术平均数为

\sum_{i=1}^{n}w_{i}x_{i}/\sum_{i=1}^{n}w_{i}.

截断平均数(Truncated Mean)

截断平均数是舍弃掉样本中最高和最低的一些样本之后再计算得到的平均值,并且最高和最低两端舍弃的样本数量一致。舍弃的样本数量可以是整体资料数量的占比,也可以是一个固定的数量。

发散度量(measure of dispersion)

四分位距(interquartile range,IQR)

四分位距(IQR),也被称为 midspread,middle 50%,H-spread,它等于 75th 百分位数与 25th 百分位数的差值,也就是

IQR = Q_{3}-Q_{1}.

其中,对于长度为 2n 或者 2n+1 的数列而言,Q_{1} 就是 n 个最小数的中位数,也就是 Q_{1} 在有序数列从小到大排序的 25% 位置。Q_{3} 就是 n 个最大数的中位数,也就是 Q_{3} 在有序数列从小到大排序的 75% 的位置。IQR 反映了数据的集中程度,IQR 越小,表示数据越集中于 median 附近;IQR 越大,表示数据越发散于两端。

IQR_1
正态分布的箱形图

用箱形图(boxplot)作异常检测的时候,上下界分别定义为 Q_{3}+1.5 \cdot IQR, Q_{1}-1.5 \cdot IQR.

IQR_2
四分位距的案例

在上述案例中,Q_{1} = 31, Q_{2}=87, Q_{3} = 119, 从而四分位距 IQR = Q_{3}-Q_{1}=88. 异常检测的上下界分别是 Q_{3}+1.5\cdot IQR = 251, Q_{1}-1.5\cdot IQR = -101.

四分位发散系数(quartile coefficient of dispersion)

四分位发散系数也是用于衡量数据集中程度的,对于不同的序列而言,IQR 并没有在一个尺度下进行衡量,无法通过直接对比两个序列的 IQR 来判断它们之间的发散程度(需要先对两个序列进行归一化才行)。于是,有学者提出了另外一种衡量方法,就是四分位发散系数,它的定义就是

(Q_{3}-Q_{1})/(Q_{3}+Q_{1}).

例如:X=\{2, 4, 6, 8, 10, 12, 14\}Y=\{1.8, 2, 2.1, 2.4, 2.6, 2.9, 3\} 两个集合。对于 X 而言,Q_{1}=4,Q_{2}=8,Q_{3}=12, 它的 IQR=Q_{3}-Q_{1}=8, 四分位发散系数为 (Q_{3}-Q_{1})/(Q_{3}+Q_{1})=0.5; 对于 Y 而言,Q_{1}=2,Q_{2}=2.4,Q_{3}=2.9, 它的 IQR=Q_{3}-Q_{1}=0.9,四分位发散系数为 (Q_{3}-Q_{1})/(Q_{3}+Q_{1})=0.1837. 因此集合 X 的四分位发散系数比 Y 的四分位发散系数要大,XY 更加发散。

范围(range)

在统计学中,对于集合 \{x_{1},\cdots,x_{n}\} 而言,它的最大值减去最小值的差值就是范围。i.e.

range = \max_{1\leq i\leq n}\{x_{1},\cdots,x_{n}\}-\min_{1\leq i\leq n}\{x_{1},\cdots,x_{n}\}.

该值越大,表示集合的最大值与最小值的差异越大,数据更加发散;该值越小,表示集合的最大值与最小值的差异越小,数据就更加集中。

平均绝对偏差(Mean Absolute Difference)

对于集合 X=\{x_{1},\cdots,x_{n}\} 而言,平均绝对偏差(Mean Absolute Difference)定义为:

MD(X)=\frac{\sum_{i=1}^{n}\sum_{j=1}^{n}|x_{i}-x_{j}|}{n(n-1)}.

相对平均绝对偏差(Relative Mean Absolute Difference)则定义为:

RMD(X) = \frac{\sum_{i=1}^{n}\sum_{j=1}^{n}|x_{i}-x_{j}|}{(n-1)\sum_{i=1}^{n}x_{i}}.

通过相对平均绝对偏差可以对比两个集合之间的偏差程度。

中位数绝对偏差(median absolute deviation)

中位数绝对偏差定义为 MAD=median(\{|x_{i}-\tilde{x}|,1\leq i\leq n\}), 其中 \tilde{x}=median(\{x_{1},\cdots,x_{n}\}), 可以看出数据的偏移程度。

变异系数(coefficient of variation)

变异系数指的是标准差除以均值,i.e.

cv=\frac{\sigma}{\mu},

它表示了集合数据相对于均值的波动程度。

例如:X=\{10,10,10\}, Y=\{9,10,11\}, Z=\{1, 5, 6, 8, 10, 40, 65, 88\}, 通过定义可以计算出它们的变异系数 cv(X)=0, cv(Y)=0.1, cv(Z)=32.9/27.9=1.18. 变异系数越大,表示集合的数据波动程度越大。变异系数越小,表示集合的数据波动程度越小。

参考资料

  1. 集中趋势:https://en.wikipedia.org/wiki/Central_tendency
  2. 离散程度:https://en.wikipedia.org/wiki/Statistical_dispersion
  3. 描述统计学:https://zh.wikipedia.org/wiki/%E6%8F%8F%E8%BF%B0%E7%BB%9F%E8%AE%A1%E5%AD%A6
  4. 数据分析的基础—统计学之描述性统计(一):https://zhuanlan.zhihu.com/p/33544707
  5. 数据分析的基础—统计学之描述性统计(二):https://zhuanlan.zhihu.com/p/34073898

 

在新加坡的这五年—学术篇(二)

本文写于毕业答辩五周年之际。对于每个博士生而言,毕业答辩都是一件非常重要的事情,这不仅关系着博士生能否顺利拿到学位,也会影响未来的职业生涯。

在博士答辩的时候,学生不仅需要向答辩委员会展示这几年在学校的研究成果,还需要得到答辩委员会的一致认可才能够拿到博士学位。每个学校对于博士生的毕业要求不一样,不同的学校有着不太一样的制度,但是整体流程却是大同小异的。下图是 NUS 数学系对于 Graduate Programme 的学生的一些基本要求。包括在 24 个月之内通过 Qualify Exam,学习 MA5198 这门课,完成英语课程的学习,CAP 达到 3.5 以上,最后就是写完博士毕业论文。

NUS_PHD_requirement
博士生的毕业要求

毕业论文作为 Step 6 就代表着这是博士生从学校毕业的最后一步了。当时为了记录自己搞科研写论文的时候,专门使用了 Google Calendar,然后把自己的工作时长记录下来。每周搞数学科研的时长平均是 20 个小时左右,毕竟进行创新性工作是比体力劳动累很多的。一天看书八小时没啥问题,但是一天思考数学难题八个小时就是因人而异了。

工作时长
2014 年的每周工作时长

从 NUS 提交论文的流程来看,其实博士生想提交一篇论文并不是一件非常容易的事情。先不说撰写毕业论文的路程之艰辛,就说说这提交论文的流程就足以花费很长时间。根据 NUS 的学术日历,博士生们需要在一些特定的时候提交论文才会比较“划算”。为什么用“划算”这个词语呢?因为 NUS 的博士生在前四年是不需要交学费的,但是在博士第五年开始延期的时候就需要缴纳一定的学费,而学费的多少完全取决于在博士生什么时候提交论文。如果在每个学期的前两周提交论文,那么这个学期是不需要交学费的。如果在 Recess Week 之前提交论文,那么这个学期只需要缴纳一半的学费。如果提交论文的时间过了 Recess Week,那么博士生就要缴纳本学期全部的学费。所以,对于想要交论文的博士生,通常都会在 Vacation 的期间尽量把论文全部写好,然后赶在开学的前两周提交论文,这样的话一来有充足的时间撰写论文,二来不用缴纳下一个学期的学费。

NUS学校日历
NUS 的学术日历

NUS 的博士生在前四年是免学费的,但是到了第五年的时候就要开始交学费了。而学费的涨幅也是十分惊人的,记得在 2010 年的时候一年的学费大约是 13000 SGD,而到了 2020 年的时候一年的学费已经涨到了 40000 SGD。虽然学费涨幅惊人,但是只要博士生能够按时毕业,就可以避免缴纳高额的学费。这可能也是督促博士生按时毕业的一个好方法。

NUS学费
NUS 的学费

言归正传,在进行答辩之前需要在学校和院系提交博士生的毕业论文。第一次提交论文初稿的时候需要提交四份打印稿,并且装订成册。方便答辩委员会的成员阅读和翻阅。当时打印论文的时候,是由大峰哥带路去 Queenstown 打印,价格比学校的 YIH 稍微便宜一点,时间也会相对快很多。

对于博士生的答辩,除了导师会在现场之外,也需要从院系里面选择一两位教授,还需要从外校选择一位比较精通该领域的学者,共同组成该学生的答辩委员会。答辩委员会不仅要在学生答辩的时候出席,还要对学生提交的博士论文进行审核,查看该学生的学术成果是否能够达到毕业的要求。如果答辩委员会在审核期间对学生的论文有所疑问的话,也可以通过邮件的方式来向院系的秘书和学生发邮件,要求学生提供更加详细的资料和证明方法。不过发邮件提问的时候答辩委员会的教授都是匿名的,学生不能知道是哪位审稿人所提出的问题。一般审稿的期限为 3 个月左右,一旦达到了这个期限,并且审稿没有问题的话,就可以让院系安排博士生的毕业答辩了。

毕业答辩的邮件通知_full
答辩邮件

2015 年 4 月 24 日,是笔者在新加坡国立大学(National University of Singapore) 的答辩日子。每次有博士生答辩的时候,数学系的行政人员们就会提前发送一封邮件给大家,通知大家系里面有人去答辩了,请感兴趣的老师和同学自行前往。一般情况下,答辩的时长是一个小时左右。除此本校的教授无需专程移动之外,答辩委员会的成员也需要从各个国家飞往当地进行毕业答辩。在答辩的时候,学生需要准备一份 PPT 来讲解之前几年在学校做的科研工作,还需要提前准备一些可能面临的挑战点以应对大家的提问。听讲座的人背景不一样,所提出的问题也有可能是五花八门的,所以做好充足的准备是非常有必要的。在答辩的前两天,有的导师也会将答辩委员会的教授们介绍给博士生认识,毕竟学术圈也是一个圈子,混个脸熟还是十分有必要的。不过学术圈的人通知消息的方式都比较特殊,记得当时导师通知开会和吃饭都是通过邮件的方式,和现在通过微信和电话的方式有明显差异。

毕业聚餐的地点
聚餐地点

在博士生进行答辩陈述结束之后,答辩委员会的成员会让博士生暂时离开教室一段时间,然后他们在教室里面填写必要的资料,决定博士生是否能够通过这次答辩。如果顺利通过的话,教授们会走出来通知学生已经通过了答辩。如果不幸没有通过的话,就只能让学生持续修改论文和再接再厉了。除了参加博士生的答辩之外,学术圈的教授们聚集到一个学校,总会开设一两个讲座或者进行必要的聚餐。这次自然也不例外,笔者还有幸在答辩的当天下午听了一个教授的讲座。到了吃饭时间,下午 5:00 左右,导师就把学生和教授喊在一起,去外面聚餐吃饭。不过当时吃饭的地点就是在学校附近的食阁,大家会点上不少下酒菜,然后点上很多啤酒(PS:新加坡的酒真的是贵),在食阁那里谈天说地。当时留在师门的人也不多了,大师兄和二师兄已经顺利毕业离开了新加坡,还剩下三师兄和我在一起搞科研和答辩。不过在我答辩完了之后,三师兄也顺利提交了论文,在 2015 年的后半年也顺利通过了博士答辩。

大师兄的毕业证
大师兄的毕业证

记得在 2015 年 4 月 13 日的时候,大清早起来帮大师兄去拿 University Hall 拿学位证。NUS 有固定的发放学位的时间,及时大师兄是 2014 年交的论文,拿到学位证和成绩单也需要等到次年的 4 月份。因此,算好交论文的时间也是一门有趣的事情。不过导师从国内过来的时候,也是把三位师兄带到新加坡,因此三位师兄的年纪略比我大一些。师兄们也是经历了国内的硕士教育和国外的博士教育最终拿到学位,可见拿到博士学位之路真的不好走。

NUS_YIH
NUS 的 YIH

答辩完了之后其实还需要向学校提交一些材料和流程,提交材料的地点就是 NUS 的 YIH。记得当时提交论文不仅需要在网站上提交论文的 PDF 文件,并且把论文刻在一个光盘内才行(PS:这年头用光盘的时候真的是不多了)。当年在南京买的电脑 Y530 还带着光驱,但是从来没有使用过,在 2008 年买的时候绝对没有想到这台电脑刻的唯一一张光盘就是自己的博士毕业论文。(未完待续)

一封来自南大化院的信

见信如晤!南大化院致用人单位和校友的一封信

尊敬的用人单位,亲爱的校友:

你们好!

首先,诚挚感谢各用人单位一直以来对我院就业工作的热心关注与大力支持,帮助我院学子在理想的工作岗位上服务社会,建设国家。感谢各位校友对母院发展的支持和对学弟学妹们的帮助和指导,你们的成就为他们规划自己的职业生涯树立了典范。
自1920年南京高等师范学校建立设置化学系以来,南京大学化学学科已走过百年历程。秉承“诚朴雄伟,励学敦行”的校训,以及“严谨、求实、创新、奉献”的优良传统,由化学学科发展而来的南京大学化学化工学院,已经成为蜚声海内外的人才培养和科学研究基地。2017年,我院化学、化学工程与技术两个学科双双入选国家“双一流”建设学科。百年砥砺,薪火相传,我院培养的一代代化院人在科学研究和技术服务业、教育、制造业、信息传输、软件和信息技术服务业、金融业等各行各业都做出了突出贡献,在中华民族复兴之路上留下了浓墨重彩的篇章!今天,学院师生正在配位化学、化学生物学、能源化学、先进光电材料、合成化学、材料化学、生命分析和分子成像、绿色化学以及计算化学等多个领域开展研究,以化学人独特的思维和方式认知、创造并改变着我们的世界。
当前,全国上下仍处在全力防控新型冠状肺炎疫情的关键时期,受疫情影响,今年本就因全国高校毕业生人数增长40万而紧张的就业形势更加严峻。因此,帮助我院129名本科毕业生,133名硕士毕业生和143名博士毕业生走上满意的工作岗位,是我们一直以来努力达成的目标。
为促进社会需求与人才供给精准对接,值此用人单位招聘与毕业生求职就业的关键时期,我院诚挚邀请各用人单位,为我院学子提供更多宝贵的就业岗位和发展平台若您有招贤纳士的计划,请您与我们联系,我们将第一时间将招聘信息传达给毕业生,根据需求帮助毕业生与贵单位搭建好线上选聘平台,并择优定向推荐,积极配合您完成好招聘工作。众人拾柴火焰高,希望各位校友伸出援手,充分发挥您的社会影响力,帮我们牵线搭桥,提供宝贵的就业信息。同时也欢迎各位校友为即将毕业的学弟学妹分享求职经验,提供线上指导,帮助他们树立求职信心,掌握求职技巧。
再次感谢各用人单位和校友的理解与支持,在这个特殊的春天,让我们凝心聚力,共同努力打赢疫情防控和求职就业的双战役!
附:南京大学化学化工学院2020届毕业生就业工作联络人
负责班级
联络人
办公电话
电子邮箱
本科
朱老师
025-89680289
chemjobnju@163.com
硕士研究生
王老师
025-89682319
博士研究生
闫老师
025-89682319

今天看到南京大学(Nanjing University)的官方公众号于近日发表了一封信,来自南大化院。其主要内容是让各位校友尽量提供各种资源,帮助目前的在校毕业生找到合适的就业岗位。在疫情严重和就业环境不甚理想的情况下,通过这封信,我们能够感受到母校对于学生们的关心,能够体会到母校对应届本科生,硕士生,博士生的负责与关怀。

NJU_Chem_1
NJU 化学化工学院

NJU_Chem_2
百年化院

当年笔者在南京大学就读的时候,就曾听闻 NJU 的化学系,物理系,地科系,天文系都是 NJU 的王牌院系,自然也有不少优秀的高中生选择这些方向进行攻读。笔者在校期间除了拿到学位,也得到了许多南大老师的帮助和教诲,在此表示感谢。在 2006 年,闵乃本院士课题组获得了国家自然科学一等奖,也是国家对 NJU 在自然科学领域的认可。

NJU_Award_1
国家自然科学一等奖

近日南大化院通过官媒所发出的信,一则是因为疫情影响,今年的就业压力确实大;二来某些专业确实不那么容易找工作。某些专业的学生如果只掌握本专业的技能,就会面临着毕业就失业的风险。要想走向满意的工作岗位,除了自己的努力之外,自然也是需要学校的大力支持的。

在国外留学的时候,就感受到一些院校更加强调学以致用。即使是化学,生物,物理等基础学科,在本科期间也会积极安排实习的机会给学生,让学生们有一定的就业实践,获得必要的社会经历。在新加坡国立大学(National University of Singapore),化学系的本科学生是有机会获得一些实习机会的。

NUS_FYI
2020 NUS E-Open House:最后一年的实习

除此之外,最后的毕业项目(Final Year Project)也是需要有一定的实践的。例如,可以与近些年比较火的机器学习(machine learning)和数据分析(data analytics)相结合,将学生培养成具备一定的化学数据分析经验方向的人才。

NUS_FYP
2020 NUS E-Open House:最后一年的项目

学生们在校期间肯定可以接触科研的内容,但是如果只接触科研的内容对学生而言是不公平的。最理想的情况是在校期间校方多让学生接触各行各业的职业,多接触到工业界的就业情况。无论是公司,研究所,还是其他行业的校友以及各行各业的人才都可以把已知的行业消息告诉学生,让学生们多了解,及早做职业规划,这也是对学生负责的一种方法。

不过,南大化学这个专业怎么出现了【博士生的人数 > 硕士生的人数 > 本科生的人数】的情况啊?笔者记得当年数学系本科生大约 160+,硕士生 30+,博士生可能也就 10+;在数学系不至于成为倒过来的情形啊。在外留学的时候,每个院系博士生的数量都是有限制的,数学系也就是 10+,一般不会超过 20。不知道是不是当时招生的时候过度招生了?

如果有机会的话,其实学校,研究所,工业界帮学生牵线搭桥是非常有必要的,毕竟 NJU 的生源质量整体来看还是非常不错的,有的学生真的只是缺少一个机会而已。在这种时候,如果事先在读书之前,就提前给学生和家长做好一定的职业辅导,是不是也是一种方法呢?下面几幅图来自 NUS 的 2020 E-Open House,化学系的老师在网络上给大家介绍了化学系学生的一些发展方向​,其实这样的内容对学生和家长而言可能更有价值和意义。​

NUS_Chem_Level_UP_1
职业发展:Chief Analytical Chemist

NUS_Chem_Level_UP_2
职业发展:Medicinal Chemist

NUS_Chem_Level_UP_3
职业发展:Energy Chemist

无论是 NJU 还是 NUS 的学生都是相对优秀的,有的时候给一个转行的机会就能够紧紧地把握住。如果实在是找不到本专业的就业机会,那就只能够找个机会努力转行了。其实,大学最重要的是培养正确的价值观,引导学生们做想做的事情,做喜欢做的事,而不是为了某个目的而把学生的其他路封死。如果一个人真心想做科研,那么他就不会被其他事情所干扰;如果一个人不是真心想做科研,那么他迟早也是要离开的,无论学校是否告诉他一条转行的道路。

Picture_of_Chem_2
离开的时刻

前几年写过一篇关于转行的文章,希望有所帮助吧。《转行数据挖掘和机器学习(六)》 。不过还是期待业界大佬能够提供就业岗位和发展平台,提供更多的机会给应届生。

2020 年的口罩

谁都没有想到 2020 年的开局竟然是这样,随着新型冠状病毒(COVID-19) 在各个国家的爆发,医疗防护用品成为了 2020 年的畅销品。对于各个国家而言,呼吸机,防护服,护目镜,医用口罩就是必备的物品;对于每个家庭甚至个人而言,口罩就成为了居家必备的防护用品。

早在 2020 年除夕前几天,国内就已经出现了武汉地区爆发疫情的消息,深圳有的药房已经排起了长龙,很多民众都在购买口罩。甚至有的药房已经把口罩卖空,直接在门口挂牌“暂无口罩”,说明当时整体已经出现了口罩短缺的情况。既然线下买不到,那就只能够转到线上去购买。笔者当时还想着买 N95 或者医用外科口罩,但是网上的货源也是远远不够的。最后实在没办法了,就想着买点其他口罩聊胜于无吧。于是直接在某电商平台下单了 50 个一次性医用口罩,下单后第三天货就到位。虽然 50 个口罩不足以保障一家人每天都能够外出,但是足以应对出门拿外卖和日常用品,也正是这 50 个口罩,保证了一家人在疫情期间的日常生活不受影响。

2020年初买的医用口罩
2020 年 1 月中旬买的口罩

国内疫情严重导致口罩短缺,国家开始呼吁大家尽量待在家里,避免出去进一步导致疫情的传播。正好笔者也是属于死宅类型,日常能不出去就不出去,能尽量待在家就尽量待在家。而且此时正值新春佳节之际,如果没有走亲访友的安排,待在家其实是最好的选择,毕竟辛辛苦苦地工作一年也会觉得疲惫,正好找个机会修整一下,以备来年的再次努力奋斗。

过年期间每家每户都在屯口罩,过完年之后就面临着复工的问题。虽然国家已经将春节假期延长,但是总有需要复工的一天。为了复工,想必各个企业也在积极地准备着这些必要的医护用品,否则复工之路将受影响。有的企业渠道比较广,能够弄到一些医护用品发放给员工。为了自身和身边同事的安全,大家在疫情期间上班就只能够戴口罩,虽然刚开始的时候也不太能够适应,但是工作了几天之后竟然也觉得能够接受。话说,普通上班族戴的也就是普通的医疗口罩,奋战在一线的医生和护士不仅需要戴口罩,还需要身着厚重的防护服,全身上下都被严严实实地包裹起来,甚至还要面临着被感染的风险。在这次疫情中,国内的医护人员真的做出了非常大的贡献。

众志成城我们必胜
战疫情

时至今日,国内的疫情已经基本稳定,每个省都在走向全面复工的道路,普通的医用口罩其实也不再短缺,无论是网上商店还是线下药店都能够买到口罩。但让人万万没想到的是国外疫情出现了井喷式的增长,从 Google 的疫情统计来看,不少国家的累计确诊人数已经远远超过中国,美国至今已经高达 50 万的确诊病例,甚至还有持续上涨的趋势。疫情刚开始的时候,国外的不少人还说戴口罩没有用,呼吁大家不用戴口罩。虽然笔者也没有直接证据证明戴口罩能够有效地防护,但是为了保险起见,如果买得到口罩,并且能够承受这个经济压力的话,戴口罩其实对个人也没有什么大碍。虽然刚开始的时候不适应,但是戴多了其实也就那么回事。不过戴着口罩思考问题,写代码确实挺累的,但是为了保障身体健康也只能够戴着,别无选择。

Google疫情统计_1
全球疫情统计

Google疫情统计_2
确诊人数排序

从这张表格来看,其实香港的情况还好,看上去也属于能够控制的范围。由于笔者当年在新加坡生活五年,有不少朋友在新加坡工作和学习,因此也比较关心新加坡的疫情。新加坡的疫情被稳定地控制了很久,但是近几周也出现了感染人数增长的趋势,确诊人数已经多达 2000+,并且存在社区传播的可能性。

Google疫情统计_3
新加坡疫情地图

于是,新加坡政府在 2020 年 4 月份正式宣布了 Stay at home(居家隔离)政策,呼吁民众尽量待在家里,避免外出。从 2020 年 4 月 7 日开始至 2020 年 5 月 4 日,民众都要遵守居家隔离政策,非特殊情况,尽量不要外出;如果一定要外出,则需要戴口罩(mask);食物全部需要打包带走,不能堂食;在排队的时候要保持一定的安全距离。

新加坡疫情防护_1
Stay at home

新加坡疫情防护_2
居家隔离的细节

其实在疫情刚刚爆发的时候(2020 年 1 月底),新加坡根据实际情况呼吁大家暂时无需戴口罩,因为口罩毕竟是医疗用品,需要优先保障一线的医务人员使用。如果很多民众都戴口罩,那么口罩就会出现不够的情况,并且当时疫情在新加坡属于可以控制的范围。在当时做出这个呼吁也属于合理的范围。

新加坡疫情防护_3

新加坡疫情防护_4
联合早报的报道

但是,随着疫情的发展,已经超出了很多人的预期。中国花了很多成本控制住了疫情,但是疫情却在国外爆发了,无论是意大利,西班牙,法国,到现在的美国,都出现了病人井喷的状况。很多国家均已不能独善其身,只能够加入全面抗疫的战斗中。新加坡政府也推出了居家隔离的政策,虽然不一定比中国更加严格,但也确实能够起到一定的效果。

旅游业是新加坡的支柱产业之一,在疫情期间,沙滩全面封闭,不准居民游玩。虽然影响了收入,但实属无奈之举,毕竟控制疫情才是近期最重要的事情。

新加坡疫情防护_5
封闭沙滩

新加坡很多人都不在家做饭,社区周边的食阁就是主要的吃饭场所。在此特殊期间,居民不能够在食阁里面吃饭,必须进行外带,而且餐饮场所的员工必须要戴口罩才能够营业。违者将罚款高达 5000 新币,或吊销餐饮执照。

新加坡疫情防护_6

新加坡疫情防护_7
食阁的规定

除了餐饮行业,人们在日常出行的时候也被要求戴口罩,例如乘坐公交车的乘客就必须戴口罩。

新加坡疫情防护_8
乘客需戴口罩

从新加坡的政策也可以看出,时至 2020 年的 4 月份,新加坡的疫情防控也到了必须要控制的程度。为什么前后的政策会出现如此明显的变化呢?我们可以来看一下新加坡这几个月的疫情发展状况。

在 2020 年的 1 月份,新加坡只有零星的几个案例,即使到了 3 月中期,每天的案例数量也不会超过 50 个,而且绝大多数都可以追踪。但是到了 4 月份,有几天的案例数都超过了 150,总数也超过了 2200 +,而且有一些案例还不太容易进行流行病学的追踪。

新加坡疫情统计_1新加坡疫情统计_2新加坡疫情统计_3

新加坡疫情统计_4
新加坡的疫情变化:2020 年 1 月 – 2020 年 4 月

从联合早报的感染人群来看,除了有外来的输入案例之外,近期还有不少在新加坡的客工宿舍爆发了疫情。

新加坡疫情防护_9

新加坡疫情防护_10
客工宿舍的疫情

新加坡政府控制疫情虽然暂时还没有那么严格,但是也算是下了决心。有一句来自其他地方的笑话,Singapore is a fine city。fine 除了大家都知道的意思之外,另外一层含义就是罚金或者罚款。那为了控制疫情,新加坡政府会给违反规定的民众开出相应的罚单也属于合理的范围。刚开始的时候愿意给警告信,但从 4 月 12 日起就直接开罚单了,每次 300 新币(约人民币 1500 元)。

新加坡疫情防护_11

新加坡疫情防护_12
新加坡的罚单

在防控疫情的不同阶段,不同的国家确实有着完全不同的应对策略,无论是国内的封城,还是其他国家的防控疫情手段,都是为了尽快消灭疫情。而消灭疫情虽然有很多办法,但每个人进行合理范围内的自我保护则是一个非常有效的措施。从 2020 年的 1 月份到 4 月份,所有人都见证了国内疫情爆发,控制,逐渐消失的阶段。从新加坡这几个月的政策也可以看出,从一开始的呼吁民众不需要戴口罩到现在的强制民众戴口罩,说明口罩在疫情防控方面还是具有一点防护和隔离作用的,至少也能够有效地阻止飞沫的传播。因此,能够戴口罩还是戴上为佳,保护自己也保护了别人。最后,还是希望全球的疫情能够早早过去,让大家都过上正常健康的生活。

参考资料:

  1. 新加坡疫情网站:https://co.vid19.sg/singapore/#
  2. 联合早报:https://www.zaobao.com/
  3. 新加坡政府官网:https://www.gov.sg/

在新加坡的这五年—学术篇

每次提到数学这个词,大家能够想到的就是初等代数,平面几何,组合运算,微积分,线性代数,概率论等方向。但在整个数学领域(Earth of Math)上,还有很多更有意思的领域和研究方向,包括数论,几何,拓扑,分形几何,分析,概率统计,博弈论,代数等诸多方向,每一个方向都有很多优秀的数学家在从事相关研究。

EarthofMath
Earth of Mathematics

当年在数学系的时候,所研究的方向是分形几何(Fractal Geometry)和复动力系统(Complex Dynamics),位于 Earth of Math 的左侧,称之为分形湖泊(Fractal Lakes)。所谓分形,其实是一个粗糙或者零碎的集合形状,可以分成多个部分,且每个部分放大之后与整体有某种相似性,即具有自相似性的性质。而动力系统则是基于某种固定的规则,描述一个空间内的所有点随时间的变化情况,例如钟摆的晃动,水的流动,湖泊里面鱼类的数量。备注:动力系统并不是指汽车的动力系统和发动机引擎,这两者毫无关系。

而复动力系统则是动力系统中的一个分支,研究的是有理函数的迭代性质。所谓函数的迭代,指的是针对有理函数 f(z),考察其定义域的点 z\in \hat{\mathbb{C}}n 次复合,得到 f^{(n)}(z)=f\circ\cdots\circ f(z),进一步可以研究 \lim_{n\rightarrow +\infty}f^{(n)}(z) 的极限。

针对不同的定义域,函数的迭代有着完全不同的研究方法。当时的研究方向是复动力系统(Complex Dynamical Systems)。复动力系统理论的研究始于 1920 年,当时是由数学家 Fatou 和 Julia 研究的,因此复动力系统中的两个重要的集合就是以 Fatou 和 Julia 来命名的,分别称之为 Fatou set 和 Julia Set。随着计算机技术的演进,在上世纪八十年代这些集合可以通过计算机进行可视化,分形几何和复动力系统理论开始蓬勃发展起来。在与双曲几何、分形几何、现代分析学和混沌学等学科发展相互促进的同时,围绕双曲猜想以及 Mandelbrot 集合的研究工作,成为当今复动力系统的研究热点。

举个例子,函数 f(z) = z^{2}+0.7885 e^{ia}a\in[0,2\pi])的 Julia 集合的动图如下:

JuliaSet_1
Julia 集合

当然,科研的时候可不是做一点可视化就算完成任务了,还是需要按部就班的学习各种数学知识和技能。

之前在学校研究动力系统的时候,收集过一些书籍,在此列举给大家,希望对初学者有一定的帮助。One Dimensional Real and Complex Dynamics实与复动力系统)需要学习的资料如下:

基础书籍:

复分析基础:本科生课程。学习数学知识自然需要循序渐进,除了必要的数学分析,高等代数之外,分析学则是动力系统所必备的知识之一。既然是复动力系统,那肯定就要集中于研究复分析,因此本科的复分析则是复动力系统的必修课之一。

(1) Complex Analysis, 3rd Edition, Lars V. Ahlfors

(2) Complex Analysis, Elias M. Stein

进阶复分析:研究生课程

到了研究生阶段,其实也不足以直接上手搞科研,需要进一步地学习黎曼曲面,拟共形映射等专业书籍,才能够为复动力系统的学习打下基础。

(1) Lectures on Riemann Surfaces (GTM 81), Otto Forster

(2) Lectures on Quasiconformal Mappings, Lars V. Ahlfors

实分析基础:本科生课程

研究动力系统,实分析也是其基础知识之一,无论是通过学习 Stein 还是 Rudin 的教材,都是为了进一步地了解基础知识。

(1) Real Analysis and Complex Analysis, Rudin

(2) Real Analysis, Elias M. Stein

专业书籍:

实动力系统:

(1) One Dimensional Dynamics, Welington de Melo & Sebastian VanStrien

这本书难度较大,上手的时候不建议直接看这本书。

OneDimensionalDynamics
One-Dimensional Dynamics

(2) Mathematical Tools for One-Dimensional Dynamics (Cambridge Studies in

Advanced Mathematics), Edson de Faria / Welington de Melo

MathematicalToolsforOneDimensionalDynamics
Mathematical Tools for One-Dimensional Dynamics

复动力系统:

(3) Dynamics in One Complex Variable, John Milnor;Milnor 的教材总是写的清晰明确,容易上手,推荐初学者可以读这本书。

DynamicsinOneComplexVariable
Dynamics in One Complex Variable

(4) Complex Dynamics, Lennart Carleson;Carleson 的教材偏向于分析学,读起来其实也有点难度,还是读 Milnor 的教材相对容易。

ComplexDynamics
Complex Dynamics

(5) Complex Dynamics and Renormalization, Curtis T. McMullen;McMullen 的书适合当做查阅,也不太适合从头到尾读下去。

ComplexDynamicsandRenormalization
Complex Dynamics and Renormalization

(6) Renormalization and 3-Manifolds Which Fiber over the Circle, Curtis T. McMullen

Renormalizationand3Manifolds
Renormalization and 3-Manifolds Which Fiber over the Circle

(7) Iteration of rational functions (GTM 132), Alan F. Beardon

遍历论:

(8) An Introduction to Ergodic Theory (GTM 79), Walters Peter

学术会议

除了日常的科研之外,博士生时不时地可以去参加一下学术会议,不仅可以去参加本方向的学术会议,也可以去参加其它方向的学术会议,只要有一份邀请函即可。

如果是在 NUS 的 IMS(Institute for Mathematical Sciences)举办的学术会议,一般来说只要是在校的研究生都是可以参加的。记得当时参加的第一个学术会议是关于 PDE 的,标题叫做 Hyperbolic Conservation Laws and Kinetic Equations:Theory, Computation, and Applications(1 November – 19 December 2010)。笔者去听这个系列讲座是因为在 2010 年选择了一门 PDE 的研究生课程,而这个讲座则是作为课程的一部分。

IMSWorkshopGroupPhoto2012_6
IMS 的偏微分方程学术会议

笔者参与的另外一个学术会议则是关于动力系统的,标题叫做 Workshop on Non-uniformly Hyperbolic and Neural One-dimensional Dynamics(23 – 27 April 2012),主要是关于非一致双曲动力系统方向的研讨会。笔者记得当时所修的课程应该只有概率论(Probability II)一门课,因此上课的任务不算很重。参会的时间恰好是学期快结束的时候,科研的任务也不算特别繁重。因此,积极参与各种学术会议也算是科研的其中一部分,一来通过参会可以了解当前的学术研究情况,二来可以认识学术界的各种人士,也算是扩大学术交流圈子的好机会。

IMSWorkshopGroupPhoto2012_2
IMS 的动力系统学术会议

既然是学术会议,那自然就有各种各样的 Presentations,学术会议的第一天通常是需要有 IMS 的领导来致辞的,表示学术会议正式开始。每天的学术会议都需要有个 chair 来组织,一天的学术会议基本上是从早到晚,大约从早上 9:30 开始,到下午 4:40 结束。而每个学者汇报时间大约是 50 mins 左右。

IMSWorkshopGroupPhoto2012_3
第一天的研讨会安排

这次的学术会议是关于动力系统方向的,那师兄们自然是需要上台做报告的。当时上场的师兄包括大师兄和二师兄,至于三师兄和我则暂时没有成果可以汇报。两位师兄在 IMS 的报告厅里面做了十分精彩的成果展示,会议之后也有不少同行来与师兄们讨论问题。

IMSWorkshopGroupPhoto2012_4
同门汇报工作

一般来说,每次研讨会的开始和结束都需要有一个仪式,除了 IMS 的领导致辞表示会议开始之外,在茶歇时间(Coffee Break)期间是可以四处走动的,并且在第一次茶歇的时候,全体参会人员都会在 IMS 附近拍照留念,预祝本次研讨会成功举办。

IMSWorkshopGroupPhoto2012_5
Group Photo

论文

读到博士自然需要研究一下相应的课题,例如下面这种就是数学系博士生所研究的课题。​

Question. 是否存在 \ell\geq 4 的偶数和复数 c\in\mathbb{C} 使得 f(z)=z^{\ell}+c 的 Julia 集合 J(f) 是正测度?

针对这个课题,数学系的博士生需要翻阅历史上的相关书籍和论文,阅读其相关论文才能够得到前沿技术和进展。当年花时间阅读的论文主要是几篇 Annals 上面的文章,参考资料也是这几篇文章,不过每一篇文章至少都是 40 页左右,基本上看一篇文章需要花几个月的时间。

1. Combinatorics, geometry and attractors of quasi-quadratic maps,Pages 345-404 from Volume 140 (1994), Issue 2 by Mikhail Lyubich

Paper_1

2. Wild Cantor attractors exist,Pages 97-130 from Volume 143 (1996), Issue 1 by Hendrik Bruin, Gerhard Keller, Tomasz Nowicki, Sebastian van Strien

Paper_2

3. Quadratic Julia sets with positive area,Pages 673-746 from Volume 176 (2012), Issue 2 by Xavier Buff, Arnaud Chéritat

Paper_3

4. Polynomial maps with a Julia set of positive measure,Nowicki, Tomasz, and Sebastian van Strien,arXiv preprint math/9402215(1994).

Paper_4

备注:第 4 篇文章 Polynomial maps with a Julia set of positive measure 里面有错误,通过其证明是无法得到最终结论的,因此是否存在正测度的 Julia 集合一直是未知的。直到 2012 年的第 3 篇文章出来,才算证明了二次多项式存在正测度的 Julia 集合。但是对于高次多项式,是否存在正测度的 Julia 集合则是完全未知的。

在拿到论文和课题之后,那就开始需要研究了。草稿纸也算了一张又一张,论文也打印了一份又一份,科研之路哪有一帆风顺的,基本上都是历经曲折,才能够达到毕业的彼岸。毕业的时候写了一篇文章《科研这条路》,以此来纪念读博五年的生涯。

PlanandReality
理想与现实

参考资料:

  1. 科研这条路
  2. 维基百科:Julia 集合

 

一个数学家的辩白

《一个数学家的辩白》是数学大师 Godfrey Harold Hardy 在 1940 年左右的作品,可以称之为 Hardy 本人的自传和内心独白。Hardy 通过自己多年从事数学科研的经验,对数学,文学,哲学,美学等诸多学科的理解,将其写成了一本小册子。给其余的数学工作者,数学爱好者,以及不了解数学的人一个了解数学家内心的机会。

Hardy的照片
G.H.Hardy 的照片

G.H.Hardy(1877 年 2 月 7 日 – 1947 年 12 月 1 日)是一代数论大师,英国数学家,先后在牛津大学(Oxford)和剑桥大学(Cambridge)担任数学教授,与另一位英国数学家 Littlewood 共同研究数学,其研究领域包括解析数论,三角级数,不等式等诸多方向。对数论领域和分析学领域的贡献巨大,是二十世纪英国分析学派的代表人物之一。

Hardy的数学家族谱
G.H.Hardy 的数学家族谱

在卢昌海《黎曼猜想漫谈》这本书里面,提到了 G.H.Hardy 的一则小故事。当年,Hardy 在一次从丹麦回英国的途中,碰巧遇到暴风肆虐。他很担心小船会沉没,于是在上船前给朋友寄了一张明信片,上面写道:“我证明了黎曼猜想。” 如果哈代不幸遇难,因死无对证,后世将无法否认(当然也没法确认)他真的证明了黎曼猜想。然而,上帝不想让他有这样大的荣耀,所以没有让这条船沉没。

在《一个数学家的辩白》这本书中,Hardy 基于个人经历,向大家展示了一位数学家对数学这门学科的一些看法和观点。下面将会摘录其中的一些语句。

假如真的能把我的雕像塑在伦敦纪念碑上的话,我是希望这座碑高耸入云,以至人们见不到雕像呢,还是希望纪念碑矮得可以使人们对雕像一目了然呢?我会选择前一种,而斯诺博士可能会选择后一种。

如果一个数学家发现自己在写关于数学的东西,他会感到很忧伤的。因为数学家的工作是做实事,比如证明新定理,使数学有所发展,而不是谈论自己或别的数学家干了些什么。政治家蔑视时事评论家;画家蔑视艺术评论家;生理学家、物理学家或数学家一般都有类似的感觉。做事者对评论者的蔑视是最深刻的,总的来看也是最合理的。解释、评论、鉴赏是次等工作。

认为“谦卑”的人做不出优秀的工作。比方说,在任何一个学科里,教授的首要职责之一就是对自己这一学科的重要性以及自己本人在这一学科的重要性进行一点夸大。假如一个人总在问自己:“我所做的事是值得做的吗?”以及“我做这个合适吗?”这都会使自己永远无能而且也让别人泄气。这种人该把眼睛闭上一会儿,更多地考虑自己的学科和自己本人的情况,而不是更多地考虑学科与自己所应得的报酬。这不太困难,因为更加困难的是依靠紧闭眼睛来使自己的学科与自己本人不受他人所嘲笑。

我之所以做我的事,因为这事是,而且是惟一的一件我完全可以做好的事。我是个律师,或者是一个股票经纪人,或者是一个职业板球手,这都是因为我对这一特别的工作有些真正的才能。我做律师,是因为我伶牙俐齿,而且对法律之微妙感兴趣;我做股票经纪人,是因为我对股市行情的判断迅速而准确;我做职业板球手,是因为我挥拍非同一般地好。有人说,我做个诗人或数学家也许更好,但不幸的是,我并没有才能做这样的工作。

我并不认为大多数人能够做出上述那样的辩解,因为多数人什么工作也做不好。可是只要这种辩解说得振振有词,它就很难反驳,事实上只有少数人能进行这样的辩解:也许只有 5% 或 10% 的人可做得不错。而只有极少数人可做得真正好。而能做好两件事的人只有寥寥无几的了。假如一个人有真正的才能,他就应该乐于牺牲几乎所有的一切,以充分发挥自己的才能。

我会设想我是在为那些现在和过去都满怀雄心壮志的人写这本书的。一个人的首要任务,进一步说,一个年轻人的首要任务是能显示雄心壮志。雄心是一种可以合情合理地以许多形式表现出的一种宏大高尚的志向。阿提拉(Attila)和拿破仑的野心中就有某种高尚的志向,但最高尚的雄心壮志是在自己身后留下某种永存的价值。

  在这平坦的沙滩上,
  海洋与大地间,
  我该建起或写些什么,
  来阻止夜幕的降临?
  告诉我神秘的字符,
  去喝退那汹涌的波涛,
  告诉我时间的城堡,
  去规划那更久的白昼。

有很多高尚的动机驱使人们进行某项研究。在这些动机中,最为重要的有三种。 首先(舍此必一事无成)是理智的好奇心,也就是对了解真理的渴望。其次是对自己专业工作的自豪感,只有工作才能使自己得以满足的那种渴望。任何自尊的数学家,当他的工作与其才能不相称时,耻辱感会压倒一切。最后一个就是雄心壮志,期望得到名声、地位甚至随之而来的权力和金钱。

假如理智的好奇心、对专业工作的自豪感和雄心壮志是在研究工作中占支配地位的动机的话,那么,毫无疑问,没有哪个人比一个数学家有更好的机会来满足这些条件了。数学家的研究学科是所有学科中最令人好奇的。没有哪门学科中的真理会像数学那样奇异。数学是最精细与最富有魅力的技艺,而且数学研究提供了展示真正的专业技能的机会。最后我还要说的是,正如历史所充分证明的那样,不论数学内在的本质价值何在,其成就是一切成就中最持久的。

数学家,就像画家、诗人一样,都是模式的创制者。要说数学家的模式比画家、诗人的模式更长久,那是因为数学家的模式由思想组成,而画家以形状和色彩创制模式,诗人则以言语和文字造型。一幅画或许蕴含着某种”意境”,但通常是平凡而无关紧要的;比较之下,诗意要重要得多,不过,像豪斯曼坚持认为的那样,人们习以为常地夸大了诗意的重要性。他说:“我难以确信存在诗意之类的东西⋯⋯诗歌并不在于表述了什么,而在于怎样表述。”

 倾江海之水,洗不净帝王身上的膏香御气。

一个有意义的数学概念,一条严肃的数学定理从下述意义上被认为是“普遍的”。数学概念应该是许多数学构造的要素,应能应用于许多不同种定理的证明。

一个有意义的定理必须具备的第二个特性就是“深刻性”。其概念也不易定义,它与“难度”有关,深刻的思想往往难以掌握,但二者也并不完全一样。毕氏定理及推广所蕴含的概念有一定的深度,但现代数学家绝不会认为它难懂。相反,一个定理可能极为肤浅,但却难以证明–如丢番图(Diophantus)的有关求方程整数解的定理。

纯数学和应用数学的这些差异对它们本身很重要,但与我们关于数学“实用性”的讨论毫无关系。我曾谈到过费马和其他一些伟大的数学家的“真正的”数学,具有永恒美学价值的数学,如最好的希腊数学。它们之所以永恒,是因为其中的精华就像文学中的精英部分,在几千年后还能引起千万人强烈的满足感。

对于我的一生,或者说任何一个与我类似的数学家的情况是:我所做的工作扩充了知识,并且帮助他人在这座知识的大厦上添砖加瓦;而这些添加部分与伟大的数学家们的创新,或任何其他大大小小艺术家们的作品的价值的不同仅仅在于程度而不在于种类。这些数学家和艺术家都在死后留下了某种纪念物。

伽罗瓦 21 岁去世,阿贝尔 27 岁去世,拉曼纽扬 33 岁去世,黎曼 40 岁去世。也有些人确实是在较晚时取得伟大成就的,高斯就是在 55 岁时才发表了他的微分几何学的重要论文(但在此十年前他就已经形成了他的基本思想)。我还不知道有哪一个重要的数学进展是由一个年过半百的人创始的。假如一个年长的人对数学不感兴趣而放弃了它,这种损失不论对数学本身还是他本人来说,都不十分严重。

阅读《一个数学家的辩白》这本书,可以通过字里行间看到作为一个数学家的 Hardy 对数学的热爱,对自己正值花甲之年而无法做出更好的科研而流露出一种淡淡的忧伤。

其实,二十世纪三十年代末以后,Hardy 的学术活动就开始逐渐减少。1939 年第二次世界大战爆发,让 Hardy 感到更加苦闷。四十年代以后,Hardy 很少参与学术活动。1947 年 12 月 1 日,Hardy 在剑桥去世,享年 70 岁。留给大家的除了数学上的各种定理,书籍之外,还留下了这一本小册子,《一个数学家的自白》。

参考书籍:

  1. 《一个数学家的辩白》;
  2. 《黎曼猜想漫谈》。

zr9558's Blog