课外谈 “人工智能基础课”之二三闲话 不知不觉,专栏上新已一月有余。各位朋友在阅读之余的互动带给我不少的思考,借此机会呢,和你聊聊这个专栏的杂七杂八。

为什么要做基础课这个专栏?

正如开篇词中所说,人工智能很可能成为下一个生存必备的技能。不管以后是不是吃这碗饭,对人工智能原理和方法的理解都不可或缺,这是技术进步倒逼出来的结果。深一步讲,先贤孟子“劳心者治人,劳力者治于人”的名句一针见血、言犹在耳。两千多年后的今天,虽然劳心和劳力的方式都发生了翻天覆地的变化,可治与受治的关系依然不动如山。更可怕的是,不进则退的劳力者甚至没有资格受治于人,而不得不受治于算法。《未来简史》中对这个问题的论述,有些是难得的理性思考,你可以读一读。

在这个日新月异的时代,懂点儿人工智能的知识绝对有必要,极客邦的技术人们能够敏锐地捕捉到这个趋势,其前瞻性值得佩服。可是,当编辑和我商谈开设一个关于人工智能基础知识的专栏时,我的第一感觉是费力不讨好。为什么呢?因为理工类学科的基础知识普及和品三国或者解读红楼梦完全是两码事。人文学科的核心价值在于观点和见解,这是对主观意识进行加工的产物;而理工学科的核心价值在于事实和规律,这是客观世界的存在方式。这个核心区别决定了讲文学可以天马行空,可讲科学必须脚踏实地。要将脚踏实地的东西天马行空地呈现出来,绝对是个棘手的问题。

正因如此,我们的专栏定位在技术的设计思想与实现原理。根据我自己学习和教学的经验,要在有限的时间里完成新知识的入门,首要问题是理解它为什么有用,其次才是掌握它如何起作用。在每篇专栏的文章中,我都力图通过通俗的语言解释清楚方法背后的意义:每种方法都有其诞生背景和适用场景,理解这些才有助于认识方法的核心价值。如果不管青红皂白摆出长篇大论的数学公式,文章的半数字符都是拉丁字母和希腊字母,这不仅对阅读者是种折磨,也和“基础课”的宗旨背道而驰。

但想必你也有这样的经验:解释复杂问题时,高度抽象的公式的表达能力远远胜过啰哩啰嗦的语言。所以如何能像宣传语所说的通俗易懂地把算法解释清楚,其伤脑筋的程度大大超出了我的预期。对困难的估计不足使写作时每每因为找不到合适的实例抓耳挠腮已经成为常态,可一旦找到一个形神兼备的类比,那大呼过瘾的兴奋又溢于言表。对我自己而言,这又何尝不是学习与进步的过程呢?

在专栏里我们会讨论哪些内容?

在具体内容的设置上,我认为专栏作为一个相对长期而稳定的输出过程,结构化和系统性是应该满足的基本要求,而人工智能基础课这个主题恰恰具有内容编排上先天的优势。出于这样的考虑,专栏的内容以当下主流的连接主义学派为主,覆盖了数学基础、机器学习、人工神经网络、深度学习、应用场景等内容,力求给出对人工智能发展现状完整的概括。

这个专栏能给予你对人工智能概貌性的理解,但它只是块敲门砖,而不是打开人工智能神秘宫殿的万能钥匙。想要深入理解人工智能,你还需要大量时间、精力、甚至金钱的付出。毕竟,劳心者也不是那么好当的。

此外,专栏的目标场景是茶余饭后的碎片化时间,因而采用的是音频为主、文字为辅的形式。在有限的容量中,我的优先选择一定是将每个话题的核心内容呈现给你。而有舍才有得意味着在突出主题的指导思想下,辅助性和支撑性内容就必然有所缩减,被舍弃的辅助支撑内容就是数学推导以及代码实现。当然,这部分内容的淡化也出于操作性上的考虑,因为公式和代码既不适合以音频的方式表达,也不适合在移动终端上处理。

但对数学推导和代码实现的淡化并不意味着这两部分内容无足轻重。如果有志于从事人工智能理论方面的研究,那么理论问题就是必须征服的大山。我建议你在通过专栏理解了每种方法背后的思想与思路后,再结合推荐的参考书目以及二级参考书目去深入数学细节。当然,阅读最新的论文也是跟进最新研究进展的有效方法。大部分顶级会议论文都可以在会议网站或预印本网站arxiv.org上免费获取,可以根据自己的需要有选择地阅读。

纸上得来终觉浅,绝知此事要躬行

如果要在人工智能的工程岗位上大显身手,就要让知识转化成能力。其实要实现这个转化,最好的办法就是参与到实战项目中。无论是科研项目还是工程项目都能让你在实践中成长,这个“不想学也得学”的过程虽然痛苦,却有涅槃的奇效。如果没有参加项目的条件,一个退而求其次的选择是做一做网络公开课的大作业。包括辛顿和吴恩达这些大咖都在各种平台上开设有人工智能的公开课程,完成其中的项目也是很好的实践方式。

虽然网络上的资源非常丰富,大量优质的代码唾手可得,但我还是建议你亲自动手编一编写一写。毕竟终日而思不如须臾之所学,即使是Hello World在实际编写时都可能出现这样那样的问题,远非想象中那么简单。在这里也给你推荐一本Peter Harrington所著的Machine Learning in Action,中译本名为《机器学习实战》。本书是基于Python语言,面向应用的算法书,包含大量现实案例,可以作为代码学习的参考。

我们该如何对待人工智能?

最后要说的是,对待人工智能,我们既不能轻视它,也不该神化它。只要掌握人工智能的原理与方法,就永远轮不到它来主宰你的命运。所以我们务必以平常心来看待人工智能,不要被媒体的聒噪所忽悠。对人工智能的态度应该是对知识本身的尊重,而不是对虚无缥缈的超智能的莫名惶恐。回头想想,你在学习高等数学或者C语言的时候会有它们会毁灭世界的担忧吗?人工智能和高数、C语言又有什么本质区别呢?

在此,我要衷心感谢你的厚爱与反馈,它们既为我指明了改进的方向,也是督促我奉献更好内容的不竭动力。当然,受个人水平所限,专栏中肯定存在着各种各样的不足,恳请你继续提出宝贵建议,让你我一起进步、成长。

与君共勉!

参考资料

https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e4%ba%ba%e5%b7%a5%e6%99%ba%e8%83%bd%e5%9f%ba%e7%a1%80%e8%af%be/%e8%af%be%e5%a4%96%e8%b0%88%20%e2%80%9c%e4%ba%ba%e5%b7%a5%e6%99%ba%e8%83%bd%e5%9f%ba%e7%a1%80%e8%af%be%e2%80%9d%e4%b9%8b%e4%ba%8c%e4%b8%89%e9%97%b2%e8%af%9d.md