【问题标题】:Can gradient descent itself solve non-linear problem in ANN?梯度下降本身可以解决 ANN 中的非线性问题吗?
【发布时间】:2020-03-07 07:30:51
【问题描述】:

我最近正在研究关于神经网络的理论。我对梯度下降和激活函数在 ANN 中的作用有点困惑。

据我了解,激活函数用于将模型转换为非线性模型。这样就可以解决线性不可分的问题。而梯度下降是帮助模型学习的工具。

所以我的问题是:

  1. 如果我对模型使用 sigmoid 之类的激活函数,而不是使用梯度下降来改进模型,我使用经典的感知器学习规则:Wj = Wj + a*(yh(x)),其中 h(x) 是具有净输入的 sigmoid 函数。模型可以学习非线性可分问题吗?

  2. 如果我不在模型中包含非线性激活函数。只是简单的净输入:h(x) = w0 + w1*x1 + ... + wj*xj。并使用梯度体面来改进模型。模型可以学习非线性可分问题吗?

我真的很困惑这个问题,哪个是模型可以学习非线性可分问题的主要原因。

【问题讨论】:

  • 回答第 2 点:如果你的模型是输入 x 的线性函数,那么它永远无法学习非线性函数。

标签: machine-learning neural-network artificial-intelligence gradient-descent activation-function


【解决方案1】:

监督学习 101

这是一个非常深奥的问题,所以我将首先回顾一下基础知识,以确保我们相互理解。在其最简单的形式中,监督学习,尤其是分类,尝试从一组观察结果{(x_i,y_i)} 中学习一个函数f 使得y=f(x)。实践中会出现以下问题:

  • 你对f一无所知。它可能是多项式、指数或某些在数学中甚至没有专有名称的高度非线性事物。
  • 您用于学习的数据集只是您尝试学习的真实数据分布的一个有限且可能存在噪声的子集。

因此,您找到的任何解决方案都必须是近似的。您将使用的架构类型将确定一个函数系列h_w(x)w 的每个值将代表该系列中的一个函数。请注意,由于w 的可能数量通常是无限的,所以h_w(x) 的函数族通常是无限大的。

然后,学习的目标是确定哪个w 最合适。这就是梯度下降介入的地方:它只是一个优化工具,可以帮助你选择相当好的w,从而选择一个特定的模型h(x)

问题是,您尝试近似的实际f 函数可能不是您决定选择的h_w 家族的一部分,因此您是。

回答实际问题

现在已经涵盖了基础知识,让我们回答您的问题:

  1. 在单层模型 ANN 的输出端放置像 sigmoid 这样的非线性激活函数将无助于它学习非线性函数。事实上,单层 ANN 相当于线性回归,加上 sigmoid 将其转换为 Logistic Regression。为什么它不起作用?让我尝试一个直观的解释:单层输出的 sigmoid 将其压缩为[0,1],因此可以将其解释为类成员概率。简而言之,sigmoid 是硬阶跃函数的可微近似。我们的学习过程依赖于这种平滑度(行为良好的梯度随处可见),并且使用阶跃函数会破坏例如。梯度下降。这并没有改变 模型的决策边界是线性的这一事实,因为最终的类决策取自 sum(w_i*x_i) 的值。这可能不太令人信服,所以让我们用Tensorflow Playground 来说明。请注意,学习规则在这里无关紧要,因为您要优化的函数族仅包含其输入上的线性函数,因此您永远不会学习非线性函数!

  2. 如果您放弃 sigmoid 激活,您将得到一个简单的线性回归。您甚至不会将结果投影回[0,1],因此输出不会简单地解释为类概率,但最终结果将是相同的。请参阅Playground for a visual proof

那么需要什么?

要学习非线性可分问题,您有几种解决方案:

  • 将输入 x 预处理为 x',以便将 x' 作为输入使问题线性可分。这只有在您知道决策边界应采取的形状时才有可能,因此通常仅适用于非常简单的问题。在操场问题中,由于我们使用的是圆形,我们可以将x1x2 的正方形添加到输入中。尽管我们的模型在其输入中是线性的,但我们已经仔细选择了适当的输入非线性变换 so we get an excellent fit

  • 我们可以尝试通过添加一个或多个隐藏层来自动学习数据的正确表示,这将有助于提取良好的非线性变换。可以证明,只要隐藏神经元的数量足够多,使用单个隐藏层就足以逼近任何东西。对于我们的示例,we get a good fit using only a few hidden neurons with ReLU activations。直观地说,你添加的神经元越多,决策边界就越“灵活”。深度学习中的人们一直在增加深度而不是宽度,因为可以证明,使网络更深会使其总体上需要更少的神经元,尽管它会使训练更加复杂。

【讨论】:

    【解决方案2】:

    是的,梯度下降非常有能力解决非线性问题。只要各种变换在调整的“增量”内大致呈线性,该方法就可以工作。这就是我们调整学习率的原因:保持在线性假设相对准确的范围内。

    非线性变换为我们提供了更好的分离来实现“这很无聊”和“这正是我正在寻找的东西!”的想法。如果这些函数是平滑的,或者跳跃的数量很少,我们可以应用我们习惯的近似和迭代来求解整个系统。

    无论如何,确定有用的操作范围都不是封闭式计算;与许多人工智能研究一样,它需要实验和改进。您的问题的直接答案是您询问了错误的实体 - 尝试您列出的选项,看看哪个最适合您的应用程序。

    【讨论】:

      猜你喜欢
      • 2017-04-30
      • 2020-10-05
      • 2013-08-14
      • 1970-01-01
      • 2021-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-29
      相关资源
      最近更新 更多