1700530707
训练神经网络是最关键的问题。这要求有大量可供神经网络输入识别的样本模式,并且每一种模式都有相应的输出期望模式,将每种模式输入神经网络。通常,那些与期望输出模式相同的连接被加强[通过增加关联权重(associated weight)的方式],那些与输出期望模式存在误差的连接则被减弱。这种增减关联权重方法叫作“反向传播”(back-propagation,BP),是应用十分广泛的一种方法。在人脑神经网络如何完成这种学习的问题上仍存有争议,因为人脑中似乎没有任何反向传播可依赖进行的机制。能在人脑中进行的唯一方法就是通过触发神经元,使得与神经元相连的突触强度加强,进而再由突触向其他神经元发送信息。此外,最近神经学家发现灵长类动物的一生当中会长出新的脑细胞(人类可能也是这样),在成年时期也是如此,这与早期认为人脑不可能长出新细胞的教条式观点大为不同。
1700530708
1700530709
大山丘和小山丘
1700530710
1700530711
自适应算法——神经网络和进化算法的一个关键问题通常指向本地最优化原则与全球最优化原则的对决,也就是爬上最近的山丘与找到并爬上最大山丘之间的对决。神经网络学习时(通过修正连接强度的方式)或进化算法演化时(通过修正模拟有机体“遗传”密码的方式),解决方法的适应度将会改善,直到找到“本地最优”解决方案为止。如果将此比作爬山,那么这些方法可以轻而易举地找到附近山丘的山顶,这也是本地所有可能的解决方案当中的最佳方案。但有时这些方法可能会困在这些小山丘的山顶,未能看见不同区域里更高的山丘。在神经网络环境下,如果神经网络已经汇聚成为本地最优解决方案,那么当它试着再去修正其中的任何一个连接的强度时,其整体的适应度将会变差。但是,正如登山者需要下山才能再次攀登更高的山峰,神经网络(或进化算法)也需要暂时把解决方案变糟,这样最终才能找到更好的方案。
1700530712
1700530713
有一种可以避免这类“假象”最优解决方案(小山丘)的方法,就是迫使自适应方法在开始时用不同的初始条件多做几次分析——换言之,强迫它爬上各种不同的山丘,而不是只爬其中一座。但即使是用这种方法,系统设计者仍然需要确保自适应方法没有错过更远处更高的山丘。
1700530714
1700530715
国际象棋实验室
1700530716
1700530717
通过再次观察人类和机器进行国际象棋对弈的方法,我们可以更深入地对比人类思维和传统计算机方法,从中获得新发现。这么做并不是想对国际象棋对弈的问题进行喋喋不休的阐述,而是因为对弈问题可以清楚地说明一组矛盾对比。卡内基–梅隆大学的人工智能专家拉杰·雷迪认为,国际象棋对弈研究在人工智能领域的地位就如同大肠杆菌研究在生物学领域的地位一般,它们都是各自领域中研究最基本问题的理想实验室。5计算机利用自己极快的速度分析由博弈树上生成的数量庞大的组合。虽然国际象棋程序可能会耍些小把戏(比如将所有国际象棋大师间的对弈开局储存好并提前计算出对弈结果),但本质上这些程序依赖的还是速度和精确性的组合。对比来看,即使是大师级的人类棋手,在速度上也极其缓慢,而且不精确。因此,我们要提前计算所有的棋局走步,这也是为什么大师的练就总需要长时间的修炼,其他领域也是如此。加里·卡斯帕罗夫把有限生命中的几十年都用来研究、体验国际象棋的下法。研究人员估计,一个非平凡领域的大师至少已经记住了5万个洞察理解“条块”。
1700530718
1700530719
当卡斯帕罗夫下棋的时候,如果他脑海中也会生成博弈树,那么人脑的运算速度和短期记忆的局限性将大大阻碍博弈树的扩展(每一步真正的移动),进而将步骤限制在几百步之内。而他的电子对手却可以储存几十亿种。因此,人类象棋大师不得不一个劲儿地运用精密的模式识别功能剪去无用的枝干,修剪脑海中的博弈树。他将棋盘上每一个棋子的位置——实际上的和想象中的,与几十万种经精确分析后的数据库匹配起来。
1700530720
1700530721
卡斯帕罗夫1997年战败之后,我们了解到“深蓝”计算机如何进行大规模数字运算的知识,而不是真如人类一样“思考”如何下棋。你可以说事情的对立面往往能说明问题,“深蓝”计算机的确可以通过博弈树的模式进行思考,而卡斯帕罗夫对弈时没有时间这么做。他主要是从事先考虑好的棋盘数据库中提取出最适应当下的走步。(当然,这要取决于每个人对思考的概念,这一点我在第三章当中已经探讨过了。)但如果人类下国际象棋的方法(基于神经网络的模式识别,并从各种事先分析完毕的情况数据库中提取当下可用的信息)可被当作一种切实的思考,那为什么计算机程序或者机器做同样的事情时就不思考了呢?
1700530722
1700530723
第三种方法
1700530724
1700530725
这就是我之前提到过的,在递归搜索中评估最后一片叶子的第三种思想学派。想想头脑简单派使用的方法,比如通过棋子价值的简单相加来评估某一个棋子位置。头脑复杂派则提倡更复杂耗时的逻辑分析法。我更支持第三种方法:将两种简单的模式结合起来——递归和神经网络,通过神经网络评估每一片最终树叶所处的位置。训练神经网络非常耗时,它要求大量的计算,但与“头脑简单”派的评估相比,在神经网络中完成一个已学习过的识别任务非常快速。虽然速度快,但神经网络利用了大量时间学习相关知识。因为在21世纪,我们将在网络上进行每一场大师级的对弈,所以可以利用由此生成的庞大数据库来训练神经网络,我们曾有过一次类似的训练,但是在线下完成的(也就是说,并不是在真正的游戏里)。经过训练的神经网络将会被用来评估每一片最终树叶的位置。这样一种系统不仅拥有计算机在速度方面几百万倍的优势,还能将此与人类的模式识别能力相结合,如此一来,人类需要竭尽一生钻研的模式,该系统几分钟便能掌握。
1700530726
1700530727
我将这一方法推荐给“深蓝”团队领头人默里·坎贝尔,他认为这种方法非常有趣,也很有吸引力。他承认自己也有些倦怠了,不想再亲自动手来修正树叶评估算法。我们商量着成立一支咨询团队来执行这一想法,但随后IBM取消了整个国际象棋项目。我认为评估人类智能多样性的关键元素之一,就是要以最佳方式把基本的模式结合起来。接下来,我将探讨如何进入进化算法的模式。
1700530728
1700530729
神经网络算法的非数学“伪代码”
1700530730
1700530731
以下是神经网络的基本模式。神经网络中可能会出现许多变量,系统设计者需要提供一些特定的关键参数和方法,细节如下:
1700530732
1700530733
神经网络算法
1700530734
1700530735
为一个问题创建神经网络解决方案包含以下几个步骤:
1700530736
1700530737
·定义输入值
1700530738
1700530739
·定义神经网络的拓扑结构(即神经元的层数以及神经元间的连接)
1700530740
1700530741
·用样本问题训练神经网络
1700530742
1700530743
·运行完成训练的神经网络,以解决新的问题案例
1700530744
1700530745
·向公众开放你的神经网络
1700530746
1700530747
这些步骤(除了最后一步)的详解见下:
1700530748
1700530749
问题输入
1700530750
1700530751
神经网络的问题输入由一系列数字组成。输入值可以是:
1700530752
1700530753
·在视觉模式识别系统中,一个二维数字阵列代表一幅图画的像素
1700530754
1700530755
·在听觉(比如语音)识别系统中,一个二维数字阵列代表一种声音,其中第一维度代表声音参数(如频率),第二维度代表不同时间点
1700530756
[
上一页 ]
[ :1.700530707e+09 ]
[
下一页 ]