我一直在阅读有关神经网络的一般文章,并试图理解其背后的基本理论。我有点困惑,想知道是否有人可以帮助我。

我对神经网络的理解如下:

输入层+隐藏层+输出层,其中每个层都有节点或神经元。每个神经元都从上一层中的所有神经元获得输入,并且还发送到下一层中的每个神经元。然后,据说神经元计算权重之和,然后利用激活函数激活或不激活(或发送0到1之间的数字)。

让我感到困惑的是它如何计算权重之和?

machine-learning - 神经网络如何计算权重之和?-LMLPHP

在上图中,我创建了一个简单的神经网络,并像Andrew Ng在他的讲座(Youtube)中一样将输入称为。

因此,在第1层中采用神经元a1:
这将从第0层获得值a1和a2,以及相应的权重和偏差,这些权重和偏差将收集在第1层的向量b1和w1中。

然后根据以下公式计算总和吗?
z = w1 * x + b?这是所有神经网络的普遍适用,还是仅一种类型的NN?第1层中的z1也会是矢量吗?是使它成为标量的激活函数吗?

我知道,有不同的激活函数可以计算最终的标量值,并与权重和偏差一起发送到下一层神经元。但是我想我对权重和偏差以及它们来自/计算出的位置非常困惑。

我希望我的解释不要太混乱,因为我很困惑。

最佳答案

z1 = w1 * x + b运算仅适用于完全连接的层。例如,Convolutional Neural Networks使用不同的操作。

我认为该表示法有些混乱。第1层中a1的值是一个标量,要获得此值,您需要将激活函数应用于另一个标量z1,可以将其计算为z1 = w1 * x + b。在这里,w1不是矩阵,而是到达神经元a1的权重的向量。

但是,这不是执行计算的常用方法,因为这没有利用矢量化的优势。通常,您需要做z = W * x + b,其中W是所有权重的矩阵,而z是向量,然后逐个应用激活函数,从而获得该层的激活向量,即。

关于machine-learning - 神经网络如何计算权重之和?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49893993/

10-12 23:52