如何提取网络架构的先验知识?为它画幅素描吧!( 三 )

总体上来说,一个「速写」算法接收输入一个向量 x,输出一个与 x 表现相似但是存储开销的小得多的「速写」向量。事实上这种小得多的存储开销让我们能够简洁地存储有关网络的信息,这在高效地回答基于记忆的问题时是至关重要的。在最简单的情况下,一个线性的「速写 向量」x 由矩阵和向量的乘积 *Ax *得到。其中 A 是一个「宽」矩阵,它的列数是 x 的原始维数,行数是新的降维后的向量维数。这种方法在大数据集的一些基本任务上衍生出了许多高效的算法(http://db.cs.berkeley.edu/cs286/papers/synopses-fntdb2012.pdf),比如估计基本统计量(例如,直方图、分位数、四分位数等),寻找高频项(frequenct elements),估计不同的元素的数量(support size),以及一些和范数、熵估计相关的任务。

如何提取网络架构的先验知识?为它画幅素描吧!

将向量 x 乘上一个宽矩阵 A,得到一个低维向量 y,这是得到「速写」的一个简单的方法。这个基本的方法在一些像线性回归之类相对简单的情况中效果很好,在这种情况下,它仅仅通过权重的大小就可以识别重要的数据维度(在方差一致性的常见假设下)。然而,很多现代机器学习模型是基于高维嵌入(如 Word2Vec、Image Embeddings、Glove、DeepWalk、BERT 等)的深度神经网络,这使得概括模型对于输入的操作变得异常困难。但另一方面,这些复杂网络的很多部分都是模块化的,即使它们非常复杂,我们也可以对于它们的行为生成准确的「速写」。

推荐阅读