小明:我看见了ImageNet图集中的那只鸟,这并不难识别啊?
老师: 是的,认出那是一只鸟并不困难。那么,图2-3(a)、图2-3(b)、图2-3(c)所示的动物是不是鸟呢?
图2-3 动物图片
小明:这还不容易,图2-3(a)和图2-3(b)都是鸟,图2-3(c)不是鸟。
老师: 没错,那你是怎么判断一张图是不是鸟呢?不妨参考图2-4先思考一下。
图2-4 鸟类的判断问题
小明:这很简单啊,有翅膀的就是鸟,没有翅膀的就不是鸟啊。
老师: 是的。在小时候,爸爸、妈妈会买一些卡片给我们玩,像图2-5所展示的那样,或者让我们看动画,有时周末还会带我们去逛动物园。然后我们就知道了世界上原来除了人以外还有许多其他有趣的生物,如猫、狗、鸟、大象等。
图2-5 动物识别卡片
在这个过程中,我们逐渐学会了判别一个图像是不是鸟的一个简单规则:有、无翅膀。基于这个规则,我们的大脑里就形成了一个像图2-6所示的鸟类分类器。
图2-6 大脑鸟类分类器1.0版
小明:是的,我就是这样判断一个图像是不是鸟的,那人工智能是不是也是这么判断的呢?
老师: 从原理上来说,是可以这么理解的,基于计算机的人工智能也可以通过这种方法构建一个鸟类分类器。还记得在第1章中,我们知道计算机对所有事物的处理都只能通过“0”和“1”来表达吧。因此,我们在构建基于计算机的人工智能鸟类分类器时,就得向计算机输入“0”和“1”,就像图2-7这样。
图2-7 人工智能鸟类分类器1.0版
在图2-7中,我们把这个人工智能鸟类分类器叫作 神经元 。为什么叫这个名字,我们将在下一节揭秘。
小明:看起来实现人工智能也不复杂嘛。不对,稍等一下,我突然想到一种动物,好像只用有没有翅膀来判断是不是鸟类是不行的!
老师: 你想到的这种动物是图2-8中最下面的那只蝙蝠吧。
图2-8 人类大脑对多输入条件的处理
蝙蝠有翅膀,但不是鸟。我们在生物课上学过鸟的定义,知道满足“有翅膀,有羽毛,没牙齿”这3个条件的动物才是鸟类。因此,我们人类的大脑,不是只依靠一个条件来对一种动物是否是鸟类进行判别的,而是经常基于多个输入条件进行判别的。如果我们要实现人工智能,那么人工智能的神经元也需基于多个输入条件进行判别,就像图2-9这样。
图2-9 能处理多个输入条件的人工智能神经元
小明:这样的神经元似乎很难设计啊,有什么好办法呢?
老师: 我们还是从人类判断鸟类的方法入手。在现实中进行判别时,不同条件的重要级别是有区别的。一些条件是决定性条件,比如用“有无羽毛”判断蝙蝠是不是鸟;另一些条件是次要条件,比如“有无翅膀”或者“有无牙齿”。因此,我们可以给输入的条件指定 权重(weight) ,代表这些条件的重要程度。这些条件经过权重的处理,再用于判断一种动物是否是鸟类。通常我们将权重设置为小数。例如,我们可以根据鸟类判断的条件,设计一个带有权重的多输入条件鸟类判别神经元,如图2-10所示。
图2-10 加入权重的人工智能神经元
小明:那怎么将权重跟输入条件结合再产生输出呢?
老师: 我们可以用非常简单易算的乘法和加法来将权重跟输入条件结合,就像图2-11这样处理。
图2-11 人工智能神经元处理输入和权重的结合
我们可以将两个图片对应的输入条件分别用神经元处理,如图2-12所示。需要注意的是,对于“有无牙齿”这个输入条件,因为鸟类的生物学定义是鸟类没有牙齿,所以我们在定义输入条件时将“无牙齿”定义为1,将“有牙齿”定义为0。
图2-12 带权重的多输入条件人工智能神经元
从图2-12可以看出,对于鸟的图像,其计算过程和输出是
1×0.4+1×0.4+1×0.2=1
对于蝙蝠的图像,其计算过程和输出是
1×0.4+0×0.4+0×0.2=0.4
小明:这里有两个输出结果,一个是1,一个是0.4,可这并不是之前咱们希望得到的是不是鸟的输出啊!
老师: 没错,所以我们还需要加上一个判别组件,这样才能构成一个完整的鸟类分类器。这个判别组件也很简单,我们用是否大于0.5(称为阈值)来进行判断就可以了,就像图2-13一样。
图2-13 加入判别组件的多输入条件人工智能神经元
因此,一个完整的人工智能神经元的结构如图2-14所示。
图2-14 完整的人工智能神经元
1.下面哪些问题属于人工智能研究的范畴?( )
A.教计算机下象棋
B.教宝宝走路
C.教机器人翻跟头
D.跟手机Siri对话
E.百度翻译
F.识别垃圾电子邮件
2.下面关于神经元的说法正确的是( )。
A.神经元可以理解为一个分类器,用于自动分类不同的物体
B.神经元只能用来分类动物图像
C.除了翅膀、羽毛、牙齿这3个特征,我们还可以设计其他的特征来分类鸟类和蝙蝠
D.神经元的特征只能手动设计
E.神经元的输入条件可以多于3个,也可以少于3个
3.神经元输入条件的权重值越大,输入条件的重要性越( );权重值越小,输入条件的重要性越( )。
4.一个完整的人工智能神经元包含哪些重要组件?
5.神经元的输入也称为特征。参照鸟类识别的神经元,尝试设计一组特征,用于人、猴子和机器人的分类。