PyTorch - 神经网络基础

  • 简述

    神经网络的主要原理包括基本元素的集合,即人工神经元或感知器。它包括几个基本输入,例如 x1、x2..... xn,如果总和大于激活电位,则会产生二进制输出。
    样本神经元的示意图如下所述 -
    样本神经元
    生成的输出可以被视为具有激活电位或偏差的加权和。
    $$Output=\sum_jw_jx_j+Bias$$
    典型的神经网络架构如下所述 -
    神经网络架构
    输入和输出之间的层称为隐藏层,层之间连接的密度和类型是配置。例如,全连接配置将 L 层的所有神经元连接到 L+1 层的所有神经元。为了更明显的定位,我们只能将一个局部区域(比如九个神经元)连接到下一层。图 1-9 展示了两个具有密集连接的隐藏层。
    各种类型的神经网络如下 -
  • 前馈神经网络

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

    循环神经网络是指数据模式在一段时间内发生变化。在 RNN 中,应用同一层在指定的神经网络中接受输入参数并显示输出参数。
    循环神经网络
    可以使用 torch.nn 包构建神经网络。
    构建神经网络
    这是一个简单的前馈网络。它接受输入,将其一层接一层地馈入,然后最终给出输出。
    在 PyTorch 的帮助下,我们可以使用以下步骤进行神经网络的典型训练过程 -
    • 定义具有一些可学习参数(或权重)的神经网络。
    • 迭代输入数据集。
    • 通过网络处理输入。
    • 计算损失(输出离正确还有多远)。
    • 将梯度传播回网络参数。
    • 更新网络的权重,通常使用如下所示的简单更新
    
    rule: weight = weight -learning_rate * gradient