人工神经网络中的连接

时间:2011-05-04 03:19:46

标签: neural-network

如果我有一个具有任意数量层的人工神经网络,并且最后一个(退出)节点只接受3个输入(1,x1,x2),如果之前的隐藏层有4个节点,我该怎么办,这意味着它创建了4个到最后一个节点的连接。我只是忽略1吗?或者我是否必须强制最后一层有3个节点?

如果最后一个隐藏层只有2个或1个节点,我也很难处理这个问题。

我知道这不是一个真正的编程问题但是我没有很难编程(到目前为止)处理这些问题。

所以,是的,用户可以告诉我隐藏层的数量和每层节点的数量。

1 个答案:

答案 0 :(得分:2)

常量输入称为 bias 。假设您使用神经元的典型函数(输入的加权和的S形)如果一个神经元没有连接到 bias 输入,那么如果输入为0,该神经元只能输出0 ...因此,您失去了前馈神经网络的通用函数逼近能力。为了避免这种情况,有两种方法

  • 神经网络得到输入(x1,x2)。每个神经元都有自己的偏差值,因此神经元计算sigmoid(w1 * x1 + w2 * x2 + ... + wn * xn + bias)
  • 输入为(x1,x2,1)。神经元简单地计算sigmoid(w1 * x1 + w2 * x2 + ... + wn * xn)。每一层都完全连接到前一层

    for i in [1, nb_layer - 1]:
      for neuron A in neuron_layer[i]:
        for neuron B in neuron_layer[i+1]:
          connect(A, B)
    

我倾向于选择第二种解决方案,因为它使代码和数据更加简化,没有特殊情况, bias 被视为特殊输入,有点像电路的接地电压。