因此,一个人工神经网络( Artificial neural network, 简称ANN ) 就是要在当代数字计算机现有规模的约束下,来模拟这种大量的并行性, 并在实现这一工作时,使它能显示许多和人或动物大脑相类似的特性。下面就让本港台直播们瞧瞧它们的表演吧! 数字版的神经网络 (The Digital Version) 上面本港台直播们看到了生物的大脑是由许多神经细胞组成,同样,模拟大脑的人工神经网络ANN是由许多叫做人工神经细胞(Artificial neuron,也称人工神经原,或人工神经元)的细小结构模块组成。人工神经细胞就像真实神经细胞的一个简化版,但采用了电子方式来模拟实现。一个人工神经网络中需要使用多少个数的人工神经细胞,差别可以非常大。有的神经网络只需要使用10个以内的人工神经细胞,而有的神经网络可能需要使用几千个人工神经细胞。这完全取决于这些人工神经网络准备实际用来做什么。 本港台直播想你现在可能很想知道,一个人工神经细胞究竟是一个什么样的东西?但是,它实际上什么东西也不像;它只是一种抽象。还是让本港台直播们来察看一下图2吧,这是表示一个人工神经细胞的一种形式。
图2 一个人工神经细胞 图中,左边几个灰底圆中所标字母w代表浮点数,称为权重(weight,或权值,权数)。进入人工神经细胞的每一个input(输入)都与一个权重w相联系,正是这些权重将决定神经网络的整体活跃性。你现在暂时可以设想所有这些权重都被设置到了-1和1之间的一个随机小数。因为权重可正可负,故能对与它关联的输入施加不同的影响,如果权重为正,就会有激发(excitory)作用,权重为负,则会有抑制(inhibitory)作用。当输入信号进入神经细胞时,它们的值将与它们对应的权重相乘,作为图中大圆的输入。大圆的“核”是一个函数,叫激励函数(activation function),它把所有这些新的、经过权重调整后的输入全部加起来,形成单个的激励值(activation value)。激励值也是一浮点数,且同样可正可负。然后,再根据激励值来产生函数的输出也即神经细胞的输出:如果激励值超过某个阀值(作为例子本港台直播们假设阀值为1.0),就会产生一个值为1的信号输出;如果激励值小于阀值1.0,则输出一个0。这是人工神经细胞激励函数的一种最简单的类型。在这里,从激励值产生输出值是一个阶跃函数[译注2]。看一看图3后你就能猜到为什么有这样的名称。 图3 阶跃激励函数 如果到目前为止你对这些还没有获得很多感觉,那也不必担心。窍门就是: 不要企图去感觉它,暂时就随波逐流地跟本港台直播一起向前走吧。在经历本章的若干处后,你最终就会开始弄清楚它们的意义。而现在,就放松一点继续读下去吧。 现在需要一些数学了(Now for Some Math) 今后讨论中,本港台直播将尽量把数学降低到绝对少量,但学习一些数学记号对下面还是很有用的。本港台直播将把数学一点一点地喂给你,在到达有关章节时向你介绍一些新概念。本港台直播希望采用这样的方式能使你的头脑能更舒适地吸收所有的概念,并使你在开发神经网络的每个阶段都能看到怎样把数学应用到工作中。现在首先让本港台直播们来看一看,怎样把本港台直播在此之前告诉你的所有知识用数学方式表达出来。 一个人工神经细胞(从现在开始,本港台直播将把“人工神经细胞”简称它为“神经细胞”) 可以有任意n个输入,n代表总数。可以用下面的数学表达式来代表所有n个输入: 同样 n 个权重可表达为: 请记住,激励值就是所有输入与它们对应权重的之乘积之总和,因此,现在就可以写为: 以这种方式写下的求和式,本港台直播在第5章“建立一个更好的遗传算法”中已提到,可以用希腊字母Σ来简化: 。(译注:神经网络的各个输入,以及为各个神经细胞的权重设置,都可以看作一个n维的向量。你在许多技术文献中常常可以看到是以这样的方式来引用的。 ) 下面本港台直播们来考察在程序中应该怎样实现?假设输入数组和权重数组均已初始化为x[n]和w[n],则求和的代码如下: double activation = 0; for(int i=0; i<n; ++i) { activation += x[i] * w[i]; } (责任编辑:本港台直播) |