PyTorch - 神经网络基础
神经网络的主要原理包括一组基本元素,即人工神经元或感知器。 它包括几个基本输入,例如 x1、x2….. xn,如果总和大于激活电位,则会产生二进制输出。
样本神经元的示意图如下所述 −
![样本神经元](https://www.w3ccoo.com/pytorch/images/sample_neuron.jpg)
产生的输出可以被认为是具有激活电位或偏差的加权和。
$$Output=\sum_jw_jx_j+Bias$$
典型的神经网络架构描述如下 −
![神经网络架构](https://www.w3ccoo.com/pytorch/images/neural_network_architecture.jpg)
输入和输出之间的层称为隐藏层,层之间连接的密度和类型是配置。 例如,一个完全连接的配置将 L 层的所有神经元都连接到 L+1 层的神经元。 对于更明显的定位,我们只能将一个局部邻域(比如 9 个神经元)连接到下一层。 图 1-9 展示了两个具有密集连接的隐藏层。
各种类型的神经网络如下 −
前馈神经网络
前馈神经网络包括神经网络族的基本单元。 在这种类型的神经网络中,数据的移动是通过现有的隐藏层从输入层到输出层。 一层的输出作为输入层,对网络架构中的任何类型的循环都有限制。
![前馈神经网络](https://www.w3ccoo.com/pytorch/images/feedforward_neural_networks.jpg)
递归神经网络
递归神经网络是指数据模式在一段时间内发生变化。 在 RNN 中,相同的层被应用于在指定的神经网络中接受输入参数并显示输出参数。
![递归神经网络](https://www.w3ccoo.com/pytorch/images/recurrent_neural_networks.jpg)
可以使用 torch.nn 包构建神经网络。
![构建神经网络](https://www.w3ccoo.com/pytorch/images/construct_neural_networks.jpg)
这是一个简单的前馈网络。 它接受输入,一个接一个地通过几个层,最后给出输出。
在 PyTorch 的帮助下,我们可以使用以下步骤进行神经网络的典型训练过程 −
- 定义具有一些可学习参数(或权重)的神经网络。
- 迭代输入数据集。
- 通过网络处理输入。
- 计算损失(输出与正确的距离有多远)。
- 将梯度传播回网络参数。
- 更新网络的权重,通常使用下面给出的简单更新
rule: weight = weight -learning_rate * gradient