人工神经元(二)
背景
每个神经网络都具有其独特的学习算法,对于感知器网络而言我们希望网络可以学习(简记为)和(简记为),从而实现网络的正确输出。因此如果我们对和做一些微小改动,我们希望网络的输出也会有微小变化,同时希望网络的表现是按照我们需要的方向改变,这样我们便可以通过不断地修改和来产生更好的输出。
然而当网络包含上文所提及的感知器时,我们无法通过修改和来产生符合我们意愿的输出。原因在于对网络中单个感知器的和做微小改动,有时会直接引起感知器的输出完全相反,而这又会引起网络中更深层的感知器以无法预测的方式改变输出,所以在感知器网络中,通过修改和来让网络产生期望的行为是非常困难的。
而这一问题可以由另一种人工神经元——S型神经元克服。
模型
S型神经元和感知器是类似的,不同的地方在于感知器的输出只能为0/1,而S型神经元的输出是范围内的值,这是因为在该神经元输出之前添加了一个**函数——S型函数:
在一些地方该函数也被称为逻辑函数,对应的这种神经元称之为逻辑神经元。该函数的图象如下图所示:
对于一个具有输入,权重和偏置的型神经元,其输出为,即:
不同于感知器,S型神经元可以输出和之间的任何实数,比如。如果输出为,那么结果是非常明显的,否则,我们可以认为S型神经元的输出为事件成立的概率。比如我们的输入是一副手写数字9的图像,输出为,那么我们可以认为输入图像是一个,反之若输出为,那么我们认为输入图像不是一个。在实际问题中,常常约定为边界,超过的输出等价于输出为,而低于的输出则认为等价于。
与感知器对比
我们假设输入是一个非常大的正数,则,即S型神经元的输出近似为,此时与感知器的表现一致;反之若输入是一个非常小的负数,则,即S型神经元的输出近似为,此时S型神经元的行为也类似于感知器;而只有输入取中间值时,S型神经元和感知器会有较大的行为偏离。也可以认为感知器的输出是离散的,只有,而S型神经元的输出则是连续的。
附阶跃函数
实际上是阶跃函数平滑后的样子:
利用函数,我们得到的S型神经元可以看作是一个平滑的感知器,这意味着和的微小变动和可以令神经元的输出产生一个符合期望的变化,利用微积分我们可以得到:
容易看出,是关于和的一个线性函数,这一性质使得通过改变和来改变输出变得容易,这也是为什么S型神经元可以客服感知器存在的问题。实际上,函数是实际问题中比较常用的一个**函数。