Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results. See also: Stack Overflow question checklist
Closed 11 years ago.
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
@用户562688:
压缩真正的随机数是不可能的。证明的想法是,如果您尝试将 100 位压缩到 90 位,那么您需要将所有 2^100 个字符串放入大小为 2^90 的空间中,该空间太小了。因此,会出现很多冲突(平均至少2^10次),这意味着你无法将其解码回原始字符串。
但要回答你原来的问题,尽管 Johnson-Lindenstrauss 算法 不是作为一种压缩算法本身,它与图像压缩中的算法具有一些相似的属性。
Johnson-Lindentrauss 算法的目标是在 R^n 中获取大量向量(例如 n 个向量),并找到到更小的空间 R^log(n) 的映射,使得所有向量之间的距离变化不大。
@user562688:
Compressing a truly random number can't be done. The proof idea is that if you're trying to compress 100 bits to 90 bits, then you need all of the 2^100 strings to fit inside a space of size 2^90, which is too small. Therefore, there will be many collisions (at least 2^10 on average), which means that you cannot decode it back to the original string.
But to answer your original question, although the Johnson-Lindenstrauss algorithm isn't a compressing algorithm per-se it has some similar properties to what's done in image compression.
The goal of the Johnson-Lindentrauss algorithm is to take lots of vectors (say n vectors) in R^n, and to find a mapping to a much smaller space, R^log(n), such that the distances between all the vectors do not change by much.