我本人平时很喜欢看科普知识,自从 2016 年得知 Alpha Go 战胜李世石之后,对人工智能很感兴趣。通过网络搜索,我报了吴恩达在 Cousera 上面的公开课。虽然在这门公开课里,吴恩达力求深入简出,但还是有很多内容我不太懂。
我是 2005 年大学毕业的,专业是市场营销,所以在数学和编程基础上我比较薄弱,再加上我毕业也有十几年了,甚至有很多中学数学也都遗忘了。刚好这段时间我听了喜马拉雅上的《卓老板聊科技》里讲到数学家伽罗瓦的故事,引起我对数学的兴趣。所以我决心学好数学。
2016 年我首先把中学数学快速地再学了一遍,其实中学数学很多内容比如三角函数,当时学的时候觉得无用,但是其实都是很重要的基础。从 2016 年下半年开始,我从单变量微积分开始学进阶一些的数学。
2017 年,我自学了单变量微积分、多变量微积分、线性代数、微分方程、离散数学和统计学。编程方面,去年我学了 Python,Matlab 和 SQL。 Python 是跟人工智能关系很大的语言,而 Matlab 在机器学习上面也很重要。
今年我计划继续加强微积分、线性代数、微分方程和离散数学方面知识。同时会在概率学、数论、数学分析和优化论上面花费一些功夫。今年下半年,我还打算开始学习随机过程(网上看到随机过程比较难)。
编程方面,我原来打算学 Java 和 C++ 语言。但是之前在知识星球上和群友交流,别人意见是:编程语言不需要学太多。考虑到数学可能更重要,今年我在编程方面的计划是,主要是继续巩固 Matlab 和 Python 的技能。
明年我的计划大体是开始学习集合论、图论和泛函分析。开始尝试阅读一些人工智能方面的相关论文。
除此之外,我每天大概会花 20 分钟左右学习英语,这个时间并不固定,一般都是拿坐电梯、排队买咖啡的时间学英语。我觉得学英语还是很重要的,只有英语好才能听懂视频课程,看懂原版教材,此外以后要读英文论文也需要一定的英语能力。
我觉得学习方法是很重要的,很多东西学不好大多不是智商问题,更可能是没有学习热情,或者学习方法不对。通过这几年的学习,我总结出不少我认为很有效的学习方法,同时也学习了很多别人先进的学习方法。在这方面我从万维钢老师的专栏中学到不少。
近年来一万小时刻意练习理论很火。万维钢老师说过数学是特别适合刻意练习的,我很想试验一下 1 万小时下来,我能不能真的从无基础开始成为人工智能方面的专家。这里刻意练习很重要,虽然现在社会上终身学习的风气很旺,但是大多数人的学习是娱乐性的,这不能叫做刻意练习。比如我一开始通过看可汗学院视频学数学,虽然可汗的数学视频非常好,但是我觉得看可汗学院并不是很好的学数学的办法。因为一来可汗学院教的数学内容偏简单,像微积分,线性代数等章节,可汗只讲了很基础的内容。二来可汗学院习题不够。我一开始通过可汗学院学数学,当时看视频觉得都懂了,结果一个月后回顾时发现所有知识点全都忘光了。这主要原因就是缺乏练习。学数学一定要多做习题,把一种算法练到成为条件反射才算是掌握了这个算法,我觉得这才是刻意练习的精髓。
我觉得上麻省理工学院的 MIT OPEN COUSERWARE 网站学数学很有效,这个网站上面有麻省理工的很多课程的教学视频,老师讲课质量都非常高,比国内的高数教学视频要好。除此之外,对于不少课程,这个网站上面还有教科书推荐,课后习题和答案,甚至还有期末考试试卷和答案。我觉得除了看他们的视频之外,按照他上面的推荐买一些英文原版的教科书来学。每个章节结束后自觉做习题很重要。最重要的是学完一门课自己应该做几份这门课的期末试题,我对自己的标准是自己做卷子能达到 80% 以上的才能算过关,否则应该重新学一遍。
我把全年的学习分成 50 个小计划,这样每完成一个计划有一定的成就感。同时每 100 小时作为一个学习区块,不同的知识内容按照不同的难度分配不同的学习时间区块。这样做一来可以逼迫自己在一些知识上花费足够的时间,二来可以避免有些知识上花费过度的时间精力。因为每个人时间都是有限的,假如你一年自学有 1000 小时可供利用,你不希望在某个细节上花费掉三四百小时,导致其他知识没时间学。要设定一个难度合理的计划其实也不容易,去年我的计划就远远没完成,今年过了 6 周时间,我也只完成了 3 周的计划,希望能尽快补上。
时间管理方面,其实很多闲暇时间都可以被利用上。我现在大体能做到把一天之内闲暇时间都利用上了。走路,上厕所,洗澡时可以听音频节目,通勤时可以阅读一些学习内容。我觉得自己开车是很浪费时间的事情,坐公共交通的话就可以把通勤时间利用上了。其实光是坐电梯时都能挤出不少时间。我算过,平均每天坐电梯,等电梯的时间都要十几分钟左右。这段时间其实拿来背单词很不错,15 分钟可以背 50 个单词左右。其实每天要真挤时间,可以挤出很多时间来学习,一般人也就每天睡 7 个半小时,工作 8 小时,每天剩下 8.5 小时除去一些杂事和适当娱乐,理论上也能拿出 3 到 4 小时出来。周末在家可以花更多时间学习。当然有时候压力太大也会偷懒,比如我去年下半年玩某款游戏上瘾,试过连续两三晚一直在玩游戏的。自己尽量克服就好。我这两年一共学习了 2039 小时,我计划是每年学习 1500 小时,这样 7 年就可以完成 1 万小时学习。目前实际上还没有完成计划。
我个人经验是学习时最好设定 1 小时闹钟,学习一个小时,休息 3 分钟比较好。学习期间尽量手机调飞行模式,不要听音乐避免干扰。这样能最大化学习效率。我的心态是:只有 1 万个小时,浪费 1 小时就少一小时,这样能珍惜时间。
根据艾宾浩斯记忆法,我每半年会花 100 小时左右复习一下之前学习的东西。
我在极客时间订阅了王天一教授的《人工智能基础课》和朱赟的《技术管理课》,同时在得到和喜马拉雅上也订阅了一些节目。其实这些节目作为平时调剂,休闲娱乐的内容还是挺不错的。
通过分享学习。我自己有一个公众号,主要做科普知识分享,公众号叫“凌哥杂谈”。通过分享来巩固记忆和大家一起交流是愉快的,也欢迎大家订阅。
我觉得如果能真正掌握人工智能技术,未来一定是有不错的前景的。我感觉这项技术不像之前几年很火但是几年后就销声匿迹的其他互联网概念,这项技术未来应该会有越来越大的市场前景。而且和纯粹学计算机相比,人工智能的门槛较高,尤其是数学门槛。这阻碍了一部分老程序员转行从事人工智能的流动性。
有些人觉得终身学习是一件很苦的事,其实把这个当成一个兴趣的话,学习也可以当成一种娱乐。有很多人每天花费很多时间做健身,我以前也练过健身。其实训练头脑跟练健身是一样的,只不过我们训练的是自己的大脑而已。而且练健身的话,只要一停,半年后身体就复原了。而对大脑充电,有很多知识可以保持很长时间。我以前也业余练过长跑,参加过马拉松,我觉得学习一项技能和练健身和练长跑所需的自律和练习方法都有相通之处。只不过很多人没有意识到学习也是一种锻炼。
以上是我的学习心得,和大家分享一下,希望大家能够共同进步。
如果你也有和「极客时间」的故事,欢迎投稿 stanford@geekbang.org ,有机会登上 InfoQ!
2018,一起成为极客!
这就是陪伴徐凌的极客时间专栏《人工智能基础课》。欢迎长按识别二维码订阅。
点「阅读原文」,免费试读或订阅!