要了解神经网络如何帮助解决非线性问题, 将线性模型表示为图表:
图 3. 以图表形式呈现的线性模型。
每个蓝色圆圈表示一个输入特征,绿色圆圈表示 输入的加权和。
我们如何改变这种模型,提高其处理非线性模型的能力 问题?
隐藏层
在下图表示的模型中,我们添加了一个“隐藏层” 中间值组合隐藏层中的每个黄色节点都是加权和 蓝色输入节点值。输出是黄色区域的加权和 节点。
图 4. 两层模型的图表。
此模型是线性的吗?是的,其输出仍是 其输入。
在下图所示的模型中,我们又添加了一个隐藏层, 是加权和的一层。
图 5. 三层模型的图表。
此模型仍然是线性的吗?是的。将输出表示为 函数并简化,您将得到另一个加权和 输入。此和无法有效地为图 2 中的非线性问题建模。
激活函数
要对非线性问题进行建模,我们可以直接引入非线性。我们可以 使用非线性函数将每个隐藏层节点连接起来。
在以下图表表示的模型中, 隐藏层 1 在被传递之前由一个非线性函数进行转换 计算下一层的加权和。这种非线性函数称为 激活函数。
图 6. 包含激活函数的三层模型的图表。
现在,我们已经添加了激活函数,添加层将产生更大的影响。 利用非线性函数堆叠非线性函数,我们可以 输入与预测输出之间的关系,简而言之,每个 层正在通过 Transformer 模型 原始输入。如果您希望更直观地了解其工作原理,请参阅 Chris Olah 的精彩博文。
常用激活函数
下面的 S 型激活函数会将加权和转换为 介于 0 和 1 之间的值。
曲线图如下:
图 7. S 型激活函数。
下面的修正线性单元激活函数(或 ReLU, 通常比 S 型函数等平滑函数好一点, 同时更容易计算。
ReLU 的优越性基于实验发现,可能由 ReLU 驱动 从而实现更实用的响应范围S 型函数的响应能力下降 两边会相对较快地关闭
图 8. ReLU 激活函数。
事实上,任何数学函数都可以充当激活函数。 假设 \(\sigma\) 表示我们的激活函数。 (Relu、Sigmoid 等)。 因此,网络中节点的值由以下公式计算得出 公式:
摘要
现在,我们的模型包含人们通常会 指的是什么:
- 一组节点,类似于神经元,并且按层组织。
- 一组权重,用于表示每个神经网络之间的连接 层及其下面的层。下面的层可能是 另一个神经网络层或其他类型的层。
- 一组偏差,每个节点一个偏差。
- 一种激活函数,用于对层中每个节点的输出进行转换。 不同的层可能具有不同的激活函数。
警告:神经网络并不一定总比 特征组合,但神经网络确实提供了一种灵活的替代方案, 在很多情况下效果都非常好