神经网络如何处理相关图像数据

How does a neural network work with correlated image data

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

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

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

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

底线:你的神经网络没有找到相关性:拓扑错误,无法完成你想要的工作。


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

深度学习需要一些其他的判别,例如卷积、池化、整流或其他非线性组合。

让我们冷静下来了解 NN 学习预测背后的直觉。

要预测给定图像的 class,我们必须找到它的一次输入值与 class 之间的相关性或直接 link。我们可以考虑找到一个像素可以告诉我们这张图片属于这张class。这是不可能的,所以我们要做的是构建更复杂的功能,或者我们称之为复杂功能。这将帮助我们找到生成与想要的 class 相关的数据。

为了更简单,假设您想在这两种情况下构建 AND 函数(p 和 q),OR 函数(p 或 q),在输入和输出之间有一个直接的 link。 in 和函数,如果输入中有 0,则输出始终为零。那么如果我们想要 xor 函数 (p xor q) 在输入和输出之间没有直接的 link 怎么办。答案是构建第一层 class 化 AND 和 OR 然后通过第二层获取第一层的结果我们可以构建函数并 class 化 XOR 函数 (p xor q) = (p or q) 而不是 (p and q)

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

这是一个关于如何查看图像及其 class 之间的 link 以及神经网络如何 class 化它们的小解释。您需要了解 NN 概念,然后才能阅读有关深度学习的内容。