人工智能(AI) 通俗演义
作者:面皮(Mepy)
审核:东达
![左:对AI 一窍不通的人认为AI 会控制世界;右:我的AI 神经网络[把猫识别为狗]](https://i0.wp.com/wx4.sinaimg.cn/large/006UcwnJgy1ieddv6f55mj30iw0c642w.jpg)
AI(Artificial Intelligence),即人工智能,是人类通过一定的方法模拟人类的智能。这里的方法,主要是数学方法,也就包括了各种各样的数学公式。我们一般把这些方法叫做“算法”。
模仿
为了模仿人类的智能,我们要先了解人类智能处理问题的流程。下面用识别手写数字做例子。
首先,人类通过眼睛来获取图像,也就是下边的两个歪歪扭扭的手写数字的图像;然后,神经元将得到的手写数字图像传送到大脑神经中枢进行处理;最后,大脑得到了与手写数字图像相对应的意义。

综上所述,人类阅读数字是经历了三个步骤(输入-处理-输出)的。
对于电脑来说,输入和输出都很简单。我们把拍到的照片往电脑里面传,这是输入。黑白照片的每一个像素都是用一个数字来表示,这个数字的大小在0到1之间,0表示白色,1表示黑色,中间是深浅不同的灰色。很多个表示像素的数字集中在一起,就能够表示一张照片。至于彩色照片,则一个像素需要3到4个数字来表示(如RGBA格式),此处省去,有兴趣的读者可以在读完这篇文章后自行搜索。电脑可以通过屏幕显示数字或图像,这是输出。
那电脑要怎么模拟大脑的处理功能呢?这便是AI的难点。
概率函数
为了便于理解,我们把例子简化为:判断一幅手写数字图像是不是4。

还是这张图。我们一看,就觉得左图肯定是“4”,右图肯定不是“4”。这也就是说,我们的大脑在进行处理后,认为:左图99%是“4”,而右图100%不是“4”。
我们的大脑对看到的图像,做了一个概率判断,这就是指我们的大脑在判断这幅图像是“4”的可能性是多少。小时候我们学会认“4”这个数字,靠的是看到大量的“4”,最终,我们的大脑就能够判断图像是不是“4”,如果是,那么有多大的可能是。类比人脑的概率判断,我们也能让电脑看大量的“4”,让它也能够做出概率判断,从而得出这个图像是“4”的可能性大小。
为此,我们要引入一点点数学。但请放心,它并不会让你觉得过于困扰。

那么,概率函数P(X)要怎么去计算呢?电脑可不会自己去计算,你必须把算法丢给它,它才会去算。为此,我们要设计一个数学方法。
首先,回顾一下,我们的黑白照片是按一个数字对应一个像素来储存的。从简单开始,我们先看一个像素的情况。我们把这个像素对应的数字用x来表示。如果x > 0.5,那么这个像素更接近黑色;如果x < 0.5,那么这个像素更接近白色。如果我们要用一个概率函数P(x)判断这个像素为黑色的可能性,那么P(x)的数学公式就是P(x) = x。也就是说,让电脑直接读这个数字,这个数字比0.5大就是黑色,比0.5小就是白色。这是一个很简单的,一个像素(也叫做一元、一维)的情况。
而一张长28个像素、宽28个像素的手写数字图像用了28 * 28 = 784个数字,去表示784个像素。
我们把这784个数字按一定顺序竖着来写,形成一个784维向量X。这个时候,X就表示了这个图像,其中每一个数字都可称为X的一个分量,第n个分量用X[n]来表示。由于不同的图像对应不同的X,相同的图像对应相同的X,所以X的784个数字分量都必须被包含在与P(X)有关的数学公式里面。

人类最熟练的方程,一定是一元一次方程。二元一次方程组也不难,联立就能解。初中学习函数,也是从一元一次函数开始。这大概可以说明,一次的形式使得问题更简单明了。所以我们要将P(X)写成一个784元一次的函数。
这乍一听起来很复杂,784元!
我们先看一元一次函数y = w·x + b,其中x乘上了一个系数W,然后加上了常数b。那么784元可能只是在一元的基础上仿写了一下。向量X的每一个分量X[n],都乘上自己的系数Wn,最后再加上常数b。

但看起来还是相当复杂啊。
因为不同的X对应不同的图像,X的不同也包括了顺序的不同(照片上的黑点位置不同),所以我们用的784个W应该要不一样。如果W一样,那么X的每一个分量的位置就不重要了,因为第几个分量都乘的同一个W,就会算出同样的概率。因此,系数W也应是784元的。为了方便起见,我们也仿照向量X,竖着来写W,表示成784维向量W,并把W的第n个分量与X的第n个分量相乘写成向量相乘的形式。

至此,我们就得到了P(X)的数学公式,然而这个公式尚未完善。
你可以先思考一下:P(X)的输出值一定在0和1之间吗?
我们知道,概率一定是[0,1]之间的一个小数,不可能是负值,也不可能比1大。而我们的784元一次函数P(X)输出的值不一定是一个在[0,1]之间的小数,而可以是“天花乱坠天马行空随心所欲漫无边际”的。我们不妨先把这个P(X)改写成Z(X),也就是Z(X) = W·X + b。然后,我们再在Z(X)外面套一个激活函数g(Z),把Z(X)强行压缩到0和1之间。这里使用的g(Z)是sigmoid函数。

这样,我们得到了概率函数P(X),可以通过输入一张图片,输出这张图片是否为4的概率。
未完的路
科研探索的结果在运用过程中也并不是一帆风顺的,而我们的探索又并未彻底完成,因此这条探索人工智能的路依旧艰辛无比。
请试着思考:
- 上面用数学方法构造出来的关于P(X)的函数跟人类的神经系统有什么相似的地方?
- 在P(X)=W·X+b中,X是表示图像的输入数据,W和b是事先知道的常数,那么怎么求得这些常数呢?(请联系我们小时候通过多看数字4的图像来认识数字4的过程)。
注:本文只是用“识别是否为4”这个例子,介绍 AI/机器学习中最基本的一类模型思想。







