我在做一个图片搜索引擎。我使用一种算法从图像中提取特征,并得到一个560维的浮点向量。这个维度对于elasticsearch索引来说太高了,es会非常慢。所以我想降低特征向量的维数。我考虑的一种方法是对一系列数字进行散列编码,例如,将一行中的20个数字散列为一个散列值,因此维数为28,这对ES来说是合理的。问题是我找不到任何理论来支持我的解决方案。有没有什么经过验证的解决办法来解决这个问题?先谢谢你了。
我在做一个图片搜索引擎。我使用一种算法从图像中提取特征,并得到一个560维的浮点向量。这个维度对于elasticsearch索引来说太高了,es会非常慢。所以我想降低特征向量的维数。我考虑的一种方法是对一系列数字进行散列编码,例如,将一行中的20个数字散列为一个散列值,因此维数为28,这对ES来说是合理的。问题是我找不到任何理论来支持我的解决方案。有没有什么经过验证的解决办法来解决这个问题?先谢谢你了。
1条答案
按热度按时间r1zk6ea11#
560维是非常高的。标准是128,并且很可能可以使用PCA进一步降低。
使用PCA(主成分分析)来降低维度。基本上,它类似于压缩。当然,你会失去一些准确性。
参见https://en.wikipedia.org/wiki/Principal_component_analysis