[PYTHON] La valeur de pyTorch torch.var () n'est pas distribuée

Publié le 13 avril 2020

0. Qui est la cible de cet article

1.Tout d'abord

De nos jours, la recherche sur l'apprentissage automatique se fait principalement en langage python. Parce qu'il existe de nombreuses bibliothèques (appelées modules) en python pour l'analyse et le calcul de données à grande vitesse. Parmi eux, cette fois, nous utiliserons un module appelé ** pyTorch ** et parlerons de ** torch.var () ** dedans. En conclusion, le calcul par ** torch.var () ** n'est pas une variance mais une ** variance sans biais (variance de l'échantillon) **. En fait, dans de nombreuses bibliothèques statistiques, ** variation ** semble se référer à ** variance non biaisée ** (je ne savais pas, mais les statisticiens le tiennent pour acquis). Je vais en fait présenter cette histoire à travers le programme.

Cependant, cet article est comme votre propre mémo, et je souhaite que vous l'utilisiez comme référence uniquement, et il se peut que vous utilisiez des expressions ou des phrases incorrectes par souci de concision, mais comprenez cela. Je veux que tu le fasses.

2. Connaissances préalables

Je voudrais que vous puissiez utiliser numpy et pyTorch de python dans une certaine mesure comme connaissance préalable. Dans cet article, nous allons procéder avec un corps qui peut être utilisé naturellement. Pour référence, reportez-vous à l'article sur le type Tensor de pyTorch dans le lien suivant.

Qu'est-ce que le type de pyTorch Tensor

3. Essayez d'utiliser torch.var ()

Tout d'abord, avant d'écrire le programme, je vais montrer les formules pour la moyenne $ \ mu $, la variance $ \ sigma ^ 2 $ et la variance non biaisée $ s ^ 2 $.

\mu = \frac{1}{n}\sum_i^n x_i\\
\sigma^2 = \frac{1}{n}\sum_i^n (x_i-\mu)^2\\
s^2 = \frac{1}{n-1}\sum_i^n (x_i-\mu)^2

Où $ x $ est l'échantillon d'entrée et $ n $ est le nombre d'échantillons.

Les exemples de données sont définis comme suit.

filename.rb


a = torch.tensor([1.,2.,3.,4.,5.])
print(a)

------'''Résultat de sortie ci-dessous'''--------
tensor([1., 2., 3., 4., 5.])

Eh bien, tout d'abord, si vous essayez de trouver la dispersion normalement

filename.rb


mu = torch.mean(a)
var = torch.mean((a - mu)**2)
print(var)

------'''Résultat de sortie ci-dessous'''--------
tensor(2.)

Ici, ** torch.mean () ** calcule la moyenne de tous les éléments d'entrée. Ainsi, la variance s'est avérée être de 2,0.

Maintenant, utilisons ** torch.var () ** de pytorch.

filename.rb


var = torch.var(a)
print(var)

------'''Résultat de sortie ci-dessous'''--------
tensor(2.5000)

Et la valeur a changé. Cette réponse est la raison pour laquelle ** torch.var () ** ne demande pas de distribution. En fait, ** torch.var () ** trouve la ** variance sans biais (variance de l'échantillon) ** de tous les éléments d'entrée.

4. Précautions lors de l'utilisation de torch.var ()

Il est important de noter lorsque vous utilisez réellement ** torch.var () **, mais ce n'est pas toujours le cas que vous devriez éviter de l'utiliser si vous prévoyez une distribution. En effet, comme le montre l'équation, lorsque le nombre d'échantillons est très grand, les valeurs sont presque les mêmes (si n est 1000, la variance divisée par 1000 et la variance non biaisée divisée par 999 sont presque les mêmes). Si vous faites ** avec un petit nombre d'échantillons ** comme mon exemple cette fois, vous devez être prudent.

5. Un mot

Cette fois, j'ai résumé les choses sur torch.var (). C'est peut-être une évidence, mais j'ai été surpris alors je l'ai écrit sous forme d'article. De plus, comme j'ai peu de connaissances sur la signification solide de la dispersion et de la dispersion non biaisée, je voudrais que vous signaliez chaleureusement toute erreur d'expression. Je pense qu'il y avait de nombreux points difficiles à lire, mais merci d'avoir lu.

Recommended Posts

La valeur de pyTorch torch.var () n'est pas distribuée
Autour de l'endroit où la valeur d'Errbot est stockée
La probabilité de précipitation est-elle correcte?
À propos de la valeur de retour de pthread_mutex_init ()
À propos de la valeur de retour de l'histogramme.
Science "Saito est-il le représentant de Saito?"
Lors de l'incrémentation de la valeur d'une clé qui n'existe pas
Si la précision du test PCR est mauvaise, pourquoi ne pas répéter le test?
Quelle est la cause de l'erreur suivante?
Celui qui n'est pas sur DVD
[python] [meta] Le type de python est-il un type?
Obtenez la valeur de la couche intermédiaire de NN
Je pense que la limite du sac à dos n'est pas le poids mais le volume w_11 / 22update
La barre oblique arrière du clavier japonais est "ro"
Rendre la valeur par défaut de l'argument immuable
Il semble que la version de pyflakes ne soit pas la dernière lorsque flake8 est installé
Pipfile n'est pas créé dans le répertoire courant
La réponse de "1/2" est différente entre python2 et 3
L'origine de Manjaro Linux est "Mount Kirimandjaro"
Attention à la valeur de retour de __len__
FAQ: Pourquoi la comparaison des nombres est-elle incohérente?
Essayez de décomposer la matrice daimyo par valeur singulière
Découvrez la fraction de la valeur saisie en python
Ceci est le seul examen de base de Python ~ 1 ~
Ceci est le seul examen de base de Python ~ 2 ~
Rechercher par la valeur de l'instance dans la liste
Ceci est le seul examen de base de Python ~ 3 ~
[Python Data Frame] Lorsque la valeur est vide, remplissez-la avec la valeur d'une autre colonne.
Valeur de retour de quit () -Y a-t-il quelque chose retourné par la "fonction qui termine tout"?
Que faire si la barre de progression n'est pas affichée dans tqdm de python
Le moment auquel la valeur de l'argument par défaut est évaluée diffère entre Ruby et Python.
Lorsque l'objet sélectionné dans bpy.context.selected_objects n'est pas renvoyé
[Python] Calculez la valeur moyenne de la valeur de pixel RVB de l'objet
[Langage C] [Linux] Récupère la valeur de la variable d'environnement
Prenez la valeur du thermo-hygromètre SwitchBot avec Raspberry Pi
Rendre la valeur par défaut de l'argument immuable (explication de l'article)
Changer les valeurs du thermo-hygromètre Bot avec Raspberry Pi
[Golang] Spécifiez un tableau pour la valeur de la carte
Ne pas être conscient du contenu des données en python
Préparation de l'environnement d'exécution de PyTorch avec Docker Novembre 2019
L'histoire selon laquelle la valeur de retour de tape.gradient () était None
La dernière version de Pillow 7.0.0 tuera la transformation de pytorch.
Le problème Zip 4 Gbyte est une histoire du passé
[Django 2.2] Trier et obtenir la valeur de la destination de la relation
Qu'est-ce qu'un moteur de recommandation? Résumé des types
Quand vous pensez que la mise à jour de ManjaroLinux est étrange
Pourquoi le premier argument de la classe [Python] est-il self?
La méthode de copie de pandas.DataFrame est une copie profonde par défaut
[Dance Dance Revolution] Est-il possible de prédire le niveau de difficulté (pied) à partir de la valeur du radar groove?
L'image est affichée dans l'environnement de développement local, mais l'image n'est pas affichée sur le serveur distant de VPS.
Lorsqu'une chaîne de caractères d'une certaine série se trouve dans la clé du dictionnaire, la chaîne de caractères est convertie en valeur du dictionnaire.
Je souhaite générer une sortie lors de la conversion de la valeur du type (par exemple, datetime) qui n'est pas pris en charge lors de la sortie de json avec python