PyTorch - 神经网络基础知识


神经网络的主要原理包括基本元素的集合,即人工神经元或感知器。它包括几个基本输入,例如 x1、x2….. xn,如果总和大于激活电位,则产生二进制输出。

样本神经元的示意图如下 -

样本神经元

生成的输出可以被视为具有激活势或偏置的加权和。

$$输出=\sum_jw_jx_j+偏差$$

典型的神经网络架构如下所述 -

神经网络架构

输入和输出之间的层称为隐藏层,层之间连接的密度和类型就是配置。例如,全连接配置将 L 层的所有神经元连接到 L+1 层的神经元。为了获得更明显的定位,我们可以仅将局部邻域(例如九个神经元)连接到下一层。图 1-9 展示了两个具有密集连接的隐藏层。

各种类型的神经网络如下 -

前馈神经网络

前馈神经网络包括神经网络家族的基本单元。这种类型的神经网络中的数据移动是通过现有的隐藏层从输入层到输出层。一层的输出作为输入层,对网络架构中任何类型的循环都有限制。

前馈神经网络

循环神经网络

循环神经网络是指数据模式在一段时间内发生相应变化的情况。在RNN中,同一层用于在指定的神经网络中接受输入参数并显示输出参数。

循环神经网络

可以使用 torch.nn 包构建神经网络。

构建神经网络

这是一个简单的前馈网络。它接受输入,将其逐层输入,最后给出输出。

在 PyTorch 的帮助下,我们可以使用以下步骤进行神经网络的典型训练过程 -

  • 定义具有一些可学习参数(或权重)的神经网络。
  • 迭代输入数据集。
  • 通过网络处理输入。
  • 计算损失(输出距离正确还有多远)。
  • 将梯度传播回网络参数。
  • 更新网络的权重,通常使用如下所示的简单更新
rule: weight = weight -learning_rate * gradient