【问题标题】:How does a neural network work with correlated image data神经网络如何处理相关图像数据
【发布时间】:2016-05-31 13:00:07
【问题描述】:

我是 TensorFlow 和深度学习的新手。我正在尝试为图像处理创建一个完全连接的神经网络。我有点困惑。

我们有一张图片,比如 28x28 像素。这将有 784 个输入到 NN。对于不相关的输入,这很好,但图像像素通常是相关的。例如,考虑一张牛眼的图片。当我们将所有像素排列成一个阵列以形成一个全连接网络时,神经网络如何理解这一点。它如何确定相关性?

【问题讨论】:

  • 网络本质上并不“假设”只有在输入向量上彼此“相邻”的数字才应该被认为是相关的。完全连接意味着输入出现的“顺序”并不重要,只要它是一致的。 (tldr - 即使像素排列整齐,网络也能找到连接)
  • 卷积神经网络正是这样做的,一个完全连接的网络本身无法找到这种相关性。
  • 任何足够大的神经网络(假设有足够的非线性)基本上都可以学习相关性,尽管它实际上只是在学习一个足够的启发式算法。然而,一个完全连接的神经网络正在丢弃大量资源,过滤掉与图像的远处像素之间的随机关系相关的噪声。这正是 CNN(卷积神经网络)要解决的问题。因此,一旦您充分掌握了更通用的机器学习基础知识,我建议您研究 CNN。

标签: neural-network tensorflow deep-learning


【解决方案1】:

请研究一些关于CNN(卷积神经网络)的教程; here 是您的起点。 NN 的全连接层放弃了它可能与输入相关的所有信息。在结构上,它实现了输入在统计上独立的原则。

或者,卷积层取决于输入的物理组织(例如像素邻接),使用它来找到从一层到另一层的特征的简单组合(卷积)。

底线:您的 NN 没有找到相关性:拓扑错误,无法完成您想要的工作。


另外,请注意,由具有线性权重组合的全连接神经元组成的分层网络不是 深度学习。深度学习至少有一个隐藏层,这是一种有助于“理解”中间结构的拓扑结构。纯线性、全连接的分层不提供这样的隐藏层。即使您对隐藏层进行编程,输出仍然是输入的简单线性组合。

深度学习需要一些其他的区分,例如卷积、池化、校正或其他非线性组合。

【讨论】:

  • 为什么会有否定回复?我希望我能从答案中得到它
【解决方案2】:

让我们平心静气地了解 NN 学习预测背后的直觉。

要预测给定图像的类别,我们必须找到其中一个输入值之间的相关性或直接联系。我们可以考虑找到一个像素可以告诉我们这张图片属于这个类。这是不可能的,所以我们要做的是建立更复杂的功能,或者我们称之为复杂的特征。这将帮助我们找到生成所需类的相关数据。

为了简单起见,假设您想在这两种情况下构建 AND 函数(p 和 q)、OR 函数(p 或 q),输入和输出之间存在直接联系。如果输入中有 0 则输出始终为零。那么如果我们想对函数(p xor q)进行异或运算,输入和输出之间没有直接联系怎么办。答案是构建第一层分类 AND 和 OR 然后通过第二层获取第一层的结果,我们可以构建函数并对 XOR 函数进行分类 (p xor q) = (p or q) 而不是 (p and q)

通过在多层神经网络上应用此方法,您将获得相同的结果。但是你将不得不处理大量的参数。避免这种情况的一种解决方案是提取图像之间的代表性、方差和不相关的特征,并从图像中与它们的类别相关,并将其提供给网络。您可以在网络上查找图像特征提取。

这是一个关于如何查看图像及其类之间的联系以及 NN 如何对它们进行分类的小说明。您需要了解 NN 概念,然后您可以阅读有关深度学习的内容。

【讨论】:

    猜你喜欢
    • 2016-11-29
    • 1970-01-01
    • 1970-01-01
    • 2017-05-13
    • 2018-10-19
    • 2017-11-22
    • 2020-03-18
    相关资源
    最近更新 更多