深度神经网络的编码不变性

时间:2016-04-28 10:26:46

标签: tensorflow deep-learning conv-neural-network keras

我有一组数据,2D矩阵(如灰色图片)。 并使用CNN作为分类器。 想知道是否有关于准确性影响的研究/经验 如果我们改变传统编码的编码。

我想是的,问题是编码的哪种转换会使精度不变,哪一种会恶化....

为了澄清,这主要涉及原始数据到输入数据的量化过程。

编辑:

将原始数据量化为输入数据已经是数据的预处理,添加或删除一些功能(甚至是次要的)。在实际dnn计算中,对于该量化过程的精确度的影响似乎不是很清楚。 也许,有一些研究可用。

2 个答案:

答案 0 :(得分:1)

在通常的实践中 - 经典实现中的离散分类任务 - 它将没有任何效果。然而,关键点在于反向传播的初始计算。经典定义仅取决于预测和基本事实的严格平等。课程:简单的正确/错误评估。更改类编码对预测是否等于训练类没有影响。

但是,此功能可以更改。如果您将代码更改为除了正确/错误评分之外的其他内容,这取决于编码选择,那么编码更改肯定会产生影响。例如,如果您以1-5的等级评分电影,您可能希望1对5的贡献比4对5的损失更高。

这合理地解决了您的问题吗?

我现在看到了。我上面的答案很有用......但不是你要问的。我关注分类编码;你对这个输入感到疑惑。

请注意,要求异地资源是一个典型的非主题问题类别。我不知道任何这样的研究 - 对于什么是不值得的。

显然,当你改变输入数据时,应该有一些效果。效果取决于特定的量化变换,以及单独的应用。

我确实从一般的大数据分析中得到了一些有限的观察结果。

在我们的典型环境中,数据在其自然空间内分散有一些固有的组织(F维度,其中F是要素的数量),我们经常使用两个简单的量化步骤:(1)将所有要素值缩放到一个方便的整数范围,如0-100; (2)识别自然微聚类,并通过聚类的质心表示所有聚类值(通常不超过输入的1%)。

这有点加速了分析处理。鉴于细粒度聚类,它对分类输出几乎没有影响。事实上,它有时会提高准确度,因为聚类在数据点之间提供了更大的差距。

带上一粒盐,因为这不是我们努力的主旨。

答案 1 :(得分:1)

我不知道有任何专门处理输入数据量化的研究,但您可能想查看有关CNN参数量化的一些相关工作:http://arxiv.org/pdf/1512.06473v2.pdf。根据您的最终目标," Q-CNN"方法可能对你有用。

我自己使用CNN的输入数据的各种量化的经验是,量化程度和模型本身之间存在很大的依赖关系。例如,我使用各种插值方法来减少图像大小和减少调色板大小,最后,我发现每个变体都需要对超参数进行不同的调整才能获得最佳结果。一般来说,我发现数据的轻微量化影响可以忽略不计,但曲线中有一个拐点,丢掉额外的信息会严重影响可实现的准确性。遗憾的是,我没有意识到有任何方法可以确定在没有实验的情况下量化的最佳程度,甚至决定什么是最优的还需要在效率和准确度之间进行权衡,这并不是必然的。一个通用的答案。

从理论上讲,请记住,CNN需要能够找到有用的空间局部特征,因此可以合理地假设任何编码都会扰乱基本的#34;结构" ;输入会对可实现的准确性产生显着的不利影响。