[PYTHON] Der Wert von pyTorch torch.var () wird nicht verteilt

Veröffentlicht am 13. April 2020

0. Wer ist das Ziel dieses Artikels?

1. Zuallererst

Heutzutage wird die Forschung zum maschinellen Lernen hauptsächlich in der Python-Sprache durchgeführt. Weil es in Python viele Bibliotheken (sogenannte Module) für die schnelle Datenanalyse und -berechnung gibt. Unter diesen werden wir dieses Mal ein Modul namens ** pyTorch ** verwenden und über ** torch.var () ** darin sprechen. Zusammenfassend ist die Berechnung mit ** torch.var () ** keine Varianz, sondern eine ** unverzerrte Varianz (Stichprobenvarianz) **. Tatsächlich scheint sich in vielen statistischen Bibliotheken ** Variation ** auf ** unvoreingenommene Varianz ** zu beziehen (ich wusste es nicht, aber Statistiker halten es für selbstverständlich). Ich werde diese Geschichte tatsächlich durch das Programm vorstellen.

Dieser Artikel ähnelt jedoch Ihrem eigenen Memo, und ich möchte, dass Sie ihn nur als Referenz verwenden. Es kann Fälle geben, in denen Sie der Kürze halber falsche Ausdrücke oder Ausdrücke verwenden. Bitte haben Sie Verständnis dafür. Ich möchte, dass du es tust.

2. Vorkenntnisse

Ich möchte, dass Sie Pythons Numpy und PyTorch in gewissem Umfang als Vorkenntnisse verwenden können. In diesem Artikel werden wir mit einem Körper fortfahren, der selbstverständlich verwendet werden kann. Weitere Informationen finden Sie im Artikel über den Tensor-Typ von pyTorch im folgenden Link.

Was ist der Tensor-Typ von pyTorch

3. Versuchen Sie es mit torch.var ()

Bevor ich das Programm schreibe, zeige ich zunächst die Formeln für den Durchschnitt $ \ mu $, die Varianz $ \ sigma ^ 2 $ und die unverzerrte Varianz $ 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

Dabei ist $ x $ das Eingabe-Sample und $ n $ die Anzahl der Samples.

Die Beispieldaten sind wie folgt definiert.

filename.rb


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

------'''Ausgabeergebnis unten'''--------
tensor([1., 2., 3., 4., 5.])

Zunächst einmal, wenn Sie versuchen, die Dispersion normal zu finden

filename.rb


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

------'''Ausgabeergebnis unten'''--------
tensor(2.)

Hier berechnet ** torch.mean () ** den Durchschnitt aller Eingabeelemente. Somit wurde eine Varianz von 2,0 gefunden.

Verwenden wir nun pytorchs ** torch.var () **.

filename.rb


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

------'''Ausgabeergebnis unten'''--------
tensor(2.5000)

Und der Wert hat sich geändert. Diese Antwort ist der Grund, warum ** torch.var () ** nicht nach Verteilung fragt. Tatsächlich findet ** torch.var () ** die ** unverzerrte Varianz (Stichprobenvarianz) ** aller Eingabeelemente.

4. Vorsichtsmaßnahmen bei der Verwendung von torch.var ()

Es ist wichtig zu beachten, wenn Sie ** torch.var () ** tatsächlich verwenden, aber es ist nicht immer der Fall, dass Sie es vermeiden sollten, wenn Sie eine Verteilung erwarten. Dies liegt daran, dass, wie aus der Gleichung ersichtlich ist, bei einer sehr großen Anzahl von Abtastwerten die Werte nahezu gleich sind (wenn n 1000 ist, sind die durch 1000 geteilte Varianz und die durch 999 geteilte unverzerrte Varianz nahezu gleich). Wenn Sie diesmal ** mit einer kleinen Anzahl von Proben ** wie in meinem Beispiel arbeiten, müssen Sie vorsichtig sein.

5. Ein Wort

Diesmal habe ich die Dinge über torch.var () zusammengefasst. Vielleicht ist es nur eine Selbstverständlichkeit, aber ich war überrascht und habe es als Artikel geschrieben. Da ich wenig über die solide Bedeutung von Dispersion und unvoreingenommener Dispersion weiß, möchte ich Sie auch bitten, auf Fehler im Ausdruck hinzuweisen. Ich denke, es gab viele Punkte, die schwer zu lesen waren, aber ich danke Ihnen für das Lesen.

Recommended Posts

Der Wert von pyTorch torch.var () wird nicht verteilt
Um den Ort, an dem der Wert von Errbot gespeichert ist
Ist die Niederschlagswahrscheinlichkeit korrekt?
Über den Rückgabewert von pthread_mutex_init ()
Über den Rückgabewert des Histogramms.
Wissenschaft "Ist Saito der Vertreter von Saito?"
Beim Inkrementieren des Werts eines Schlüssels, der nicht vorhanden ist
Wenn die Genauigkeit des PCR-Tests schlecht ist, warum nicht den Test wiederholen?
Was ist die Ursache für den folgenden Fehler?
Derjenige, der nicht auf DVD ist
[Python] [Meta] Ist der Python-Typ ein Typ?
Ermitteln Sie den Wert der mittleren Schicht von NN
Ich denke, die Grenze des Rucksacks ist nicht das Gewicht, sondern das Volumen w_11 / 22update
Der hintere Schrägstrich der japanischen Tastatur ist "ro".
Machen Sie den Standardwert des Arguments unveränderlich
Es scheint, dass die Version von Pyflakes nicht die neueste ist, wenn flake8 installiert ist
Pipfile wird nicht im aktuellen Verzeichnis erstellt
Die Antwort von "1/2" unterscheidet sich zwischen Python2 und 3
Der Ursprung von Manjaro Linux ist "Mount Kirimanjaro"
Achten Sie auf den Rückgabewert von __len__
FAQ: Warum ist der Zahlenvergleich inkonsistent?
Versuchen Sie, die Daimyo-Matrix durch einen Singularwert zu zerlegen
Finden Sie den Bruchteil des in Python eingegebenen Werts heraus
Dies ist die einzige grundlegende Überprüfung von Python ~ 1 ~
Dies ist die einzige grundlegende Überprüfung von Python ~ 2 ~
Suchen Sie nach dem Wert der Instanz in der Liste
Dies ist die einzige grundlegende Überprüfung von Python ~ 3 ~
[Python Data Frame] Wenn der Wert leer ist, füllen Sie ihn mit dem Wert einer anderen Spalte.
Rückgabewert von quit () - Gibt es etwas, das von der "Funktion, die alles beendet" zurückgegeben wird?
Was tun, wenn der Fortschrittsbalken in tqdm von Python nicht angezeigt wird?
Der Zeitpunkt, zu dem der Wert des Standardarguments ausgewertet wird, unterscheidet sich zwischen Ruby und Python.
Wenn das ausgewählte Objekt in bpy.context.selected_objects nicht zurückgegeben wird
[Python] Berechnen Sie den Durchschnittswert des Pixelwerts RGB des Objekts
[C-Sprache] [Linux] Ruft den Wert der Umgebungsvariablen ab
Nehmen Sie den Wert des SwitchBot-Thermo-Hygrometers mit Raspberry Pi
Machen Sie den Standardwert des Arguments unveränderlich (Artikelerklärung)
Umschalten der Bot-Thermo-Hygrometer-Werte mit Raspberry Pi
[Golang] Geben Sie ein Array für den Wert der Karte an
Den Inhalt der Daten in Python nicht kennen
Vorbereiten der Ausführungsumgebung von PyTorch mit Docker November 2019
Die Geschichte, dass der Rückgabewert von tape.gradient () None war
Die neueste Version von Pillow 7.0.0 wird die Transformation von Pytorch beenden.
Zip 4 Gbyte Problem ist eine Geschichte der Vergangenheit
[Django 2.2] Sortieren und erhalten Sie den Wert des Beziehungsziels
Was ist ein empfohlener Motor? Zusammenfassung der Typen
Wenn Sie das Update von ManjaroLinux für seltsam halten
Warum ist das erste Argument der [Python] -Klasse selbst?
Die Kopiermethode von pandas.DataFrame ist standardmäßig Deep Copy
[Dance Dance Revolution] Ist es möglich, den Schwierigkeitsgrad (Fuß) aus dem Wert des Groove-Radars vorherzusagen?
Das Bild wird in der lokalen Entwicklungsumgebung angezeigt, aber das Bild wird nicht auf dem Remote-Server von VPS angezeigt.
Wenn sich eine Zeichenfolge einer bestimmten Reihe im Schlüssel des Wörterbuchs befindet, wird die Zeichenfolge in den Wert des Wörterbuchs konvertiert.
Ich möchte ausgeben, während der Wert des Typs (z. B. datetime) konvertiert wird, der bei der Ausgabe von json mit Python nicht unterstützt wird