perceptrons的缺陷
学习算法听起来很奇妙,但是我们如何设计这种算法以供神经网络使用?假设我们有一个perceptrons,我们想用它来学习处理一些问题,例如,有一些来自扫描仪扫描出来的手写数字图片,我们拿它们的像素数据作为inputs,然后我们让这个神经网络去学习如何判别这些数字,这个过程,将会计算出合适的权重和biase。
如上图,我们假设 表示一些在perceptron上的小改变,改变原因是这样的:错误地把9识别为8.通过调整权重,我们得到正确的输出,它是在原来的输出上多一个
。
像上述这种问题,解决方法是有缺陷的,实际上,对一个perceptron上的小改动,可能会影响到ouput的完全flip,也就是从0到1,从1到0。这让我们很难看到渐变的过程(为毛要看渐变的过程?这个好像涉及到数学问题,想知道吗?可以继续关注本系列)
sigmoid neuron的提出
对于perceptron的问题,我们可以用一种新的人工网络sigmoid neruron。sigmoid neruron和perceptron相似,不过权重和bias的影响没有perceptron显著,其表现更加gradually(逐渐地)。
下图是sigmoid neruron的例子:
定义和perceptron基本相同,有输入有输出,也有权重和bias,但是其ouput实介于0~1的数,也就是说,0.638也可以是ouput的。其输出的公式是利用了sigmoid函数:
sigmoid函数公式如下:
代入公式后: