神经网络中的单位是什么(反向传播算法)
What are units in neural network (backpropagation algorithm)
请帮助我理解神经元网络中的单元。从书中我了解到输入层中的一个单元代表训练元组的一个属性。然而,目前还不清楚它究竟是如何做到的。
这是示意图:
输入单位有两个"thinking paths"。第一个可能是X1代表attr1,X2代表 attr2...否则,可能是X1、X2和X3代表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 倍。
请帮助我理解神经元网络中的单元。从书中我了解到输入层中的一个单元代表训练元组的一个属性。然而,目前还不清楚它究竟是如何做到的。
这是示意图:
输入单位有两个"thinking paths"。第一个可能是X1代表attr1,X2代表 attr2...否则,可能是X1、X2和X3代表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 倍。