PyTorch - 神经网络基础



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

示例神经元的示意图如下所示:

sample neuron

生成的输出可以被认为是带激活电位或偏差的加权和。

$$输出 = \sum_j w_j x_j + 偏差$$

典型的 神经网络架构如下所示:

neural network architecture

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

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

前馈神经网络

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

Feedforward Neural Networks

循环神经网络

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

Recurrent Neural Networks

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

Construct Neural Networks

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

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

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