37、神经网络
如果说世界上什么东西是最神奇的,或许那就是我们的大脑了。大脑由神经细胞,也叫神经元组成,在神经元上延伸出许多树突和一根轴突,并彼此通过突触相互连接,构成了一个巨大的天然神经网络。据统计,人的大脑有大约1000亿个神经元,100万亿个突触。神经冲动在神经网络中沿着神经纤维传导,对感受器接收的信息进行处理,并控制效应器进行动作。
在见证了大脑的神奇之后,计算机科学家开始尝试着模仿大脑神经网络,构造出一套与大脑神经网络相似的系统,从而实现许多传统计算模型难以解决的问题。这些思想最终催生了人工神经网络的诞生和人工智能的发展。人工神经网络的“神经元”由一个节点和一些与之相连的连线组成,节点代表某个函数,可以对一系列与之相连的输入数据进行运算,并获得输出结果,而连线则代表这条线对应的一个权重,可以理解为这条线所具有的重要程度或所占的比重,节点函数与连线权重不同,神经网络也就不同。这样,人工神经元的抽象结构就和大脑神经元的具体结构有了许多相似之处。将这些人工神经元彼此连接,建立起庞大的人工神经网络,就可以做一些不寻常的事情。
神经网络模型与普通的计算机程序有重要的差别。如果我们想通过某台传统计算机完成某项任务,需要对该任务进行编程,然后输入一组数据,计算机程序就会按照特定的步骤对这些数据进行运算,最终输出计算结果,在这里算法是固定的,当输入发生变化时,一般输出也会变化。而神经网络的工作机制则很不同,首先,它需要大量的数据进行训练,在大量的输入及输出数据的洪流中,神经网络不断调整和改变自己一些节点连线上的权重值,最终,这些权重会相对稳定到一些数值上,这样一个算法就做好了。由此可见,神经网络具有学习功能,在训练和学习的过程中,其内部的算法是不断改变的,当算法最终稳定下来时,神经网络就对什么样的输入经过运算会得到什么样的输出心中有数了。这很像我们在学习过程中不断积累经验的过程,在学习骑自行车的初期,我们总是不得要领,骑的东倒西歪,战战兢兢,这就好比在少量的输入输出数据基础上训练出来一个差劲的算法。但是随着不断的重复练习,输入输出数据越来越多,我们驾驭自行车的能力也在逐渐提高,在大脑中就形成了一套骑自行车的好的算法。从这个角度看,我们日常生活中经常提到的经验和技术,实际上就是在神经网络中训练出来的一种算法。
神经网络的优劣不仅与神经元的数量、神经元彼此连接的方式和节点函数有关,更与训练神经网络的数据量有关。一般数据量越大,获得的效果就越好。早在20世纪80年代,关于神经网络的理论已经基本成熟,但是没有获得广泛应用,与传统计算模型相比还没有足够的竞争力,一个很重要的原因就是数据量太少,无法训练出好的算法。而如今,我们处在一个信息大爆炸的大数据时代,数据量按照指数方式激增,甚至超过了存储设备存储能力的增长速度,神经网络也因此获得了新生,在人工智能领域频频传出好消息。围棋、图像识别、自然语言处理、机器翻译、自动驾驶等领域取得的令人瞩目的成就,已经显示出神经网络独特的优势。
运行在计算机上的神经网络模型尽管与大脑神经网络有相似之处,但毕竟不同,这也引发了一些争论和思考,那就是人工神经网络具有像人这样的思考能力吗?一个经典的回答是,潜艇会游泳吗?人工神经网络和潜艇一样是一种人为设计的没有生命的结构,潜艇不会像鱼那样游泳,但是没有谁规定,只有像鱼那样动作才属于游泳,潜艇显然会以另外的方式在水中游泳,而且在某些时候游得比鱼更快更好,但它没有游泳的概念,也不知道自己在游泳。同样,人工神经网络会思考,但它不知道自己在思考。机器能否思考与机器是否有生命是不是等价是一个模糊的,没有明确分界线的问题,就像多少粒沙子能够构成一个沙堆一样,是难以界定的。在生物学中,我们可以通过严格的生命定义认为,病毒是生命而蛋白质不是生命。但是类似的定义在新事物不断涌现的时候,并不能消除人们的疑问和困惑。一个病毒不会思考,但它有生命;阿尔法狗可以击败围棋世界冠军,至少在围棋领域,它是有思考能力的,但我们好像不承认它有生命。有时候,在人与机器的关系中,我们往往求助于图灵测试。但是如果人工智能故意不通过图灵测试,或者在它们的世界里的某个叫图图灵灵的智能体成立了一条规则,计算机之外的人如果能与人工智能世界彼此对话,而且无法区分他是计算机世界的人还是人工智能程序,就说他通过了图图灵灵测试,那么关于思考和生命的话题,就变得更加模糊了。
神经网络给我们的一些启示是,我们当然可以创造出一些结构,让它与我们的某些方面很相似或者比我们某些能力更高,但没必要面面俱到的让类似人工智能的人造物全盘接受我们的传统和习俗。让机器尽可能的通过图灵测试之类的标准当然可以做,但是我们更应该看到一些其它的发展方向,这样就有了更多的可能。在自然界中,世界是固定的,我们需要寻找支配它运行的规律,而在计算机世界中,我们可以设计规律,从而创造新的世界。有时候,两个世界可能都很大,但是交集也许并不多,让机器更像人往往会是我们的一厢情愿。
在见证了大脑的神奇之后,计算机科学家开始尝试着模仿大脑神经网络,构造出一套与大脑神经网络相似的系统,从而实现许多传统计算模型难以解决的问题。这些思想最终催生了人工神经网络的诞生和人工智能的发展。人工神经网络的“神经元”由一个节点和一些与之相连的连线组成,节点代表某个函数,可以对一系列与之相连的输入数据进行运算,并获得输出结果,而连线则代表这条线对应的一个权重,可以理解为这条线所具有的重要程度或所占的比重,节点函数与连线权重不同,神经网络也就不同。这样,人工神经元的抽象结构就和大脑神经元的具体结构有了许多相似之处。将这些人工神经元彼此连接,建立起庞大的人工神经网络,就可以做一些不寻常的事情。
神经网络模型与普通的计算机程序有重要的差别。如果我们想通过某台传统计算机完成某项任务,需要对该任务进行编程,然后输入一组数据,计算机程序就会按照特定的步骤对这些数据进行运算,最终输出计算结果,在这里算法是固定的,当输入发生变化时,一般输出也会变化。而神经网络的工作机制则很不同,首先,它需要大量的数据进行训练,在大量的输入及输出数据的洪流中,神经网络不断调整和改变自己一些节点连线上的权重值,最终,这些权重会相对稳定到一些数值上,这样一个算法就做好了。由此可见,神经网络具有学习功能,在训练和学习的过程中,其内部的算法是不断改变的,当算法最终稳定下来时,神经网络就对什么样的输入经过运算会得到什么样的输出心中有数了。这很像我们在学习过程中不断积累经验的过程,在学习骑自行车的初期,我们总是不得要领,骑的东倒西歪,战战兢兢,这就好比在少量的输入输出数据基础上训练出来一个差劲的算法。但是随着不断的重复练习,输入输出数据越来越多,我们驾驭自行车的能力也在逐渐提高,在大脑中就形成了一套骑自行车的好的算法。从这个角度看,我们日常生活中经常提到的经验和技术,实际上就是在神经网络中训练出来的一种算法。
神经网络的优劣不仅与神经元的数量、神经元彼此连接的方式和节点函数有关,更与训练神经网络的数据量有关。一般数据量越大,获得的效果就越好。早在20世纪80年代,关于神经网络的理论已经基本成熟,但是没有获得广泛应用,与传统计算模型相比还没有足够的竞争力,一个很重要的原因就是数据量太少,无法训练出好的算法。而如今,我们处在一个信息大爆炸的大数据时代,数据量按照指数方式激增,甚至超过了存储设备存储能力的增长速度,神经网络也因此获得了新生,在人工智能领域频频传出好消息。围棋、图像识别、自然语言处理、机器翻译、自动驾驶等领域取得的令人瞩目的成就,已经显示出神经网络独特的优势。
运行在计算机上的神经网络模型尽管与大脑神经网络有相似之处,但毕竟不同,这也引发了一些争论和思考,那就是人工神经网络具有像人这样的思考能力吗?一个经典的回答是,潜艇会游泳吗?人工神经网络和潜艇一样是一种人为设计的没有生命的结构,潜艇不会像鱼那样游泳,但是没有谁规定,只有像鱼那样动作才属于游泳,潜艇显然会以另外的方式在水中游泳,而且在某些时候游得比鱼更快更好,但它没有游泳的概念,也不知道自己在游泳。同样,人工神经网络会思考,但它不知道自己在思考。机器能否思考与机器是否有生命是不是等价是一个模糊的,没有明确分界线的问题,就像多少粒沙子能够构成一个沙堆一样,是难以界定的。在生物学中,我们可以通过严格的生命定义认为,病毒是生命而蛋白质不是生命。但是类似的定义在新事物不断涌现的时候,并不能消除人们的疑问和困惑。一个病毒不会思考,但它有生命;阿尔法狗可以击败围棋世界冠军,至少在围棋领域,它是有思考能力的,但我们好像不承认它有生命。有时候,在人与机器的关系中,我们往往求助于图灵测试。但是如果人工智能故意不通过图灵测试,或者在它们的世界里的某个叫图图灵灵的智能体成立了一条规则,计算机之外的人如果能与人工智能世界彼此对话,而且无法区分他是计算机世界的人还是人工智能程序,就说他通过了图图灵灵测试,那么关于思考和生命的话题,就变得更加模糊了。
神经网络给我们的一些启示是,我们当然可以创造出一些结构,让它与我们的某些方面很相似或者比我们某些能力更高,但没必要面面俱到的让类似人工智能的人造物全盘接受我们的传统和习俗。让机器尽可能的通过图灵测试之类的标准当然可以做,但是我们更应该看到一些其它的发展方向,这样就有了更多的可能。在自然界中,世界是固定的,我们需要寻找支配它运行的规律,而在计算机世界中,我们可以设计规律,从而创造新的世界。有时候,两个世界可能都很大,但是交集也许并不多,让机器更像人往往会是我们的一厢情愿。