我试图弄清楚我是否正在使用sigmoid激活函数创建一个人工神经网络并正确使用偏差。我想要一个偏置节点输入到所有隐藏节点,静态输出-1加上它的权重,然后一个输出到静态输出-1加上它的权重。然后,我可以像训练其他神经元一样训练这些偏差,对吗?
答案 0 :(得分:2)
这是一个正确的推理,但设置“-1”值(为什么不+1?)是相当罕见的,我以前从未在文献中看到过这一点。如果保持正确的图形结构,则“实际”节点和“偏置节点”的权重更新之间没有区别。如果您不存储图形结构,那么唯一的区别可能会出现,因此您不“知道”该偏差(连接到输出节点的那个)没有“子”,因此信号不会“反向传播”到网络中。我见过这样的代码,它只是将层存储为数组,它们将偏差放在索引0处,这样它们就可以在反向传播期间从1迭代。显然,基于图形的实现更具可读性(但是因为无法对计算进行矢量化而要慢得多)。