为什么神经网络如此有效?

Why do neural networks work so well?

我了解使用正向传播和反向传播训练具有梯度下降的神经网络的所有计算步骤,但我正在努力思考为什么它们比逻辑回归效果更好。

目前我能想到的是:

A) 神经网络可以学习它自己的参数

B) 权重比简单逻辑回归多得多,因此允许更复杂的假设

有人可以解释为什么神经网络总体上运行良好吗?我是一个相对初学者。

'Work so well'视具体场景而定。他们两者本质上做的是同一件事:预测。

这里的主要区别是神经网络可以有概念的隐藏节点,如果设置得当(不容易),使用这些输入做出最终决定。

而线性回归基于更明显的事实,而不是副作用。神经网络应该能够比线性回归做出更准确的预测。

神经网络可以有大量的自由参数(互连单元之间的权重和偏差),这使它们能够灵活地适应其他模型太简单而无法适应的高度复杂的数据(如果训练正确)。这种模型的复杂性带来了训练如此复杂的网络并确保生成的模型泛化到它所训练的示例的问题(通常神经网络需要大量训练数据,而其他模型则不需要)。

经典逻辑回归仅限于使用线性 classifier 的二元 class 化(尽管使用一个 class class 化可以很容易地实现多vs-all,一对一方法等,还有逻辑回归的核化变体,允许非线性 classification 任务)。因此,一般来说,逻辑回归通常应用于更简单、线性可分的 class化任务,其中有少量训练数据可用。

逻辑回归和线性回归等模型可以被认为是简单的多层感知器(查看 this site 了解如何解释)。

总而言之,正是模型的复杂性让神经网络能够解决更复杂的 class化任务,并具有更广泛的应用(特别是当应用于图像像素强度等原始数据时),但它们的复杂性意味着需要大量的训练数据,训练它们可能是一项艰巨的任务。

正如您所指出的,神经网络允许训练它们的人通过算法发现特征。然而,它们也允许非常普遍的非线性。如果愿意,您可以在逻辑回归中使用多项式项来实现某种程度的非线性,但是,您必须决定使用哪些项。那就是你必须先验地决定哪个模型会起作用。神经网络可以发现所需的非线性模型。

最近,Naftali Tishby 博士关于解释深度神经网络有效性的信息瓶颈思想在学术界广为流传。 他解释这个想法的视频(下面的 link)可能相当密集,所以我将尝试给出核心想法的 distilled/general 形式以帮助建立直觉

https://www.youtube.com/watch?v=XL07WEc2TRI

为了奠定您的思维基础,将对图像中的数字进行分类的 MNIST 任务可视化。为此,我只谈论简单的全连接神经网络(不是通常用于 MNIST 的卷积神经网络)

NN 的输入包含有关隐藏在其中的输出的信息。需要一些函数将输入转换为输出形式。很明显。 建立更好的直觉所需的思维的主要区别在于将输入视为其中包含 "information" 的信号(我不会在这里讨论信息论)。其中一些信息与手头的任务相关(预测输出)。将输出也视为具有一定数量 "information" 的信号。神经网络尝试 "successively refine" 并压缩输入信号的信息以匹配所需的输出信号。将每一层都视为切掉输入信息中不需要的部分,并且 通过网络保持 and/or 转换输出信息。 全连接神经网络将输入信息在最后的隐藏层中转化为一种形式,使其与输出层线性可分。

这是对神经网络的一个非常高层次和基础的解释,我希望它能帮助你看得更清楚。如果您希望我澄清某些部分,请告诉我。

Dr.Tishby 的工作中还有其他重要部分,例如小批量噪声如何帮助训练,以及神经网络层的权重如何被视为在问题。 这些部分更详细一些,我建议首先玩弄神经网络并学习信息论课程以帮助您加深理解。

神经网络 excel 执行各种任务,但要了解确切原因,执行特定任务(如 class化)并深入研究可能更容易。

简单来说,机器学习技术根据过去的示例学习一个函数来预测 class 特定输入属于哪个。神经网络的不同之处在于它们构建这些函数的能力,这些函数甚至可以解释数据中的复杂模式。神经网络的核心是像 Relu 这样的激活函数,它允许它绘制一些基本的 classification 边界,例如: Example classification boundaries of Relus

通过将数百个这样的 Relus 组合在一起,神经网络可以创建任意复杂的 class化边界,例如: Composing classification boundaries

以下文章试图解释神经网络工作原理背后的直觉:https://medium.com/machine-intelligence-report/how-do-neural-networks-work-57d1ab5337ce

考虑到您有一个大型数据集,并且您想要为此构建一个二元分类模型,现在您有两个您已经指出的选项

  • 逻辑回归

  • 神经网络(暂时考虑 FFN)

神经网络中的每个节点都将与一个激活函数相关联,例如让我们选择 Sigmoid,因为 Logistic 回归也在内部使用 Sigmoid 来做出决策。

让我们看看逻辑回归的决策在应用于数据时的样子

看到红色边界中的一些绿点了吗?

现在让我们看看神经网络的决策边界(请原谅我用了不同的颜色)

为什么会这样?为什么神经网络的决策边界如此灵活,结果比逻辑回归更准确?

或者你问的问题是"Why neural networks works so well ?"是因为它的隐藏单元或隐藏层及其表示能力。

让我这样说吧。 你有一个逻辑回归模型和一个神经网络,每个神经网络有 100 个 Sigmoid 激活神经元。现在每个神经元将相当于一个逻辑回归。

现在假设一百个逻辑单元一起训练来解决一个问题而不是一个逻辑回归模型。由于这些隐藏层,决策边界扩大并产生更好的结果。

在进行实验时,您可以添加更多神经元并查看决策边界如何变化。逻辑回归与具有单个神经元的神经网络相同。

以上给出的只是一个例子。可以训练神经网络以获得非常复杂的决策边界

在你进入神经网络之前,看看你是否已经评估了正态回归的所有方面。

以此为指导

甚至在放弃正态回归之前——对于弯曲类型的依赖——你应该强烈考虑使用 SVM 的内核

神经网络定义为 objectiveloss 函数。神经网络中发生的唯一过程是通过减少损失函数或误差来优化 objective 函数。反向传播有助于找到优化的 objective 函数并在输出条件下达到我们的输出。