了解神经网络的视觉表示?

机器算法验证 自习 神经网络
2022-04-04 00:27:03

当我看到一个典型的神经网络示例以及它与背后的矩阵数学有何关系时,有人可以快速概述一下我所看到的内容吗?我们通常会看到一个典型的图表,如下所示:

在此处输入图像描述

现在,根据作者的说法,在矩阵数学中,这在下面表示,其中 Ws 是隐藏层 1 节点中任何激活函数的系数,X 是特征或预测值: 在此处输入图像描述

在估计每个隐藏层的参数时,这种表示是有意义的。我们有一堆数据,我们将它们全部输入模型并产生预测。如果我们有 5 个观察值,我们在图中就有 5 个预测。因此,输入的数量等于输出的数量。

我不太明白的是,一旦模型建立起来,图形表示是如何工作的?假设您有一个新的预测变量值,并将其输入到下面的 NN 中。NN 是如何知道分配给这个单一预测变量值的系数的?其他系数会发生什么变化?Xs 值的向量是否等于 [X1, 0, 0, 0, 0]?

谢谢。

2个回答

我相信你误解了输入变量的作用(或者我误解了你)。属于数据中单个观察值的特征。因此,输入维度是,这意味着您的数据是五维的。这与输出维度无关,输出维度通常等于数据中的类数。因此,当一个新的数据样本出现时,您只需将其输入网络并获取您的输出。X1...X55X1..X5

为清楚起见,我将参考您问题的图像。从左到右,这个神经网络 (NN) 有一个 5 个神经元的输入层、一个 2 个神经元的隐藏层和一个 5 个神经元的输出层。

图形表示如何工作?假设您有一个新的预测变量值,并将其输入到下面的 NN 中。NN 是如何知道分配给这个单一预测变量值的系数的?其他系数会发生什么变化?Xs 值的向量是否等于 [X1, 0, 0, 0, 0]?

一旦我们已经设置了所有的权重和偏差,神经网络就已经被训练过了。因此,网络准备好在其输入层接收数据并在输出层做出正确的预测

在图像的 NN 中,我们有一个由 5 个神经元组成的输入层。这 5 个神经元将“接收”值已知的数据,例如它们可以是由 5 个像素(与输入层的神经元数量相同)形成的图像的像素灰度值的 5x1 向量。

在此之后,网络将执行所有需要的数学运算,并按照图像的示例在输出层给出一个 5x1 的向量。这个输出可以给出它的一些信息,例如它是否包含总共 5 个对象中的 1 个,因此如果输出层的第一个神经元与 object1 相关联,则该神经元将被激活,这意味着该对象存在。

在此之后,如果图像中存在对象1、对象3和对象4,我们将在输出层有一个像这样的向量:[1,0,1,1,0]T. 注意:在实践中,这只会在理想情况下发生。如果网络训练有素,最有可能发生的事情是向量的元素接近0对于未激活的神经元,并且接近1对于激活的神经元。

以及它与背后的矩阵数学有何关系?

为了回答这个问题,我需要一些符号。由于网络已经过训练,我们知道图像矩阵的所有元素:每个权重wjk和每一个偏见bj在哪里j表示权重矩阵(或偏差向量)的行,它还与我们要计算激活向量的层中的神经元位置有关。另一方面,k表示权重矩阵的列或神经元在当前层的前一层中的位置,我们正在计算激活。

使用这个符号,我们可以计算每个神经元的激活j在一层中:

xj=f(zj)zj=kwjk×xk+bj在哪里f表示激活函数,它可以是不同类型的,如SigmoidSoftmax

请注意,这与分别计算每个Zi出现在问题图像中的方程式。所以这就是矩阵数学在“幕后”所做的。

编辑:正如 Gunes 所说,输入层的神经元数量与输出层的神经元数量无关。