因果律代码
目录
简介
大多数现实世界的数据集由数据向量组成,其各个组成部分在统计上并不独立。换句话说,知道一个元素的价值将提供关于数据向量中元素价值的信息。当这种情况发生时,创建一个数据的因子代码可能是可取的,即每个数据向量的新的向量值表示,这样它就会得到唯 一的编码,由产生的代码向量(无损编码),但代码成分在统计上是独立的。
当原始输入数据首先被转化为这样的因子编码时,后期的监督学习通常效果更好。例如,假设最终目标是对具有高度冗余像素的图像进行分类。
一个天真的贝叶斯分类器会认为这些像素是统计上独立的随机变量,因此无法产生好的结果。然而,如果首先以因子方式对数据进行编码,那么天真贝叶斯分类器将达到其最佳性能(比较Schmidhuber等人,1996年)。
发展历史
为了创建因子编码,HoraceBarlow和他的同事们建议将二进制编码的编码成分的位熵之和降到最低(1989)。JürgenSchmidhuber(1992)用预测器和二进制特征检测器重新表述了这个问题,每个检测器都接收原始数据作为输入。每个检测器都有一个预测器,它能看到其他检测器,并学习预测自己的检测器的输出,以应对各种输入向量或图像。
但每个检测器都使用机器学习算法来尽可能地变得不可预测。这个目标函数的全局最优对应于在特征检测器的输出中以分布方式表示的因子代码。
Painsky、Rosset和Feder(2016,2017)在有限字母大小的独立成分分析的背景下进一步研究了这个问题。

通过一系列定理,他们表明因子编码问题可以用分支和边界搜索树算法准确解决,或者用一系列线性问题严格近似解决。此外,他们还介绍了一个简单的转换(即顺序互换),它提供了一个非常有效的最优解的近似。
实际上,他们表明,通过仔细的实施,顺序互换的有利特性可以在渐进的最佳计算复杂性中实现。重要的是,他们提供了理论上的保证,表明虽然不是每个随机向量都能被有效地分解成独立的成分,但随着维度的增加,大多数向量都能很好地分解(也就是说,以小的恒定成本)。此外,他们还证明了在多种设置中使用因子码进行数据压缩(2017)。