1. Gary Cziko, Without Miracles: Universal Selection Theory and the Second Darwinian Revolution (Cambridge, MA: MIT Press, 1955).
2. 1999年,大卫·达尔林普尔8岁。从那时起,他就一直是我的学员。你可以从此获知他的背景:http:// esp. mit. edu/ learn/ teachers/ davidad/ bio. html,以及http:// www. brainsciences. org/ Research- Team/ mr- david- dalrymple.html。
3. Jonathan Fildes, “Artificial Brain ‘10 Years Away,’ ” BBC News, July 22, 2009, http:// news. bbc. co. uk/ 2/ hi/ 8164060. stm. See also the video “Henry Markram on Simulating the Brain: The Next Decisive Years,” http:// www. kurzweilai. net/henry- markram- simulating- the- brain- next- decisive- years.
4. M. Mitchell Waldrop, “Computer Modelling: Brain in a Box,” Nature News, February 22, 2012, http:// www. nature. com/ news/ computer - modelling - brain-in-a-box-1 .10066.
5. Jonah Lehrer, “Can a Thinking, Remembering, Decision- Making Biologically Accurate Brain Be Built from a Supercomputer” Seed, http:// seedmagazine.com/ content/ article/ out_ of_ the_ blue/.
6. Fildes, “Artificial Brain ‘10 Years Away.’ ”.
7. See http:// www. humanconnectomeproject. org/.
8. Anders Sandberg and Nick Bostrom, Whole Brain Emulation: A Roadmap, Technical Report # 2008 - 3 (2008), Future of Humanity Institute, Oxford University, www. fh i. ox. ac. uk/ reports/ 2008-3. pdf.
9.这是一个神经网络算法的基本架构。可能会出现许多变化,而系统设计者需要提供某些关键参数和方法,详细说明如下。
建立一个神经网络方案解决问题涉及以下步骤:
定义输入。
定义神经网络的拓扑结构(即神经元层次和神经元之间的联系)。
选取问题训练神经网。
执行神经网络的训练,解决新问题。
让你的神经网络公司上市。
步骤详列如下(除了最后一个):
◎问题的输入
输入到神经网络中的问题组成一系列数字。这种输入可以是:
在可视化的模式识别系统中,一个二维数组代表图像的像素;
或者在听觉(例如,语音)识别系统中,一个二维数组代表声音,其中第一维代表声音的参数(例
如,频率分量),第二维代表不同的时间点;
或者在任意的模式识别系统中,一个n维数组代表所输入的图案。
◎设定拓扑结构
建立神经网络,每个神经元的结构包括:
多个输入端,其中每个输入端“连接”另一个神经元的输出端或者由此输入数字。
一般情况下,单一的输出端连接着另一个神经元(通常是处于更高层次)输入端或作为最
终的输出端。
建立第一层神经元
在第一层建立N0个神经元。对于每一个这样的神经元,在问题输入过程中“连接”相应神经元的一个输入端,以传输“要点”(即数字)。这种连接可以随机决定或使用进化算法(见下文)。
为每个建立起来的连接分配一个初始“突触强度”。这些权重开始可保持相同,可随机分配,也可用另外一种方法来确定(见下文)。
建立多层神经元
总共建立M层神经元。每一层都要设置该层的神经元。
第i层:
建立Ni个神经元。每一个这样的神经元“连接”上一层神经元的一个输出端(变化见下文)。
为每个连接分配一个初始“突触强度”。这些权重开始可相同,可随机分配,也可用另外一种方法来确定(见下文)。
第M层神经元的输出端是神经网络的输出端(变化见下文)。
识别试验
每个神经元的工作原理
一旦神经元建立起来,所进行的识别实验均执行以下操作:
神经元每次加权输入的计算方法是,相应神经元的输出(或初始输入)与两神经元间连接的突触强度相乘。相应神经元的输出端与该神经元的输入端连接。
对神经元所有的加权输入求和。
如果总和大于该神经元的触发阈值,就认为该神经元被触发,且其输出为1。否则,其输出为0(变化见下文)。
每个识别实验均执行以下操作
从第0层到第M层的每一层:
该层的每个神经元:
对加权输入求和(每次加权输入=相应神经元的输出[或初始输入]乘以两神经元间连接的突触强度。)
如果此加权输入总和大于该神经元的触发阈值,设置该神经元的输出为1,否则设置为0。
◎训练神经网
选取问题示例反复运行识别试验。
每次试验后,调整所有神经元间连接的突触强度以提高神经网络的性能(相应讨论见下文)。
继续训练,直到神经网络的准确率不再提高(即达到渐近线)。
关键设计决策
在上述简单模式中,神经网络算法的设计者需要一开始就确定:
输入的数字代表什么。
神经元层数。
每一层神经元的数量。(每一层神经元的数量并不一定相同。)
每一层每个神经元的输入次数。输入次数(即神经元间的连接数)也可随着神经元和层的不同而变化。
实际“接线”(即连接)。每一层中的每个神经元,由一系列其他神经元组成,它们的输出端与该神经元输入端连接。这是设计的关键部分,有一些可行方法。
(1)随机连接神经网络;
(2)使用进化算法(见下文)确定最佳接线;
(3)以系统设计者的最佳判断决定接线。
每个连接的初始突触强度(即权重)。可行的方法如下:
(1)将突触强度设定为相同的值;
(2)将突触强度随机设定为不同的值;
(3)使用进化算法确定一组最佳初始值;
(4)通过系统设计者的最佳判断确定初始值。
每个神经元的触发阈值。
确定输出。该输出可以是:
(1)M层多个神经元的输出;
(2)单一输出神经元的输出,其输入为M层多个神经元的输出;
(3)M层神经元的输出函数(例如,总和);
(4)多层神经元的输出函数。
确定该神经网络过程中所有连接的突触强度如何调整,这是设计的关键决策,也是大量研究和讨论的主题。可行的方法如下:
(1) 对于每个识别试验,让每个突触强度按定量(一般较小)递增或递减,以使神经网络的输出更接近于正确答案。方法之一就是对递增和递减两种情况都进行尝试,看看哪种效果更为理想。但这样比较费时,所以另有方法决定是递增还是递减突触强度。
(2)其他的统计方法可以在每次识别实验后修改突触强度,确保神经网络的性能更接近正确答案。
需要注意的是,即使训练试验的答案并非完全正确,神经网络训练也是有效的。这就允许在真实世界中使用训练数据,尽管它可能存在错误率。基于神经网络的识别系统成功的一个关键是用于训练的数据量。通常需要一个非常可观的量才能取得令人满意的结果。对于人类学员来说,获取经验所花费的时间是决定性能的关键因素。
变体
上述许多种变体是可行的。例如:
确定拓扑结构有多种不同的方法。尤其是神经元间接线可以随机设置或借助进化算法。
设置初始突触强度也有多种方法。第i层神经元的输入信息并不一定源自上一层神经元的输出信息。另外,每一层神经元的输入信息可以来自较低层或任意层。
确定最终的输出存在多种方法。
上述方法导致的结果为“是或否”(1或0)的触发模式称为非线性函数。也可使用其他非线性函数。通常使用的函数遵循在0和1之间快速却渐进的识别模式。此外,输出的信息也可以是0和1以外的数字。
训练期间调节突触强度所用的不同方法代表着设计的关键决策。
上述模式所描述的是一个“同步”神经网络,其中每个识别实验的开展是通过计算每一层的输出信息,从0层开始一直持续到M层。在一个真正同步的系统中,每个神经元的运作是独立于其他神经元的,神经元可以“异步”(即独立)运作。在异步模式中,每个神经元持续不断地扫描其输入信息,当加权输入的总和超过其阈值(或任何输出函数指定值)即可触发。
10. Robert Mannell, “Acoustic Representations of Speech,” 2008, http:// clas. mq. edu.au/ acoustics/ frequency/ acoustic_ speech. html.
11.这是一种遗传(进化)算法的基本架构。可能出现许多变化,系统设计者需要提供某些关键参数和方法,详述如下。
进化算法
创造N个用于解决问题的“生物”。每个都具备:
遗传代码:一个数字序列,描述可行的解决方案的特征。数字可以代表关键参数,解决方案的步骤、规则等。
对于进化的每一代,按照如下操作:
对N个生物都执行下列操作:
将此生物所提供的解决方案(用遗传代码代替)应用到问题或模拟的环境中去。再评估该方案。
挑选评价最高的L个生物作为存活下来的下一代生物。
剔除其他(N - L)个不能存活的生物。
从L个存活下来的生物中创造(N - L)个新生物,通过以下方式:
(1)复制存活下来的生物。将少量随机变异植入每个副本中。
(2)从L个存活的生物中获取部分遗传代码(利用“有性”繁殖,或以其他方式结合部分染色体),借此创造更多生物。
(3)结合(1)和(2)。
确定是否继续进化:
改良=(这代的最高评级)-(上一代最高评级)
如果改良<改良阈值,那么我们就大功告成了。
从进化的最后一代获得的、具有最高评价的生物提供的就是最佳解决方案。接着应用遗传代码定义的方案解决问题。
设计的关键决策
在上述简单模式中,设计者从一开始就要确定:
主要参数:
N
L
改良阈值。
遗传代码中的数字代表什么,以及从遗传代码中如何运算解决方案。
确定第一代N个生物的方法。一般情况下,解决方案只需要“合理”的尝试。如果第一代生物提供的解决方案相差太远,进化算法可能就难以形成一个好的解决方案。因此,创造具有一定多样性的初始生物是很必要的。这有助于避免在进化过程中出现仅有“局部”最优解的情况。
如何为解决方案评级。
如何繁殖存活下来的生物。
变体
上述许多变体是可行的。例如:
每一代存活下来的L个生物不需保持定量。生存规则可以允许存活下来的生物数目发生变化。
从N - L的每一代,创造的新生物不需保持定量。繁殖规则的大小可独立于生物数量。繁殖可与存活数相联系,从而让最优的生物得到最大的繁殖机会。
是否要继续进化是可以随机应变的。不仅获得最高评级的生物的近代后裔可以考虑,遗传刚好超过两代的性状也可以考虑。
12. Dileep George, “How the Brain Might Work: A Hierarchical and Temporal Model for Learning and Recognition” (PhD dissertation, Stanford University, June 2008).
13. A. M. Turing, “Computing Machinery and Intelligence,” Mind, October 1950.
14.休·勒布纳每年都会举行一个“勒布纳奖”的比赛。勒布纳银牌授予仅通过图灵原始文本测试的电脑。金牌则授予通过包括音频和视频输入、输出的版本测试的电脑。但在我看来,包括音频和视频的测试实际上并未使测试变得更具挑战性。
15. “Cognitive Assistant Th at Learns and Organizes,” Artifi cial Intelligence Center, SRI International, http:// www. ai. sri. com/ project/ CALO.
16. Dragon Go! Nuance Communications, Inc., http:// www. nuance. com/ products /dragon-go-in-action/ index. htm.
17. “Overcoming Artifi cial Stupidity,” WolframAlpha Blog, April 17, 2012, http:// blog. wolframalpha. com/ author/ stephenwolfram/.