神经网络中的单位是啥(反向传播算法)
Posted
技术标签:
【中文标题】神经网络中的单位是啥(反向传播算法)【英文标题】:What are units in neural network (backpropagation algorithm)神经网络中的单位是什么(反向传播算法) 【发布时间】:2015-08-04 07:48:52 【问题描述】:请帮助我理解神经元网络中的单元事物。从书中我了解到输入层中的一个单元代表训练元组的一个属性。但是,它究竟是如何做到的,尚不清楚。
图表如下:
关于输入单元有两条“思考路径”。第一个可能是 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
第二个问题是关于隐藏层单元的。如何决定隐藏层有多少单元,它们在模型中代表什么?
【问题讨论】:
【参考方案1】:“单位”只是浮点值。
那里发生的所有计算都是向量乘法,因此可以使用矩阵乘法和 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 倍。
【讨论】:
据我了解 x[] 是元组属性的数字表示,w[] 是其连接的权重,但我仍然不知道如何从元组中导出 x[i]属性。 假设输入数据是数字。您可以尝试使用male=0、female=1等编码。 这是有道理的,所以属性 (x[]) 必须是序数。并且输入层中的单元数等于具有元组的属性数。但是,仍然不清楚隐藏层的单位,我该如何定义那里的单位数量。在我使用的书中的图表上,隐藏层的单元数量较少,并且没有任何意义。 取决于您的域。通常每个级别的隐藏单元都比输入层少,因为您需要抽象。但是当应用于例如 NN 时似乎效果最好。维数远高于所需的图像数据。以上是关于神经网络中的单位是啥(反向传播算法)的主要内容,如果未能解决你的问题,请参考以下文章