对于一个给定的感知器来说,它的权重和阈值也是给定的,代表一种决策策略。因此,我们可以通过调整权重和阈值来改变这个策略。
关于阈值threshold,这里需要指出的一点是,为了表达更方便,一般用它的相反数来表达:b=-threshold,这里的b被称为偏置(bias)。
这样,前面计算输出的规则就修改为:如果w1x1+w2x2+w3x3+...+b0,则输出output=1,否则输出output=0。
而权重w1=w2=-2,则b=3。
很明显,只有当x1=x2=1的时候,output=0,因为(?2)*1+(?2)*1+3=?1,小于0。而其它输入的情况下,都是output=1。
所以在实际情况下,这其实是一个“与非门”!
在计算机科学中,与非门是所有门部件中比较特殊的一个,它可以通过组合的方式表达任何其它的门部件。这被称为与非门的普适性(gateuniversality)。
既然感知器能够通过设置恰当的权重和偏置参数,来表达一个与非门,那么理论上它也就能表达任意其它的门部件。
因此,感知器也能够像前面三体中的例子一样,通过彼此连接从而组成一个计算机系统。
但这似乎没有什么值得惊喜的,我们已经有现成的计算机了,这只不过是让事情复杂化了而已。
单个感知器能做的事情很有限。要做复杂的决策,所以则是需要将多个感知器连接起来。
而实际中的网络可能会有上万个,甚至数十万个参数,如果手工一个一个地去配置这些参数,恐怕这项任务永远也完成不了了。
而神经网络最有特色的地方就在于这里。
我们不是为网络指定所有参数,而是提供训练数据,让网络自己在训练中去学习,在学习过程中为所有参数找到最恰当的值。
大体的运转思路是这样:我们告诉网络当输入是某个值的时候,我们期望的输出是什么,这样的每一份训练数据,称为训练样本(trainingexaworksanddeeplearning》这本书中也曾经提到过这个例子。
这个神经网络只有一层隐藏层,属于浅层的神经网络(shallowneuralnetworks)。而真正的深度神经网络(deepnerualnetworks),则会有多层隐藏层。
神经元系统采用了左右脑半球的设计方式进行设计和制造。
最右侧则是输出层(outputlayer),有10个神经元节点,分别代表识别结果是0,1,2,...,9。当然,受sigmoid函数σ(z)的限制,每个输出也肯定是0~1之间的数。
那我们在得到一组输出值之后,哪个输出的值最大,最终的识别结果就是它。
而在训练的时候,输出的形式则是:正确的那个数字输出为1,其它输出为0,隐藏层和输出层之间也是全连接。
神经网络共的权重参数有784*15+15*10=11910个,偏置参数有15+10=25个,总共参数个数为:11910+25=11935个。
这可是一个非常惊人的数字。