500多页的机器学习入门笔记,下载超5万次,背后都有什么故事?
Youth is not a time of life, it is a state of mind. —— 塞缪尔·厄尔曼
虽然年纪大了,体力精力都下降了,但我不觉得自己很老,尚有一颗拼搏的心。——梁劲
1991 年,刚刚走出大学校门的梁劲被分配到政府部门当公务员。工作包分配,而且还是公务员,在很多人看来,这应该是一份非常令人艳羡的工作。但是对梁劲而言,这却是他人生中最黑暗的时期。
那段时间每天上班就是喝茶、看报、聊天,下班后就是玩游戏,但这不是我想要的生活,人生毫无希望的感觉,我想摆脱这种生活模式,但又觉得无能为力,我不知道如果不做公务员,我还能做什么,我什么也不会啊,我这 10 年最宝贵的青春就这么稀里糊涂荒废了。
三十而立,但是不破不立。
2001 年,梁劲在亲朋好友的反对声中毅然选择离开体制,并在因缘巧合之下,加入了一家 IT 创业公司,担任产品设计经理,负责产品的构思,以及具体的用户界面设计。从政府公务员到创业公司,一切都得从头学起。
2005 年,梁劲离开待了 4 年的创业公司,进入 SAP 做设计师, 从事用户体验方面的工作,直到如今。
时间来到 2018 年,身为设计师的梁劲却在 AI 社区一夜之间小有名气。
今年 4 月,梁劲在百度云盘上传了一份自己整理的学习笔记——《机器学习——从入门到放弃》。这份学习笔记 540 多页,图文并茂,而且全部用英文撰写,如今这份文档的下载量已超过 50000 次。由于在海外的 AI 社区反响强烈,梁劲随后又将这份文档上传到了 DropBox。
(附下载地址:https://pan.baidu.com/s/1tNXYQNadAsDGfPvuuj7_Tw)
从动笔到完成,梁劲差不多花了一年左右的时间,作为人工智能的门外汉,其中艰辛,可想而知。
关于梁劲,关于《机器学习——从入门到放弃》的诞生始末,希望下面的对话能给你一点启示。
AI科技大本营:能简单自我介绍下吗?
梁劲:我是一名设计师,目前在 SAP 从事用户体验方面的工作,自 10 多年前加入这家公司以来,一直在做 businessapplications。SAP 作为全球最大的企业级软件系统供应商,在全球范围内很多超大公司都在用 SAP 的软件解决方案,包括微软、苹果、Intel、波音、3M 等 ,SAP 在企业管理系统方面积淀深厚,在这 10 年里,我参与多款产品的研发工作,其中包括和数千名同事一起研发一款耗资数十亿美金的大型产品,获得了很多经验、知识、教训。目前我参与的产品,是一款让普通用户自助式分析和展现数据的 CloudAnalytics 产品。
在加入 SAP 之前,我在一家初创公司担任产品设计经理。这家 startup 是由 Intel 亚太区一个 VP 创立的,创立之时,正值互联网泡沫破灭的时候,我们一群年轻人满腔热情地加入了这家公司。在奋斗了 4 年之后,我选择了离开,很不幸的是这家公司后来很快倒闭了。
作为早期员工,我经历了产品从诞生到死亡的全过程,很多感慨,即便离开这家公司很多年了,回想起来也依然有点感伤,就像是看着一个小宝贝诞生后不幸夭折的感觉。虽然公司的产品失败了,但这段经历是我职业生涯成长最快,收获也最大的一段时间。
AI科技大本营:您大学毕业之后都从事了哪些工作?
梁劲:我的专业是化学相关,大学毕业后,被分配到政府部门做公务员。这是我人生当中最黑暗的 10 年,那段时间每天上班就是喝茶、看报、聊天,下班后就是玩游戏,但这不是我想要的生活,人生毫无希望的感觉,我想摆脱这种生活模式,但又觉得无能为力,我不知道如果不做公务员,我还能做什么,我什么也不会啊,我这 10 年最宝贵的青春就这么稀里糊涂荒废了。挣扎了很久,我最后决定破釜沉舟,下定决心把自己的饭碗砸掉了。
这些年很多人为了考公务员,挤破了头,是不少人热衷的工作,即便在当时,公务员也是热门工作。当时我辞职的时候,周围的朋友一片反对之声,有一个认识的领导,对我说:“你是不是脑子出问题了?多少人钻头觅缝想当公务,你却要自己砸掉铁饭碗!”回想起来,这一生做出了很多愚蠢的决定,但离开政府部门是我这一生最正确的抉择。
离开政府后,因为机缘巧合,我加入了刚才提到的那家创业公司。其实一开始是非常艰难的,从政府部门跳到浑身不搭界的 IT 创业公司,技能上是有所欠缺的,我所有的相关技能都是基于兴趣爱好自学的,从专业程度上来说,我完全就是新人。
我在那家公司,负责产品的构思,以及具体的用户界面设计。因为是初创小公司,所以职责比较综合,我在这家公司边做边学,逐渐在综合能力上得到了很大的提高。现在遍地都是 startup,其实当年国内的创业公司非常非常少,我们做的产品,最早是对标 Groove(后被微软收购),后来产品方向变了,尝试过不同的方向,但最终还是失败了。
在初创公司工作,有朝不保夕的感觉,但做事也有它的好处,与 9 万人的大公司相比,在小公司个人其实有更强的 ownership,对产品有更大的影响力,可以及时验证 idea 最后的成效,虽然公司产品最终失败了,但这个过程个人收获不少。在创业公司打拼了几年之后,迫于生计,我最后选择了进入外企,开启了另外一段职业生涯。
AI科技大本营:从什么时候开始关注人工智能?因为什么原因而关注?
梁劲:最早关注人工智能,大概是在 2016 年,也就是在 AlphaGo 一鸣惊人之后,当时感觉很震撼。然后开始断断续续看关于人工智能相关的文章和视频,但是还是停留在最基本的概念阶段。后来在网易公开课上,试图看吴恩达在斯坦福的机器学习教程(不是 Cousera 的那个版本),看了一阵就放弃了,因为看不懂 。
其实我不是程序员,本身没有很强的动机去深入学习 AI,我当时做的产品本身也不涉及 AI。只是我做数据可视化产品,已经好些年了。看到人工智能的火爆,我在思考是否有机会用 AI 重塑传统的Business Intelligence/Analytics(商业智能/商业分析)?
长期以来,传统的 Business Intelligence/Analytics 都是基于历史数据,关注的是 “whathapped? whydid it happen?”,它关注的是过去,但高级或者新一代的BI/Analytics 是predictivesolution,更关注的是未来。“What will happen?”甚至是“Whatis the best that could happen ?”
传统的BI(business intelligence)虽然号称商业智能,但其实没有真正的智能。用 AI 去革新 BI/Analytics,才有机会提供真正的“智能”,然而这不可避免会涉及到 AI/Machine Learning,如果我自己完全不懂,我又如何能去设计突破性的 Analytics 产品呢?所以,我就有了学习“机器学习”的动机,我并非想成为这方面的专家,而是希望通过学习“机器学习”,了解它的原理,想把它和传统的 Analytics 结合,看看有没有机会做出有突破性的创新产品。
AI科技大本营:什么时候产生自己动手写一本机器学习教程的想法的?为什么?
梁劲:学习“机器学习”完全是自我驱动的,并非是工作上的硬性要求,而且我这是跨界学习,作为非程序员,要去学“机器学习”,本身挑战不小。但凡自学新的 topic,特别是对上有老、下有小的职场人士,要长期坚持下去其实是不容易的事情。如果这个 topic 还很难,如果没有强烈的动机,不少人学着学着就很容易放弃了,这是人性使然。
我在学习初期,也遇到巨大的困难,根本学不下去。后来自己想方设法在网上找各种英文教程硬着头皮看,勉强看懂一些,到后面才越来越顺了。在看的过程中也做了一些笔记,到后来内容也积累得越来越多。
Learningbydoing和 Learningbyteaching都是高效的学习方法,所以,我就想通过 Learningbyteaching 的方式去学习,于是产生了把笔记整理成教程的想法。通过整理笔记,重新组织,也是一个整理思路,加深理解的过程。
在接触机器学习时,有两篇文章让我印象深刻。一篇是 Machine Learning is Fun!(https://medium.com/@ageitgey/machine-learning-is-fun-80ea3ec3c471),还有一篇是 ”图解机器学习(http://www.r2d3.us/visual-intro-to-machine-learning-part-1)”。我意识到很难的 topic 其实可以用直观、有趣的方式去呈现。市面上机器学习的教程可谓多不胜数,但写的直白简单的却凤毛麟角。人都喜欢看图的,讨厌看大段大段枯燥乏味的文字,因此,我萌发了用图形化的方式去写一份教程的想法。
AI科技大本营:在开始动笔之前做了哪些准备?
梁劲:写这个教程,其实是边学边写。针对每个算法,查书籍,在 YouTube上看视频、在 Google 上搜索介绍算法的文章,特别是斯坦福、卡内基梅隆大学的课件,如果只是简单的黏贴和复制,那是网络搬运工,没有太大价值。我在一开始就定位于做一份高质量的精品笔记,所以在消化它们的基础上,吸取精华,并重新组合,尽量以图形化的方式来展现。
虽然这份笔记的内容大部分都来自别人,但解构并重组,也算是一个再创造的过程,这个过程特别耗时。打个比方,搞懂一个算法,花了一个星期,再把它用新的方式表述,花了 2-3 个星期。我不是 AI 专家,这份笔记跟市面上的教程,从深度或广度都没法比,但我自信它对于初学者的友好性,可能不亚于绝大部分教程。
AI科技大本营:您是怎样学习机器学习的数学知识的?
梁劲:吴恩达有几个视频,介绍机器学习里用到的常用数学知识,可能只需要 2-3 个小时学习就能了解了。
AI科技大本营:您是如何安排写作时间的?
梁劲:为了写这个教程,占用了大量私人时间,经常做到深夜,周末泡在星巴克写,过年的时候都每天写,这是一个艰难的过程。
AI科技大本营:在写这本教程的过程中都碰到了哪些困难?
梁劲:遇到最大的困难,还是数学,这恐怕也是多数人学机器学习遇到的最大障碍。我大学毕业多年了,对于数学早已忘得一干二净,每次看到算法部分,看到数学就崩溃,看不懂啊,那些符号是啥意思都不知道,仿佛天书一般。后来看了 AndrewNg(吴恩达)的 Coursera 上的教程,然后逐渐就能看懂那些公式了,看懂那些数学符号了。要精通 MachineLearning 肯定需要很懂数学,但如果只是入门和应用,需要懂的数学并非想象的那么难。我在做这份笔记时,考虑到了初学者忘记了数学这种情况,尽量图解注释了相关公式。
AI科技大本营:从动笔到完成大概花了多长时间?是什么让您支撑下去的?
梁劲:前前后后,大概花了一年左右时间。回头一看,我都不知道自己是怎么坚持下来的。整个过程挺艰难的,有时看不懂算法的时候,心里那个着急啊,数学忘光了,学起来非常吃力,有时也难免有想放弃的想法。只是又觉得笔记做得这么多了,貌似做的还不错,放弃也有点可惜,于是又硬着头皮做下去,那些困难后来基本也克服了。
AI科技大本营:在这个过程中您最大的收获是什么?
梁劲:整个过程,我特别想验证的一点,就是是否可能把特别复杂的东西,用浅显易懂的方式把它讲述清楚?目前来看这个目标初步达到,从读者的反馈来说,他们对笔记的评价非常 positive。如果有资源和团队,我很自信还能以更好的方式去呈现概念,做出一份非常好的优质教程。只是限于成本和时间,我一个人目前没有不太可能做到这点。
太多的技术书籍和文档都写得晦涩难懂,为什么不能写得浅显易懂呢?可是要把复杂的东西讲得深入浅出,让别人读起来顺畅,读起来舒服,这本身就是一个巨大的挑战。
我们的教育体系,没有怎么教过学生如何去以友好的方式、以结构化的方式去陈述和表达概念,甚至非常多的老师也不知道怎么很好地教授复杂的概念,照本宣科。无数学生深受其害,不是学生笨,而是老师不会教。很多一流的专家,长于技术,长于研究,但不善于清晰易懂地表达,他们更不知道以何种方式向初学者去表达。
曾经看过网上有人说,“不要使用同济版《高等数学》教材….美国的教材写的真不错,通俗易懂;麻省理工的老师教的真是好,深入浅出。国内的教材怎么就这么难懂!但是同样是高数,为什么学起来感受会差别这么大呢?”,我没有学过同济版的高数,但我有类似的感觉,国内的教材,各种技术书籍,普遍写的很烂。不是 topic 太难,而是它没有被以合适的方式去表述!
我在想一个问题,国内的中学、大学教材,是否有必要来一次改写大翻新?大学里是否有必要把“视觉传达设计/communication design”作为一门必修基础课?
这是一个终生学习的时代,如何让学习变得更轻松,更高效,更有趣,这里面有很多方法和技巧,值得有志人士去研究,我也倡议一下,希望设计师、TechnicalWriter、产品专家、技术专家、心理学家、教育学家,共同努力研究这方面的实践方法,总结提炼BestPractice。比如吴恩达的《机器学习视频教程》,算是机器学习领域屈指可数的优秀教程了,里面有很多值得学习的教学技巧,以后有时间,可以写篇文章分析总结好的展现技巧。
AI科技大本营:笔记传到网上之后,有人给您提意见吗?
梁劲:有的,不断有读者发邮件或微信后台留言点赞,表示感谢。普遍的评价是教程做的精美,觉得教程写的很清晰、浅显易懂。当然也有读者帮助指出了教程中的差错,提出建议,并期望提供更多算法的介绍。
AI科技大本营:未来会关注哪些 AI 领域?打算写另外一本教程吗?
梁劲:未来可能会关注一下强化学习。暂时没有写另外一本教程的打算。我这个英文版笔记是无偿分享,不断有读者问是否有中文版,很抱歉暂时没有这个计划,做这个太耗费精力,以后看情况再说吧。
AI科技大本营:对想转型 AI 的职场人士有什么建议?
梁劲:我也不是 AI 专家,提建议不敢当。我只是想说,无论公司,还是个人,需要不断进化,以适应环境和趋势的变化。长期局限在某个领域和环境里,即便成为专家。如果不积极拥抱新事物、新知识,有 overfitting (过拟合)的巨大风险,一旦局势发生巨大变化,原先的知识、技能、优势都会化为大幅贬值,甚至化为乌有,被时代所抛弃。保持积极的学习心态,是避免自己走向保守封闭,跟上历史进程的有效手段之一。