神经网络如何计算权重的总和?

我一直在阅读关于神经网络的基本理论,试图理解其背后的基本原理。我有些困惑,希望有人能帮我解答。

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

输入层 + 隐藏层 + 输出层,每一层都有节点或神经元。每个神经元从前一层的所有神经元获取输入,并向下一层的所有神经元发送输出。据说神经元会计算权重的总和,然后使用激活函数决定是否激活(或发送一个介于0到1之间的数值)。

让我困惑的是,它是如何计算权重的总和的?

带有一个隐藏层的神经网络

在上图中,我创建了一个简单的具有一个隐藏层的神经网络,并按照Andrew Ng在其讲座(Youtube)中所称的方式命名了输入。

因此,以第一层中的神经元a1为例:它将从第0层获取a1和a2的值,以及相应的权重和偏置,这些将在第一层的向量b1和w1中收集。

那么,总和是否通过以下公式计算?z = w1*x + b?这是否适用于所有类型的神经网络,还是仅适用于某一种类型的神经网络?第一层的z1是否也是一个向量?是激活函数使其成为标量吗?

我知道有不同的激活函数来计算最终发送到下一层神经元的标量值,这些值与权重和偏置一起发送。但我对权重和偏置的来源和计算方式感到非常困惑。

我希望我的解释没有太过混乱,因为我自己也感到很困惑。


回答:

操作z1 = w1*x + b仅适用于全连接层。例如,卷积神经网络使用不同的操作。

我认为在符号上有些混淆。第一层中a1的值是一个标量,要得到这个值,你需要对另一个标量z1应用激活函数,z1可以通过z1 = w1*x + b计算。这里,w1不是一个矩阵,而是一个指向神经元a1的权重向量。

然而,这不是通常的计算方式,因为这样做无法利用向量化。一般来说,你希望进行z = W*x + b的计算,其中W是所有权重的矩阵,z是一个向量,然后逐元素应用激活函数,得到该层的激活向量a。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注