王咏刚老师
去年开始,工作中需要做许多有关 AI 科普的事情。很长时间里一直在想,该如何给一个没有 CS 背景的人讲解什么是深度学习,以便让一个非技术的投资人、企业管理者、行业专家、媒体记者乃至普通大众明白深度学习为什么会特别有效,理解 AI 是如何帮助人们解决具体问题的。中间经由 Quora 一篇简短回答的启发,大致形成了用水流脉络来比拟神经网络的想法。曾经在面向银行界、教育界、投资界人士的演讲中,尝试过基于这个比喻的讲解方法,效果很不错。慢慢就形成了这样一篇文章,最近也被收进了李开复和我合著的科普书《人工智能》中。 【注】特别需要说明的是,本文对深度学习的概念阐述刻意避免了数学公式和数学论证,这种用水管网络来普及深度学习的方法只适合一般公众。对于懂数学、懂计算机科学的专业人士来说,这样的描述相当不完备也不精确。流量调节阀的比喻与深度神经网络中每个神经元相关的权重调整,在数学上并非完全等价。对水管网络的整体描述也有意忽略了深度学习算法中的代价函数、梯度下降、反向传播等重要概念。专业人士要学习深度学习,还是要从专业教程看起。 从根本上说,深度学习和所有机器学习方法一样,是一种用数学模型对真实世界中的特定问题进行建模,以解决该领域内相似问题的过程。 首先,深度学习是一种机器学习。既然名为“学习”,那自然与我们人类的学习过程有某种程度的相似。回想一下,一个人类小朋友是如何学习的? 人类小朋友是如何学习的? 机器又是如何学习的? 比如,很多小朋友都用识字卡片来认字。从古时候人们用的“上大人、孔乙己”之类的描红本,到今天在手机、平板电脑上教小朋友认字的识字卡片APP,最基本的思路就是按照从简单到复杂的顺序,让小朋友反复看每个汉字的各种写法(大一点的小朋友甚至要学着认识不同的书法字体),看得多了,自然就记住了。下次再见到同一个字,就很容易能认出来。 这个有趣的识字过程看似简单,实则奥妙无穷。认字时,一定是小朋友的大脑在接受许多遍相似图像的刺激后,为每个汉字总结出了某种规律性的东西,下次大脑再看到符合这种规律的图案,就知道是什么字了。 其实,要教计算机认字,差不多也是同样的道理。计算机也要先把每一个字的图案反复看很多很多遍,然后,在计算机的大脑(处理器加上存储器)里,总结出一个规律来,以后计算机再看到类似的图案,只要符合之前总结的规律,计算机就能知道这图案到底是什么字。 用专业的术语来说,计算机用来学习的、反复看的图片叫“训练数据集”;“训练数据集”中,一类数据区别于另一类数据的不同方面的属性或特质,叫做“特征”;计算机在“大脑”中总结规律的过程,叫“建模”;计算机在“大脑”中总结出的规律,就是我们常说的“模型”;而计算机通过反复看图,总结出规律,然后学会认字的过程,就叫“机器学习”。
但是,开始学新字时,这个规律就未必奏效了。比如,“口”也是三笔,可它却不是“三”。我们通常会告诉小朋友,围成个方框儿的是“口”,排成横排的是“三”。这规律又丰富了一层,但仍然禁不住识字数量的增长。很快,小朋友就发现,“田”也是个方框儿,可它不是“口”。我们这时会告诉小朋友,方框里有个“十”的是“田”。再往后,我们多半就要告诉小朋友,“田”上面出头是“由”,下面出头是“甲”,上下都出头是“申”。 ·到底计算机是怎么学习的?计算机总结出的规律又是什么样的呢? 这取决于我们使用什么样的机器学习算法。 有一种算法非常简单,模仿的是小朋友学识字的思路。家长和老师们可能都有这样的经验:小朋友开始学识字,比如先教小朋友分辨“一”、“二”、“三”时,我们会告诉小朋友说,一笔写成的字是“一”,两笔写成的字是“二”,三笔写成的字是“三”。这个规律好记又好用。
很多小朋友就是在这样一步一步丰富起来的特征规律的指引下,慢慢学会自己总结规律,自己记住新的汉字,并进而学会几千个汉字的。 (责任编辑:本港台直播) |