神经网络(非)线性

我对讨论神经网络时使用线性/非线性这个术语感到有些困惑。能有人帮我澄清这三个问题吗:

  1. 神经网络中的每个节点都是输入的加权和。这是一个输入的线性组合。所以每个节点的值(忽略激活)是由某个线性函数给出的。我听说神经网络是通用函数逼近器。这是否意味着,尽管每个节点内包含线性函数,整个网络也能够逼近非线性函数?有没有关于这在实践中如何运作的清晰例子?
  2. 激活函数被应用于该节点的输出,以压缩/转换输出,以便进一步传播到网络的其余部分。我是否正确地将激活函数的输出解释为该节点的“强度”?
  3. 激活函数也被称为非线性函数。非线性这个术语从何而来?因为输入到激活的输入是节点输入的线性组合。我假设它指的是像S形函数这样的非线性函数?为什么激活是非线性的很重要?

回答:

1 线性

神经网络只有在用非线性激活函数压缩节点的输出信号时才具有非线性。一个完整的神经网络(带有非线性激活函数)是一个任意函数逼近器。

附加说明:需要注意的是,如果你在多个连续层中使用线性激活函数,你完全可以将它们简化为单层,因为它们是线性的。(权重会变为更极端的值)。使用线性激活函数创建多层网络将无法模拟比单层网络更复杂的函数。

2 激活信号

将压缩后的输出信号解释为该信号的强度(从生物学角度来说)是完全可以的。不过,将输出强度解释为模糊逻辑中的置信度可能是不正确的。

3 非线性激活函数

是的,你完全正确。输入信号及其各自的权重是一个线性组合。非线性来自于你选择的激活函数。记住,线性函数被绘制成一条直线 – S形函数、双曲正切函数、ReLU等可能无法用单一的直线绘制。

为什么我们需要非线性激活函数?

大多数函数和分类任务可能最好由非线性函数来描述。如果我们决定使用线性激活函数,我们将对复杂函数进行更粗糙的逼近。

通用逼近器

你有时会在论文中读到神经网络是通用逼近器。这意味着一个“完美”的网络可以适应你抛给它的任何模型/函数,尽管配置完美网络(节点数和层数等)是一项非平凡的任务。

这个维基百科页面上阅读更多关于其含义的信息。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注