人工智能产生于1943年的一篇文章。在文中,Warren和Walter提出了一种模拟人脑神经元的虚拟神经元,每个虚拟神经元受到周围虚拟神经元的影响而开启或关闭。大家不妨把每个神经元想象成一道门,在一个最基本的人工智能系统里面,可能有几千个这样的门,如果用神经网络来举例的话,一个人工智能系统可以是这样的:
大家可以看到,这个网络有输入层,隐藏层,和输出层以及层与层之间的线连接。隐藏层可以不止一层。在输入层,隐藏层,和输出层里的每个圆其实代表了一个神经元,就相当于一个门或者一个函数。而层与层之间的线其实是权重值。
不好理解?我也觉得。
换一个说法,数据从上图的左边进入这个系统,每个圆就是一个人,这个人只负责一个简单的操作,允许或禁止数据通过,而每条线的权重值代表的是线两端的两个人之间的关系好坏,关秀越好,权重越大。
人工智能系统可以是网络的结构,也可以是其他的形式。但不管是什么样子的系统,我们都需要输入的数据和输出的结果。一般而言,我们把输入层和输出层之间当做一个函数,因为这个函数没有明确的表达方式,我们也把它叫做黑匣子。
那么问题来了,我们如何让人工智能系统完成特定的任务?
一般的解决方法是,我们需要“监督”这个系统的运行状态。
比如,我们用这个系统做人脸识别,那么我们就需要有一个足够大的训练集。所谓训练集,就是用来训练智能系统的数据。人脸识别的数据集里有很多人脸的照片,以及照片对应的标签(就是这张人脸是谁)。
一个比较经典的人脸库是LFW,里面都是一些名人的照片:
那么训练集里就是这些照片以及每张照片的人的名字,如巴菲特。为了监督这个系统的运行状态,我们需要定义一个指标,类似于大家的业绩指标。有了训练集,有了指标,我们就可以训练这个人工智能网络了。训练时间的长短取决于系统的复杂程度和训练集的大小。
最终,我们得到的网络可以用来干什么呢?
举个例子,如果我们看到一张照片,比如
如果我们想查询他的名字,我们可以把这个照片输入到人工智能系统,就可以得到这个人的名字,这人是梅西。当然,智能系统还可以自动查询这个人的资料,并且显示出来。
如果我们不“监督”这个系统的训练会如何呢?系统也许会说这个人是奥巴马,也许会说他是一只猫。。。这到底是怎么回事呢?因为如果没有“监督”,那么系统就很难知道它本身该如何表现才能获得最好的指标,当然就不知道该如何回答了。
当然我们的任务可以是任何一项事情,比如预测房价股价,疾病预测,路线规划等等。这些任务都需要系统在足够好的训练集的前提下才能得到很好的解决。
如果没有足够好的训练集怎么办?这是很自然的问题,在现实中,不可能有那么多任务都恰好有一个很好的训练集。那么这就需要“无监督”学习出马了。
一般情况下,“无监督”学习框架内的算法的表现都很难超越“监督”学习框架里的算法。
这就好比,如果父母不培养孩子在沟通方面的能力,那么孩子在沟通方面就不如那些被父母训练过沟通能力的孩子们。
我相信很多家长都有体会吧,如果对孩子放羊式地不管不顾,到孩子18岁的时候却希望孩子在体育,音乐,数学,情商上不比那些被父母从小在各方面努力培养的孩子差,那简直就是异想天开,自作多情。我想这样的父母大概是觉得人有一种“自我监督和成长”的能力吧。从小出生什么都不用管,长大后自然成为爱因斯坦。扯远了。
无监督学习就是丢弃掉训练集中的人名,只需要那些照片。那么智能系统就是在做聚类这样的事情。系统可以分辨出哪些照片是同一个人的,但是无法猜出照片中的人是谁。
那什么是半监督学习呢?就是在训练集中,我们有一部分照片的标签,而丢掉另一部分照片的标签。这样做的原因是,一个标签很贵的,如果制作一个标签需要1块钱,那么ImageNet这样的数据库大概需要上千万的成本,太贵了。所以呢,我们可以给一部分照片设定标签,然后通过算法上的改进,使得“半监督”学习框架里的算法得到和“监督”学习算法一样的效果,从而达到省钱的目的。当然,还可以省时间和精力。
当然,我想说的是,这些人工智能系统都还不能增强学习,也就是说,这些系统无法自我成长,从而达到像AlphaGo那样通过不断自我训练从而更强。
目前的大多数系统都只能在已经训练过的数据库上达到很好的效果,一旦输入的人脸图片是训练集里没有的,那么系统就不认识了。
虽然现在人工智能被媒体夸得那么火热,但其实现在的大多数系统都是非常弱智的,我们完全可以“乱拳打死老师傅”。可以这么说,现在的人工智能系统,或者机器学习算法都只是能够在更大的数据集上表现更好,有更强的拟合大数据的能力而已。
我们还处在人工智能的初级阶段,离强人工智能时代还差的很远。
那么,我们该如何参与这“第四次工业革命”呢?