Question

regardez d'abord cet exemple

>>> x = t.randn(512)
>>> w = t.randn(512, 500000)
>>> (x @ w).var()
tensor(513.9548)

Il est logique que la variance soit proche de 512 car chacune des 500000, est un produit DOT d'un vecteur 512 et d'un vecteur 512, qui est échantillonné à partir d'une distribution avec un écart-type de 1 et une moyenne de 0

Cependant, je voulais que la variance descend à 1, et par conséquent la MST soit 1 car l'écart type est la racine carrée de la variance, où 1 est la variance.

Pour ce faire, j'ai essayé ce qui est ci-dessous

>>> x = t.randn(512)
>>> w = t.randn(512, 500000) * (1/512)
>>> (x @ w).var()
tensor(0.0021)

Cependant, la variance est en fait maintenant 512/512/512 au lieu de 512/512

Pour ce faire correctement, j'avais besoin d'essayer

>>> x = t.randn(512)
>>> w = t.randn(512, 500000) * (1 / (512 ** .5))
>>> (x @ w).var()
tensor(1.0216)

Pourquoi est-ce le cas?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
scroll top