【问题标题】:Parameters in a Neural Network Model神经网络模型中的参数
【发布时间】:2019-10-18 14:01:45
【问题描述】:

是否可以使用神经网络建立由参数解释的分类模型,如在 logit 或线性概率模型中?

【问题讨论】:

  • A (softmax-ended) NN 定义 P(y|x)。哪方面不够?
  • 在 logit 模型中,我们看到 logit(y)=bo+b1x1+....+error 项,是否可以使用 NN 为 p(y given x) 建立这些参数?
  • 看看我的回答怎么不可能,如果不清楚,让我们继续。

标签: machine-learning neural-network deep-learning logistic-regression


【解决方案1】:

神经网络是一个由其参数解释的分类模型。

让我们回到基础。考虑具有 N 个输入和一个输出的单个神经元。它应用以下形式的功能:

x = g(所有输入的加权和)

,其中 g 是一些非线性函数,例如 sigmoid 或 tanh 或 ReLU - 确切的函数确实会影响性能,但与我们的讨论无关。

问题在于类之间的分离面是线性的(假设分类基于 x>0.5 之类的东西)。

问题在于,许多现实世界的问题都不是线性的。它们实际上是极其复杂的问题,因此我们需要一个能够估计这种高度非线性函数的模型。

现在,让我们想象一个小型神经网络,第一层有 2 个神经元,输出层有 1 个神经元。

输入层的 2 个神经元将有它们的输出:

x_1 = g(所有输入的加权和) x_2 = g(所有输入的加权和)

(g 通常对于一层上的所有神经元都是相同的。它没有必须,但它没有多大意义。对于剩下的讨论,让我们假设g 到处都是一样的)。

现在,x_1 和 x_2 是另一层神经元的输入,因此它的输出(以及整个网络的输出)为:

X = w_1*x_1 + w_2*x_2 = w_1*g(所有输入的加权总和)+ w_2*g(所有输入的加权总和)

这是由具有 N 个输入的神经网络估计的函数,输入层上有 2 个神经元,输出层有一个神经元。当然,它由 2n+2 个权重参数化:每个输入神经元有 n 个权重,输出神经元有 2 个权重。

如您所见,这个表达式很难写在纸上(在 StackOverflow 上更难写),而且对于深度神经网络来说,它会变得极度复杂。然而,从本质上讲,所有的神经网络都是这种长但相对简单的表达式的简单图形模型,其中我们对每个节点的输入进行加权求和并应用非线性函数。

由于这种模型能够估计高度非线性函数,因此深度神经网络的趋势正在上升。从技术上讲,通过universal approximation theorem,我们只需要一个隐藏层(想想之前的网络,在输入层上有 2 个神经元,而在该层上有超过 2 个神经元)。但事实证明,设计火车是非常不切实际的(部分原因是该层需要大量的神经元)。于是人们开始在另一个之上堆叠越来越多的层,我们得到了我们现在拥有的复杂架构:加法、乘法和 g 的大型链。

【讨论】:

    【解决方案2】:

    根据您的评论,在 logit 模型中,您有 logit = b_0 + b_1*x_1 + ... b_k*x_k + e = b_0 + w^T.x + e,然后是 P(y=1|x) = \sigma(logit)

    分类神经网络的作用是将线性(仿射)b_0 + w^T.x 替换为复杂的非线性函数NN(x)。因此,虽然您可以轻松检索其参数 w,但实际的 logit = f_w(x) 将与您的 152 层深度 ResNet 指示的一样丑陋。

    另一种解释是,NN 的所有层都只是从数据中提取一些更好的特征,最后一层是您的普通 logit 模型(或多类逻辑回归或其他)。不幸的是,虽然您现在对分类器很熟悉,但它在一些奇怪的功能上运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-28
      • 1970-01-01
      • 2017-05-16
      • 2020-02-21
      • 1970-01-01
      相关资源
      最近更新 更多