1

我正在阅读有关神经网络的内容,但无法理解这一点-如果仅更新权重以适应特定的输入-输出对,它如何工作?我的意思是,另一组的权重可能完全不同。它将针对特定情况进行调整,但需要根据另一种情况的输出比较进行重新调整。我只是看不到“魔术”......一个简单的输入示例将不胜感激。

4

1 回答 1

0

一个容易理解的例子是简单的曲线拟合(看看这个维基百科页面上的动画)。这是一项也可以通过神经网络完成的任务。“魔力”在于,您的网络模拟了一个关于您的训练数据(输入-输出对)的近似函数。训练期间未出现的新案例可以可视化为训练数据点之间的点。

现在尝试想象更一般的情况,您不仅有 1 个输入值和 1 个输出值,而且都是多变量的。例如,使用具有 10 个输出神经元的MNIST 手写数字数据集的 28x28 = 784 像素。每个输出神经元模拟给定示例属于每个数字 0..9 的概率。在训练期间,您的网络将学习特征. 这意味着它可以检测输入数据中的相关性,从而可以进行抽象(有时您也可以将其想象为一种“压缩”)。因此,第一个隐藏层中的每个神经元都模拟了一个特定的特征。您可以通过将第一个隐藏神经元的权重视为灰度图像来可视化这些特征,并使用任意图像库(如 python 的 matplotlib)对其进行绘制。尝试在上面链接的 mnist 数据库上训练神经网络并查看这些功能,这应该可以阐明其工作原理。

你的神经网络更深的隐藏层现在接受前一层的激活并学习更高层次的特征。这意味着他们正在结合前一层的特征来获得更抽象的输入表示。这对随后的每一层都进行,直到你最终得到 10 个输出神经元,对抽象信息“在给定的输入图像上可见零”进行建模。

显然,如果你有足够多的训练数据覆盖很多情况,你最终会得到很多特征。即使给定的输入与您在训练期间使用的情况不同(例如,稍微失真的新零),这些功能也将起作用。

自然,网络的泛化性能取决于您的训练数据涵盖了多少不同的一般情况。但是还有其他关于你的神经网络架构的因素会影响泛化性能。提到一些关键字,你应该看看 L1 和 L2 正则化、权重衰减、卷积神经网络、dropout 等——它们都是进一步提高泛化性能的技术。

于 2013-03-26T14:24:16.510 回答