神经网络学习之----线性神经网络,delta学习规则,递归下降法

  这里我们提出一个神经网络解决异或问题。

X = np.array([[1,0,0],[1,0,1],[1,1,0],[1,1,1]])
 
Y = np.array([-1,1,1,-1])
x1 = [0,1]
y1 = [1,0]
x2 = [0,1]
y2 = [0,1]

  异或问题出现四个点,此时一条直线无法正确地区分出正负样本,于是我们引入线性神经网络

线性神经网络:

  线性神经网络于感知器的主要区别在于,感知器的激活函数只能输出两种可能的值,而线性神经网络的输出可以取任意值,其激活函数是线性函数。线性神经网络采用Widrow-Hoff学习规则,即LMS(Least Mean Square)算法来调整网络的权值和偏置。

  线性神经网络在结构上与感知器非常相似,只是神经元激活函数不同。在模型训练时把原来的sign函数改为了purelin函数(y=x)。

LMS学习规则:

线性神经网络结构:

  这里我们可以看到线性神经网络结构中有两个激活函数,一个是purelin线性激活函数,一个是感知器里面的sign激活函数。为什么有两个呢?是因为我们训练模型的时候我们可以用purelin线性激活函数,这样我们可以得到一个更好的效果。但是我们输出结果的时候还是要用到sign激活函数,因为要分为-1和1。

Delta学习规则:

  1986年,认知心理学家McClelland和Rumelhart在神经网络训练中引入了Delta学习规则,该规则也可以称为连续感知器学习规则。

  Delta学习规则是一种利用梯度下降法的一般性的学习规则。

代价函数(损失函数)(Cost Function,Lost Function):

梯度下降法(一维情况):代价函数的值随着权值的改变而改变,改变权值的目的是为了得到最小的代价函数值。假如一个点在左边,△W与负梯度成正比,左边梯度为负数,负梯度即为正,△W与其成正比,所以为正。W=W加上一个正数,所以W就变大,向右移。

梯度下降法(二维情况):红色代表高的地方,蓝色代表低的地方。

梯度下降法的问题:

原文地址:https://www.cnblogs.com/mengqimoli/p/10348987.html