人工神经元(二)

背景

每个神经网络都具有其独特的学习算法,对于感知器网络而言我们希望网络可以学习weightweight(简记为ww)和biasbias(简记为bb),从而实现网络的正确输出。因此如果我们对wwbb做一些微小改动,我们希望网络的输出也会有微小变化,同时希望网络的表现是按照我们需要的方向改变,这样我们便可以通过不断地修改wwbb来产生更好的输出。
然而当网络包含上文所提及的感知器时,我们无法通过修改wwbb来产生符合我们意愿的输出。原因在于对网络中单个感知器的wwbb做微小改动,有时会直接引起感知器的输出完全相反,而这又会引起网络中更深层的感知器以无法预测的方式改变输出,所以在感知器网络中,通过修改wwbb来让网络产生期望的行为是非常困难的。
而这一问题可以由另一种人工神经元——S型神经元克服。

模型

人工神经元(二)
S型神经元和感知器是类似的,不同的地方在于感知器的输出只能为0/1,而S型神经元的输出是[0,1][0,1]范围内的值,这是因为在该神经元输出之前添加了一个**函数——S型函数:
人工神经元(二)
在一些地方该函数也被称为逻辑函数,对应的这种神经元称之为逻辑神经元。该函数的图象如下图所示:
人工神经元(二)
对于一个具有输入x1,x2,x3,x_1,x_2,x_3,\cdots,权重w1,w2,w3,w_1,w_2,w_3,\cdots和偏置bbSS型神经元,其输出为σ(wx+b)\sigma(w\cdot{x}+b),即:
人工神经元(二)
不同于感知器,S型神经元可以输出0011之间的任何实数,比如0.618,0.618,\cdots。如果输出为0/10/1,那么结果是非常明显的,否则,我们可以认为S型神经元的输出为事件成立的概率。比如我们的输入是一副手写数字9的图像,输出为0.7320.732,那么我们可以认为输入图像是一个99,反之若输出为0.1620.162,那么我们认为输入图像不是一个99。在实际问题中,常常约定0.50.5为边界,超过0.50.5的输出等价于输出为11,而低于0.50.5的输出则认为等价于00

与感知器对比

我们假设输入zwx+bz\equiv{w}\cdot{x}+b是一个非常大的正数,则σ(z)1\sigma(z)\approx1,即S型神经元的输出近似为11,此时与感知器的表现一致;反之若输入zwx+bz\equiv{w}\cdot{x}+b是一个非常小的负数,则σ(z)0\sigma(z)\approx0,即S型神经元的输出近似为00,此时S型神经元的行为也类似于感知器;而只有输入zwx+bz\equiv{w}\cdot{x}+b取中间值时,S型神经元和感知器会有较大的行为偏离。也可以认为感知器的输出是离散的,只有0/10/1,而S型神经元的输出则是连续的。

附阶跃函数

sigmoidsigmoid functionfunction实际上是阶跃函数平滑后的样子:
人工神经元(二)
利用σ\sigma函数,我们得到的S型神经元可以看作是一个平滑的感知器,这意味着wwbb的微小变动wj\triangle{w_j}b\triangle{b}可以令神经元的输出产生一个符合期望的变化output\triangle{output},利用微积分我们可以得到:
人工神经元(二)
容易看出,output\triangle{output}是关于wj\triangle{w_j}b\triangle{b}的一个线性函数,这一性质使得通过改变wwbb来改变输出变得容易,这也是为什么S型神经元可以客服感知器存在的问题。实际上,σ\sigma函数是实际问题中比较常用的一个**函数。