我在尝试弄清楚如何使用Sigmoid激活函数创建人工神经网络,并正确使用偏置。我希望有一个偏置节点输入到所有隐藏节点,输出固定为-1并与其权重结合,然后另一个偏置节点输入到输出层,输出也固定为-1并与其权重结合。这样,我可以像训练其他神经元一样训练这些偏置,对吗?
回答:
你的推理是正确的,不过设置为”-1″的值并不常见(为什么不设为+1?),我在文献中从未见过这种做法。如果你保持正确的图结构,那么更新“真实”节点和“偏置节点”的权重之间没有区别。唯一的区别可能出现在你没有存储图结构的情况下,因此你不知道连接到输出节点的偏置没有“子节点”,所以信号不会“反向传播”到网络更深处。我见过一些代码,它们简单地将层存储为数组,并将偏置放在索引0的位置,以便在反向传播时从1开始迭代。显然,基于图的实现更易读(然而速度更慢,因为你无法向量化计算)。