开发者学堂课程【神经网络概览及算法详解:单层感知器-2】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/40/detail/924
单层感知器-2
有如下几个样本:X1, X2, X3 ,X4,四个样本,
每个样本由四个分量组成,也就是意味着需要有四个输入节点,如果考虑偏置量,需要再加一个,期望输出 第一个样本的输出是1,第二个是1,第三个是-1,第四个是-1,也就是说输出只有一个分量就是1,只有一个分量,就相当于输出量只有一个,网络的拓扑结构就是。它有两层,第一层是输入层,有四个数字节点,第二层是个输出层,有一个输出节点。
实际上第一个是X0,表明样本实际上只有三个有效值,第一个值就是偏置,将它设为1,每个样本第一个数都为1,因为已经考虑了样本弊,即它的偏置。X1,X2,X3是w,对应求出的权重。
用单层感知器的方法训练此模型
1,初始化权重向量和学习速率: W(0)=(0.1,0.2,0.3,0.4)T,n=0.1,n的设置很有必要,不能过大,也不能过小,需要一直尝试来决定,初始化w设为0.1,0.2,0.3,0.4,较小的非零数,为W1,W2,W3,W4,将X1的数字分别带入X0,X1,X2 ,X3中,计算累加代数和,使用当前权重值乘输入值,使用向量形式,结果为–0.06,如果不太习惯使用向量,也可使用分量的表现形式计算,第一个分量0.1×1,第二个分量0.2×0.4,第三个为0.3×–0.8,第四个为0.4×0,相加所得结果也为–0.06,但更建议使用向量和线性代数的方式表示公式的运算过程,比较简洁,可以直接实现向量的运算,得出来值是–0.06,然后需要用符号函数做到–0.06上,很显然结果就是–1。因为–0.06小余0,因此结果为–1。
2,计算本次处理实际输出与期望输出的差: d(1)–o(1)=2,即学习信号。d(1)=1,结果为–1,权重更新: w(1)=w(0)+△w=w(0)+n(d(1)–o(1))x(1),新的权重等于原有的权重+△w,△w=学习速率n*学习信号*输入的样本指令向量,w(0)是已知的,n是已知的,x(1)是已知的,因此w1可以很好的计算出,值为
接下来更新权重,权重为0.3,0.28,0.14,0.4,n=0.1,对样本X(2)计算每个节点的输出:
第二个样本X(2)为输入值,计算net值,等于最新的权重乘以输入样本,得到结果为0.308,实际输出用sign函数计算得到1,因为0.308大于0,因此实际输出是1,接下来计算本次处理实际输出与期望输出的差: d(2)–o(2)=0,目前的权重对第二个样本的实际输出和期望输出是一致的,理论上不需要进行权重更新。为了保持公示的一致,进行权重更新。权重更新: w(2)=w(1)+△w=w(1)+n(d(2)–o(2))x(2),当前权重等于之前的权重加变化量,因为d(2)–o(2)=0,所以当前权重等于上一次的权重,没有发生变化,结果如
如果实际输出和期望输出一致,没有必要进行更改权重。当前权重为0.3 0.28 0.14 0.4,将第三个样本代入计算,作为输入节点的输入,计算结果为0.47
因为net结果为0.47大于0,使用sgn函数得到结果为1,计算本次处理实际输出与期末输出的差:
d(3)–o(3)=–2,结果不一样,所以进行权重更新: w(3)=w(2)+△w=w(2)+n(d(3)–o(3))x(3),将–2代入计算更新,结果如图
更新完成后计算X(4),净输出为–0.074,计算过程如图:
使用sgn函数计算得到–1,计算学习信号,即计算本次处理实际输出与期望输出的差: d(4)–o(4)=0,此时不需要进行权重更新。
四个样本计算完成后,可以看到四个样本中,是有实际输出和计划输出不一致的,所以要再进行下一轮的学习,再把第一个样本带进来算,结果为0.3,实际输出是1,此时计算本次处理实际输出与期望输出的差结果为0,不需要进行权重更新,将第二个样本带入进去计算,net值为–0.06,此时实际输出为-1,计算本次处理实际输出和期望输出的差,结果为2,进去计算权重,同理,将第三个样本带入进去计算,此时他的实际输出为1,学习信号为–2,带入进行权重更新,结果如下,
接下来将第四个样本带入计算,实际输出结果为-1,因为期望输出值也是–1,所以实际输出和期望输出的差为零。此时不需要进行权重更新。
进行再一轮的计算,将第一个样本带入计算,实际输出为1,学习信号为0,此时不需要进行权重更新。
带入第二个样本进行计算,循环进行计算,实际输出是1,此时学习信号为零,此时不需要进行权重更新。
此时0.1 0.56 0.02 0.08对1,2,4号样本都是满足的,最后来看一下3号样本是否满足。带入进行计算,如果对3号样本也满足,就可证明得到权重对所有样本都满足,都能达到期望输出。3号样本实际输出为-1,学习信号为0,即当前计算出的权重值对四个样本都能达到实际输出和期望输出一致的要求,即所计算出的样本权重0.1 0.56 0.02 0.08,都能满足对四个样本实际输出和期望输出一致的要求。即这个权重就是可以接受的一组解,但不是唯一的解,可能还有其他的权重值满足。但至少算出来的解是满足需求的一个解,因此可以写出分隔超平面为0.1+0.56*x1+0.02*x2+0.08*x3=0,图像如下:
可以看到,它是三维的,图一上的点被标注出,红颜色的点是输出等于1,蓝颜色的点是输出等于–1,图2中灰色平面即为0.1+0.56*x1+0.02*x2+0.08*x3=0对应的分隔超平面。通过转动可以看到分隔超平面已经将蓝色的样本和红色的样本区分开,得到一个满足要求的分隔超平面。该图在mac笔记本上用自带的应用可以做到,只能为三维。