出那份隐藏在背后的抽象的知识。
这份知识的体现,就在于网络的所有权重和偏置参数的取值。
假设各个参数有一个初始值,当我们输入一个训练样本的时候,它会根据当前参数值计算出唯一的一个实际输出值。
这个值可能跟我们期望的输出值不一样。想象一下,这时候,我们可以试着调整某些参数的值,让实际输出值和期望输出值尽量接近。
当所有的训练样本输入完毕之后,网络参数也调整到了最佳值,这时每一次的实际输出值和期望输出值已经无限接近,这样训练过程就结束了。
假设在训练过程中,网络已经对数万个样本能够给出正确(或接近正确)的反应了,那么再给它输入一个它没见过的数据,它也应该有很大概率给出我们预期的决策。这就是一个神经网络工作的原理。
但这里还有一个问题,在训练过程中,当实际输出值和期望输出值产生差异的时候,要如何去调整各个参数呢?
当然,在思考怎么做之前,也应该先弄清楚:通过调整参数的方式获得期望的输出,这个方法行得通吗?
实际上,对于感知器网络来说,这个方法基本不可行。
比如在上图有39个参数的感知器网络中,如果维持输入不变,我们改变某个参数的值,那么最终的输出基本完全不可预测。
它或者从0变到1(或从1变到0),当然也可能维持不变。这个问题的关键在于:输入和输出都是二进制的,只能是0或者1。
如果把整个网络看成一个函数(有输入,有输出),那么这个函数不是连续的。
因此,为了让训练成为可能,我们需要一个输入和输出能够在实数上保持连续的神经网络。于是,这就出现了sigoid神经元。
sigoid神经元sigoid neuron是现代神经网络经常使用的基本结构(当然不是唯一的结构)。它与感知器的结构类似,但有两个重要的区别。
第一,它的输入不再限制为0和1,而可以是任意01之间的实数。
第二,它的输出也不再限制为0和1,而是将各个输入的加权求和再加上偏置参数,经过一个称为sigoid函数的计算作为输出。
具体来说,假设1x1+2x2+3x3++b,那么输出outputσz,其中:σz 11+e-z。
σz是一个平滑、连续的函数。而且,它的输出也是01之间的实数,这个输出值可以直接作为下一层神经元的输入,保持在01之间。
可以想象,在采用sigoid
『加入书签,方便阅读』
-->> 本章未完,点击下一页继续阅读(第2页/共3页)