PyTorch 教程-深度神经网络中的前馈过程
现在,我们知道如何通过结合具有不同权重和偏差的线性模型来得到非线性模型。那么,神经网络如何知道每一层应该有什么权重和偏差值呢?这与我们为单个基于感知机模型所做的并无二致。
我们仍然使用梯度下降优化算法,该算法通过迭代地移动到最陡峭的下降方向,以最小化模型的误差,更新模型的每一个层次中的每一个模型的权重。稍后我们将更多地讨论优化算法和反向传播。
重要的是要认识到我们的神经网络随后的训练。通过将我们的数据样本划分为某些决策边界来进行识别。
“接收输入以产生某种输出以做出某种预测的过程被称为前馈。”前馈神经网络是许多其他重要神经网络(如卷积神经网络)的核心。
在前馈神经网络中,网络中没有任何反馈循环或连接。这里只有输入层、隐藏层和输出层。
可以有多个隐藏层,这取决于你正在处理什么类型的数据。隐藏层的数量被称为神经网络的深度。深度神经网络可以从更多的函数中学习。输入层首先为神经网络提供数据,输出层然后基于一系列函数对该数据进行预测。ReLU 函数是深度神经网络中最常用的激活函数。
为了深入了解前馈过程,让我们从数学上看一下这个过程。
1.首先将输入馈入网络,表示为矩阵 x1、x2 和一个偏差值。
2.每个输入乘以权重,分别对应于第一个和第二个模型,以获得每个模型中正区域的概率。
因此,我们将使用矩阵乘法将输入乘以一组权重矩阵。
3.之后,我们将对得分取 Sigmoid 值,得到点在两个模型中正区域的概率。
4.我们将上一步得到的概率与第二组权重相乘。每次进行输入组合时,我们总是包含一个偏差值。
正如我们所知,为了获得点在此模型正区域的概率,我们取 Sigmoid 值,从而在前馈过程中产生最终输出。
让我们看一下我们之前的神经网络,它包含了以下线性模型和隐藏层,这些模型组合在一起在输出层形成非线性模型。
那么,我们将使用我们的非线性模型来产生描述点在正区域的概率的输出。该点由 2 和 2 表示。连同偏差,我们将输入表示为
回想一下隐藏层中的第一个线性模型和定义它的方程
这意味着在第一层获得线性组合时,输入乘以 -4、-1,偏差值乘以十二。
输入的权重分别乘以 -1/5、1,偏差乘以三,以获得第二个模型中同一点的线性组合。
现在,为了获得点相对于两个模型在正区域的概率,我们对两个点应用 Sigmoid 函数,如下所示:
第二层包含决定第一层中线性模型组合以获得第二层中非线性模型的权重。这些权重是 1.5、1 和偏差值 0.5。
现在,我们必须将第一层得到的概率与第二组权重相乘,如下所示:
现在,我们将对最终得分取 Sigmoid 值
这就是前馈过程背后的完整数学原理,其中输入从输入层穿越神经网络的整个深度。在这个示例中,只有一个隐藏层。无论是一个隐藏层还是二十个,所有隐藏层的计算过程都是相同的。