将图像转换为单个矢量进行分析时会丢失信息吗?

数据挖掘 图像识别
2021-09-24 18:27:11

在几个关于图像中对象和模式识别的教程(例如典型的mnist 数字识别问题)中,使用 的图像 n×n 每个像素,第一步是建立一个矩阵 ×(n*n),其中每个图像都被转换为一个行向量,其中所有像素一个接一个。然后将不同的技术应用于该矩阵,例如 PCA。

我的问题是:当通过将每个图像行相邻放置将二维图像转换为一维向量时,哪些像素是邻居(在同一列,不同行)的事实似乎丢失了。例如,在图像中:

a b c
d e f
g h i

转换为:

a b c d e f g h i

b和彼此相邻的事实e似乎消失了。

这个结论正确吗?这个事实甚至对分析很重要吗?还有其他方法可以表示保留该信息的图像吗?

如果问题太模糊或太基本,请提前道歉,如果需要,我很乐意重新制定。谢谢你。

1个回答

简短的回答是这取决于两件事:您使用的信息定义以及您是否真的使用该信息。

从信息论的角度来看,如果您的转换是可逆的,那么信息就在那里。发生这种情况是因为您可以应用逆变换来恢复原件。所以什么都没有丢失。这与各种无损压缩算法中发生的情况类似。

所以,信息是存在的,但被编码在另一个地方,特别是在转换函数中。因此,要了解您必须创建那些新功能来表达该信息的位置。并不是说当你有一个经典的学习者时,这个信息不会被学习者理解。以线性模型为例。之间没有区别F1=β0+β1X1+β2X2F2=β2X2+β0+β1X1. 所以用简单的线性模型学习是不可能直接使用这个位置信息的。大多数学习者都会遇到这种情况。因此,即使在原始空间中,位置也是您头脑中的信息,而不是数据中的信息。

另一方面,如果您的神经网络是为图像量身定制的,并且希望接收值顺序比“是”更重要的图像块,那么您的神经网络可能会理解这些关系并使用它们。即便如此,也许该自定义神经网络有一种自定义方式来指定位置信息,因此您需要做的就是以特定于该自定义神经网络的格式对该信息进行编码。

另一方面,如果我们谈论的是标准的反向传播神经网络,则顺序无关紧要。该模型根本无法使用该位置。

作为结论,如果你有一个标准的通用学习算法,你唯一的机会就是在特征中以某种方式编码这个位置信息。例如(这是一个虚构的例子,我什至不知道这是否会说话)可以添加一组新的输入变量,一个用于 4 个相邻像素的每个正方形,并使用像素强度的平均值作为值。您没有足够明确地做到这一点,但是您创建了一组使用位置信息创建的新功能。