Pytorch 简明教程

PyTorch - Neural Network Basics

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

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

sample neuron

生成的输出可以看作是具有激活电位或偏差的加权和。

Output=\sum_jw_jx_j+Bias

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

neural network architecture

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

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

Feedforward Neural Networks

前馈神经网络包括神经网络系列的基本单元。这种类型神经网络中数据的运动是从输入层到输出层,通过当前隐藏层进行的。一层输出作为输入层,对网络架构中的任何类型的循环进行了限制。

feedforward neural networks

Recurrent Neural Networks

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

recurrent neural networks

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

construct neural networks

它是一个简单的前馈网络。它获取输入,将其逐层馈送到多个层,然后最终给出输出。

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

  1. 定义一些可学习参数(或权重)的神经网络。

  2. 在输入数据集上进行迭代。

  3. 通过网络处理输入。

  4. 计算损失(输出与正确的相差多远)。

  5. 将梯度反向传播到网络的参数中。

  6. 更新网络的权重,通常使用提供如下一个简单更新项

rule: weight = weight -learning_rate * gradient