实际的生物神经工作在电脉冲输入和输出的情形;输入是由“触突”完成的,触突的前面是上一个神经元的输出——轴突,后面是本神经元的细胞体——神经细胞膜;细胞膜和神经元的轴突是相连的,所以一个神经细胞的输出是个一次性的激发过程——输出一个电脉冲;因此,神经细胞膜的动作代表着这个细胞的整体行为,它是在输入不断刺激下,当激发化学成分达到一定程度时的一次“激动”。
一个神经元有许多输入端(当然也有较少的输入,完成中继放大的作用)神经输入——触突,每个触突的大小可以是不同的,也就是它们由接受输入脉冲到刺激本神经元的细胞膜的强度是不一样的。在人为的描述中我们以连接强度——权重值表示(如图中的a,b等等)。
这些由触突连接和电脉冲传递的网络,为了简单人为将他们表示为一个连续的量(如图中的x1,x2等等)。但这种表示与实际还是有差别的。
人为的神经元模型如图所示,输出y可以表示为:
y=a*x1+b*x2+c*x3+d*x4的形式;其中的输入数量(这里为4)认为是输入“信息”空间的大小。但是,如此的神经元如果我们将它们级联许多,其效果如同一个神经元,因为其中只有“线性”的关系。生物在自然形成中具有很好的优化和“智慧”;一个神经元的输出,我们已经说明了,它不是一下子就传递的,是要有积累的,并且输出的脉冲每次也是单一的,有限的;所以实际的神经元的输出对输入而言是呈“非线性”的;在人为的神经元中就是函数f,它是一个非线性的影射函数;它的存在十分重要,它能将有限的输入空间维数加以增加,使神经网络具有识别复杂形状的能力!
一个如下功能的神经元能干什么哪?
y=f(a*x1+b*x2+c*x3+d*x4)
这个例子中选用了4个输入变量(x1,x2,x3,x4),所以输入空间的维数是4.而触突强度(a,b,c,d)实际上是对这些变量的一个限制。如我们解如下方程,
a*x1+b*x2+c*x3+d*x4=0
我们能知道,变量所在的区域是一个在4维空间中镶嵌的一个“平面”,我们叫它“超平面”(3维空间,比样本空间少一维)。其中这个平面有一个正方向,即平面的“法”矢量方向,以以上例子,这个法向矢量就是(a,b,c,d)。
所以一个神经元能够判断输入的变量(x1,x2,x3,x4)处于“超平面”的正方向上,还是反方向上,还是处于这个“超平面”之上;当样本点在“平面”的正方向上,神经元输出为正值,否则就为0和负值;也就是这个神经元是输出一个电脉冲,还是保持不动作。
而神经元的输出经过非线性变形,可以将空间中的样本的复杂性通过层叠的网络加以简化,从而说神经网络在理想意义下可以处理任意的复杂问题。这就是一个神经元和它作用在网络中的功能和模型;但我们可能也注意到真实的神经元是以脉动的电脉冲为传递信息的信号,在一定意义下这样的神经元还处理着“时间”空间的信息,所以生物神经元还具有在时间空间上对问题的优化;而这一点是现代人工神经元欠缺的!
神经元的学习是指对“触突”——连接强度的调整;用最简单的Hebb学习规则就可以了;对一组样本集中的每一个样本做如下的调整:
设有n个样本,用i表示其中的一个,x1i表示第一个触突上现在输入的第i个样本值,yi为输入第i个样本时神经元的实际输出;而正确的输出应为Yi,那么本次对第一个触突a的调整量为:
da = r * (Yi -yi)* x1i,
a = a +da
其中r是一个较小的正数。i取1到n,轮流进行学习。学习中r如果很大会出现学习的跳跃,甚至发散;对复杂的问题要用级联的网络,网络中间的神经元数量越多学习的用时就越短;因为神经网络对问题事先是不知道的,中间层的神经元决定的“超平面”全都是随机的;一旦“超平面”趋向问题的解决方向学习就会很快结束。
猴子的智力仅次于人,就是有些重要的网络还没有转到较高的智力结构上;人的智力发育也是如此,小时候的“弱智”,不一定长大就弱,那是因为这些人的神经学习还没有到达“启蒙”期;所以我不赞成小孩从小就强化学习;相对“弱”,也并不等于以后智力不如别人!