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

Posted

技术标签:

【中文标题】神经网络中的单位是啥(反向传播算法)【英文标题】:What are units in neural network (backpropagation algorithm)神经网络中的单位是什么(反向传播算法) 【发布时间】:2015-08-04 07:48:52 【问题描述】:

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

图表如下:

关于输入单元有两条“思考路径”。第一个可能是 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

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

【问题讨论】:

【参考方案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 时似乎效果最好。维数远高于所需的图像数据。

以上是关于神经网络中的单位是啥(反向传播算法)的主要内容,如果未能解决你的问题,请参考以下文章

bp算法在人工神经网络中的作用是啥?

反向传播算法的算法简介

神经网络中的反向传播法

难以理解神经网络中的反向传播算法

读懂反向传播算法(bp算法)

一文搞懂反向传播算法