神经网络:结构

要了解神经网络如何帮助解决非线性问题, 将线性模型表示为图表:

同一行中三个蓝色圆圈通过箭头与其上方的绿色圆圈相连

图 3. 以图表形式呈现的线性模型。

每个蓝色圆圈表示一个输入特征,绿色圆圈表示 输入的加权和。

我们如何改变这种模型,提高其处理非线性模型的能力 问题?

隐藏层

在下图表示的模型中,我们添加了一个“隐藏层” 中间值组合隐藏层中的每个黄色节点都是加权和 蓝色输入节点值。输出是黄色区域的加权和 节点。

行中三个蓝色圆圈标着

图 4. 两层模型的图表。

此模型是线性的吗?是的,其输出仍是 其输入。

在下图所示的模型中,我们又添加了一个隐藏层, 是加权和的一层。

行中三个蓝色圆圈标着

图 5. 三层模型的图表。

此模型仍然是线性的吗?是的。将输出表示为 函数并简化,您将得到另一个加权和 输入。此和无法有效地为图 2 中的非线性问题建模。

激活函数

要对非线性问题进行建模,我们可以直接引入非线性。我们可以 使用非线性函数将每个隐藏层节点连接起来。

在以下图表表示的模型中, 隐藏层 1 在被传递之前由一个非线性函数进行转换 计算下一层的加权和。这种非线性函数称为 激活函数。

除了有一行标记为“非线性转换层”的粉色圆圈外,与上图相同两个隐藏层之间添加了一个矢量。

图 6. 包含激活函数的三层模型的图表。

现在,我们已经添加了激活函数,添加层将产生更大的影响。 利用非线性函数堆叠非线性函数,我们可以 输入与预测输出之间的关系,简而言之,每个 层正在通过 Transformer 模型 原始输入。如果您希望更直观地了解其工作原理,请参阅 Chris Olah 的精彩博文

常用激活函数

下面的 S 型激活函数会将加权和转换为 介于 0 和 1 之间的值。

$$F(x)=\frac{1} {1+e^{-x}}$$

曲线图如下:

S 型函数

图 7. S 型激活函数。

下面的修正线性单元激活函数(或 ReLU, 通常比 S 型函数等平滑函数好一点, 同时更容易计算。

$$F(x)=max(0,x)$$

ReLU 的优越性基于实验发现,可能由 ReLU 驱动 从而实现更实用的响应范围S 型函数的响应能力下降 两边会相对较快地关闭

ReLU 激活函数

图 8. ReLU 激活函数。

事实上,任何数学函数都可以充当激活函数。 假设 \(\sigma\) 表示我们的激活函数。 (Relu、Sigmoid 等)。 因此,网络中节点的值由以下公式计算得出 公式:

$$\sigma(\boldsymbol w \cdot \boldsymbol x+b)$$

摘要

现在,我们的模型包含人们通常会 指的是什么:

  • 一组节点,类似于神经元,并且按层组织。
  • 一组权重,用于表示每个神经网络之间的连接 层及其下面的层。下面的层可能是 另一个神经网络层或其他类型的层。
  • 一组偏差,每个节点一个偏差。
  • 一种激活函数,用于对层中每个节点的输出进行转换。 不同的层可能具有不同的激活函数。

警告:神经网络并不一定总比 特征组合,但神经网络确实提供了一种灵活的替代方案, 在很多情况下效果都非常好