对我来说,大多数 ANN/RNN 相关文章并没有告诉我网络是如何实现的。我知道在人工神经网络中你会有多个神经元、激活函数、权重等。但是,实际上,在每个神经元中,你如何将输入转换为输出?
抛开激活函数,神经元只是在做,并尝试找到正确的和? 如果这是真的,那么你有两个神经元及其输出怎么样(和) 指向一个神经元?你先乘和然后将其作为输入输入?
对我来说,大多数 ANN/RNN 相关文章并没有告诉我网络是如何实现的。我知道在人工神经网络中你会有多个神经元、激活函数、权重等。但是,实际上,在每个神经元中,你如何将输入转换为输出?
抛开激活函数,神经元只是在做,并尝试找到正确的和? 如果这是真的,那么你有两个神经元及其输出怎么样(和) 指向一个神经元?你先乘和然后将其作为输入输入?
单个神经元的基本计算形式为
在哪里是神经元的输入是每个输入的特定于神经元的权重,并且是预先指定的激活函数。用你的话来说,忽略激活函数,计算结果是
注意,偏置项只是一个权重乘以输入,因此它似乎没有输入。
如果您想进一步了解这一点,您应该尝试熟悉矩阵和向量表示法以及作为前馈神经网络基础的基本线性代数。如果你这样做了,整批数据上的一整层神经元会突然看起来像这样:
具有 3 层的 FFNN 将如下所示:
Simon Krannig 的回答提供了背后的数学符号,但由于您似乎仍然有点困惑,我已经制作了一个仅使用没有激活函数的权重的神经网络的可视化表示。见下文:
所以我很确定,正如你所怀疑的那样:在每个神经元上,你将前一层的输入之和乘以将特定输入连接到所述神经元的权重,其中每个输入对每个神经元都有自己独特的权重它的传出连接。
使用偏差,您将执行与上图所示完全相同的数学运算,但一旦找到最终值(0.2、-0.15、0.16 和 -0.075,输出层没有偏差),您将添加总价值的偏差。因此,请参见下面的示例,其中包括偏差:
注意我没有更新每一层的输出以包含偏差,因为我不会费心在油漆中重绘它。只要知道所有具有棕色偏差的节点的最终值都没有传递到下一层。
然后,如果你要包含一个激活函数,你最终会得到你的值并通过它。所以包括偏差',看看第 2 层的节点 1,它会是(假设你的激活函数是一个 sigmoid):
sigmoid((0.4*0.5)+0.2)
对于第 3 层节点 2:
sigmoid(((0.6*0.2)+(1.3*-0.15))-0.4)
这就是你如何做一个简单的神经网络的前向传递。