NISHIO Hirokazu[日本語][English]

高次元においてコサイン類似度0.2は激レア

400次元程度の高次元においてコサイン類似度0.2は1万回に1回の激レア

  • 本当は768次元で試したかったんだけど100万回試しても0だった :
    dim over 0.20 over 0.22 over 0.24
    2 4297 4245 4177
    10 2760 2554 2379
    100 228 140 76
    200 25 9 1
    300 5 4 1
    400 1 0 0

py

import numpy as np
for dim in [2, 10, 100, 200, 300, 400]:
    over020 = 0
    over022 = 0
    over024 = 0
    for i in range(10000):
        x = np.random.randn(dim)
        x = x / np.linalg.norm(x)
        if x[0] > 0.2:
            over020 += 1
        if x[0] > 0.22:
            over022 += 1
        if x[0] > 0.24:
            over024 += 1

    print(dim, over020, over022, over024)

高次元空間


(C)NISHIO Hirokazu / Converted from Markdown (ja)
Source: [GitHub] / [Scrapbox]