神经网络 – 每层或每节点的神经网络偏差(非输入节点)

我希望实现一个通用的神经网络,1个输入层由输入节点组成,1个输出层由输出节点组成,N个隐藏层由隐藏节点组成.节点被组织成图层,其规则是无法连接相同图层中的节点.

我大多理解偏见的概念,我的问题是:

每层应该有一个偏差值(由该层中的所有节点共享)还是应该每个节点(输入层中的节点除外)都有自己的偏置值?

我有一种感觉,它可以通过两种方式完成,并希望了解每种方法的权衡,并了解最常用的实现方式.

直观的观点

要正确回答这个问题,我们应该首先确定我们在问题中所说的“偏差值”时的意思.神经网络通常被直观地观察(并向初学者解释)为节点(神经元)网络和节点之间的加权定向连接.在此视图中,偏差经常被绘制为额外的“输入”节点,其总是具有恰好1.0的激活级别.这个值1.0可能是一些人在听到“偏见价值”时所想到的.这样的偏置节点将具有与其他节点的连接,具有可训练的权重.其他人可能会将这些权重视为“偏见值”.由于问题是用偏差神经元标签标记的,我将在假设我们使用第一个定义的情况下回答这个问题,例如:某些Bias节点/神经元的偏差值= 1.0.

从这个角度来看……只要我们确保将它们连接到正确的节点,在数学上我们放入网络中的Bias节点/值绝对无关紧要.您可以直观地将整个网络视为仅具有值为1.0的单个偏置节点,该节点不属于任何特定层,并且具有到输入节点以外的所有节点的连接.这可能很难绘制,如果你想绘制你的神经网络,在输出层以外的每一层放置一个单独的偏置节点(每个值为1.0)可能更方便,并且每个连接那些偏向节点直接在它之后的层中的所有节点.在数学上,这两种解释是等价的,因为在这两种情况下,每个非输入节点都具有来自始终具有1.0的激活水平的节点的传入加权连接.

编程视图

当神经网络被编程时,通常根本没有任何显式节点“对象”(至少在有效实现中).通常只有权重的矩阵.从这个角度来看,不再有任何选择.我们(几乎)总是希望每个非输入节点都有一个”偏重'(一个权重乘以1.0的恒定激活水平),我们必须确保所有这些权重都出现在我们的权重矩阵中的正确点.

相关文章
相关标签/搜索