神经网络中的单位是什么(反向传播算法)

What are units in neural network (backpropagation algorithm)

请帮助我理解神经元网络中的单元。从书中我了解到输入层中的一个单元代表训练元组的一个属性。然而,目前还不清楚它究竟是如何做到的。

这是示意图:

输入单位有两个"thinking paths"。第一个可能是X1代表attr1X2代表 attr2...否则,可能是X1X2X3代表attr1,但是X1代表Value.VALUE_ONE, ... , X3代表Value.VALUE_THREE。所以至少在这种情况下,如果 attr1 = Value.VALUE_TWO 然后它加权并同时馈送到第二层。

public class Tuple
{
  private Value attr1
  private Value attr2
  private Value attr3
}

public enum Value
{
  VALUE_ONE,
  VALUE_TWO,
  VALUE_THREE
}

第二个问题是关于隐藏层单元的。如何决定隐藏层中有多少个单元,它们在模型中代表什么?

"units" 只是浮点值。

那里发生的所有计算都是向量乘法,因此可以使用矩阵乘法和 GPU 硬件很好地并行化。

一般计算如下:

double v phi(double[] x, double[] w, double theta) {
  double sum = theta;
  for(int i = 0; i < x.length; i++)
    sum += x[i] * w[i];
  return tanh(sum);
}

除非您不想在 Java 中自己编写代码。您希望以并行方式在 GPU 上执行此操作,因为这会快 100 倍。