Pourquoi la variance baisse-t-elle tant dans ce problème d'initialisation de poids (en utilisant Pytorch)?
-
02-11-2019 - |
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
Non affilié à datascience.stackexchange