1.10 学习来自多个节点的权重
先前,我们通过调整节点线性函数的斜率参数,来调整简单的线性分类器。我们使用误差值,也就是节点生成了答案与所知正确答案之间的差值,引导我们进行调整。实践证明,误差与所必须进行的斜率调整量之间的关系非常简单,调整过程非常容易。
当输出和误差是多个节点共同作用的结果时,我们如何更新链接权重呢?下图详细阐释了这个问题。
当只有一个节点前馈信号到输出节点,事情要简单得多。如果有两个节点,我们如何使用输出误差值呢?
使用所有的误差值,只对一个权重进行更新,这种做法忽略了其他链接及其权重,毫无意义。多条链接都对这个误差值有影响。
只有一条链接造成了误差,这种机会微乎其微。如果我们改变了已经“正确”的权重而使情况变得更糟,那么在下一次迭代中,这个权重就会得到改进,因此神经网络并没有失去什么。
一种思想就是在所有造成误差的节点中平分误差,如下图所示。
另一种思想是不等分误差。与前一种思想相反,我们为较大链接权重的连接分配更多的误差。为什么这样做呢?这是因为这些链接对造成误差的贡献较大。下图详细阐释了这种思想。
此处,有两个节点对输出节点的信号做出了贡献,它们的链接权重分别是3.0和1.0。如果按权重比例分割误差,那么我们就可以观察到输出误差的3/4应该可以用于更新第一个较大的权重,误差的1/4 可以用来更新较小的权重。
我们可以将同样的思想扩展到多个节点。如果我们拥有100个节点链接到输出节点,那么我们要在这100条链接之间,按照每条链接对误差所做贡献的比例(由链接权重的大小表示),分割误差。
你可以观察到,我们在两件事情上使用了权重。第一件事情,在神经网络中,我们使用权重,将信号从输入向前传播到输出层。此前,我们就是在大量地做这个工作。第二件事情,我们使用权重,将误差从输出向后传播到网络中。我们称这种方法为反向传播,你应该不会对此感到惊讶吧。
如果输出层有2个节点,那么我们对第二个输出节点也会做同样的事情。第二个输出节点也会有其误差,这个误差也可以通过相连的链接进行类似的分割。在接下来的内容中,我们将来看看这个方法。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论