[Python] Unterschied zwischen Rand- und Randn-Ausgabe

Referenz: [Deep Learning von Grund auf neu (S. 98 4.3.1)](https://www.amazon.co.jp/%E3%82%BC%E3%83%AD%E3%81%8B%E3%82 % 89% E4% BD% 9C% E3% 82% 8BDeep-Learning-% E2% 80% 95Python% E3% 81% A7% E5% AD% A6% E3% 81% B6% E3% 83% 87% E3% 82% A3% E3% 83% BC% E3% 83% 97% E3% 83% A9% E3% 83% BC% E3% 83% 8B% E3% 83% B3% E3% 82% B0% E3% 81% AE% E7% 90% 86% E8% AB% 96% E3% 81% A8% E5% AE% 9F% E8% A3% 85-% E6% 96% 8E% E8% 97% A4-% E5% BA% B7% E6% AF% 85 / dp / 4873117585)

rand gibt einfach eine Zufallszahl im Bereich von 0 bis + 1 aus (als Gleichverteilung bezeichnet). randn gibt einen zufälligen numerischen Wert mit einer Standardnormalverteilung (Gaußsche Verteilung) aus. Die Standardnormalverteilung (Gaußsche Verteilung) ist eine Normalverteilung mit einem Mittelwert von 0 und einer Standardabweichung von 1. Das heißt, es wird ein zufälliger numerischer Wert in dem Bereich ausgegeben, in dem der Durchschnitt 0 wird. Es ist wahrscheinlich, dass ein Wert nahe 0 ausgegeben wird, und der Wert ist zwischen -1 und +1 vorgespannt.

Schauen Sie sich die Ausgabe an

6 Sie können den Unterschied nicht wirklich erkennen, wenn Sie einen Zahlenwert generieren. (Wenn es randn ist, wird auch -1,8 ausgegeben.)

tmp.py


import numpy as np

print("-----rand-----")
#print(np.random.rand(2,3))
print(np.random.rand(2,3).flatten().sum()/6)
print("-----randn-----")
#print(np.random.randn(2,3))
print(np.random.randn(2,3).flatten().sum()/6)
mbp-2:deep-learning-from-scratch-master shiraki$ python tmp.py
-----rand-----
[[ 0.93180533  0.57683396  0.61127319]
 [ 0.85445375  0.02708778  0.59547601]]
0.548895695538
-----randn-----
[[-0.26519086 -0.30503921  1.38052841]
 [ 0.78893855  1.17725959  1.80882169]]
0.31519809212

mbp-2:deep-learning-from-scratch-master shiraki$ python tmp.py
-----rand-----
[[ 0.60780629  0.20632273  0.29124602]
 [ 0.30784594  0.70772679  0.01821361]]
0.59935565743
-----randn-----
[[ 0.71569157 -0.52234049 -1.59936154]
 [-0.82040641 -1.40208476  0.89450808]]
0.669739423807

mbp-2:deep-learning-from-scratch-master shiraki$ python tmp.py
-----rand-----
[[ 0.490528    0.77907488  0.7239194 ]
 [ 0.85538536  0.92002825  0.67559426]]
0.495670703747
-----randn-----
[[-0.15695285 -0.34244922 -1.44827391]
 [-1.36062357 -0.49387177 -1.81863075]]
-0.431866047467

mbp-2:deep-learning-from-scratch-master shiraki$ python tmp.py
-----rand-----
[[ 0.84705902  0.58580408  0.31309435]
 [ 0.59569691  0.24460075  0.45989438]]
0.392091814221
-----randn-----
[[-0.35680625 -2.18199977  0.54243995]
 [-0.29317688 -0.43111914 -1.47586303]]
-0.0274650256491

Wenn jedoch 1000 Zahlenwerte generiert werden, macht sich der Unterschied bemerkbar. randn ist gegen 0 konvergiert. Der Grund, warum der Durchschnitt von Rand gegen 0,5 konvergiert, ist, dass er im Durchschnitt zwischen 0 und +1 erzeugt wird. Es hat keine Normalverteilung mit einem Durchschnitt von 0,5.

tmp.py


import numpy as np

print("-----rand-----")
print(np.random.rand(1000).flatten().sum()/1000)
print("-----randn-----")
print(np.random.randn(1000).flatten().sum()/1000)
mbp-2:deep-learning-from-scratch-master shiraki$ python tmp.py
-----rand-----
0.496111761085
-----randn-----
0.0156004004458
mbp-2:deep-learning-from-scratch-master shiraki$ python tmp.py
-----rand-----
0.499698237009
-----randn-----
-0.00664557647709
mbp-2:deep-learning-from-scratch-master shiraki$ python tmp.py
-----rand-----
0.494677814946
-----randn-----
0.0301994725782
mbp-2:deep-learning-from-scratch-master shiraki$ python tmp.py
-----rand-----
0.515244265326
-----randn-----
-0.00605375728391
mbp-2:deep-learning-from-scratch-master shiraki$ python tmp.py
-----rand-----
0.500510191675
-----randn-----
0.00764750739818

Recommended Posts

[Python] Unterschied zwischen Rand- und Randn-Ausgabe
Unterschied zwischen Ruby und Python Split
Unterschied zwischen Java und Python (Memo)
Unterschied zwischen == und ist in Python
Unterschied zwischen der Python2-Serie und der Python3-Serie dict.keys ()
[Python] Unterschied zwischen Funktion und Methode
Python - Unterschied zwischen exec und eval
[Python] Unterschied zwischen randrange () und randint ()
[Python] Unterschied zwischen sortiert und sortiert (Colaboratory)
Python> Unterschied zwischen Inpbt- und Print-Ausgabe (Inpbt)> [1. 2. 3.] / Array ([1., 2., 3.], dtype = float32)
Unterschied zwischen Anweisungen (Anweisungen) und Ausdrücken (Ausdrücken) in Python
Unterschiede in der Beziehung zwischen PHP und Python schließlich und beenden
Unterschied zwischen @classmethod und @staticmethod in Python
Unterschied zwischen Anhängen und + = in der Python-Liste
Unterschied zwischen nicht lokal und global in Python
[Python] Unterschied zwischen Klassenmethode und statischer Methode
[Python Iroha] Unterschied zwischen Liste und Tupel
Python-Eingabe und Ausgabe
Unterschied zwischen Variablen und Selbst. Variablen in der [Python] -Klasse
Über den Unterschied zwischen "==" und "is" in Python
Unterschied zwischen Prozess und Job
Unterschied zwischen Ruby und Python in Bezug auf Variablen
Unterschied zwischen Regression und Klassifikation
Unterschied zwischen np.array und np.arange
Unterschied zwischen MicroPython und CPython
Unterschied zwischen ps a und ps -a
Unterschied zwischen Return und Print-Python
Python-Modul num2words Verhaltensunterschied zwischen Englisch und Russisch
Listenverkettungsmethode in Python, Unterschied zwischen list.extend () und dem Operator "+"
Memorandum (Unterschied zwischen csv.reader und csv.dictreader)
(Hinweis) Unterschied zwischen Gateway und Standard-Gateway
Zusammenarbeit zwischen Python-Modul und API
Unterschied zwischen Numpys Randint und Randoms Randint
Unterschied zwischen Python, Stftime und Strptime
Unterschied zwischen sortiert und sortiert (Denkmal)
Unterschied zwischen SQLAlchemy flush () und commit ()
Python / Numpy> Link> Unterschied zwischen numpy.random und random.random> threadsicher oder nicht
Funktion zum Öffnen einer Datei in Python3 (Unterschied zwischen open und codecs.open und Geschwindigkeitsvergleich)
Unterschied in der Authentizität zwischen Python und JavaScript
[Xg Boost] Unterschied zwischen Softmax und Softprob
[Django ORM] Unterschied zwischen Werten () und nur ()
Unterschiede zwischen Python- und Java-Syntax
Unterschied zwischen linearer Regression, Ridge-Regression und Lasso-Regression
Geschwindigkeitsunterschied zwischen wsgi, Flasche und Flasche
Unterschiede in der Multithread-Verarbeitung zwischen Python und Jython
Unterschied zwischen Ruby und Python (grundlegende Syntax)
Unterschied zwischen numpy.ndarray und list (Dimension, Größe)
Korrespondenz zwischen den in Python integrierten Funktionen und Rust
Unterschied zwischen ls -l und cat Befehl
Kommunikation verschlüsselter Daten zwischen Python und C #
Differenz- und Kompatibilitätsprüfung zwischen Keras und tf.keras # 1
[Einführung in Python] Was ist der Unterschied zwischen einer Liste und einem Taple?
Was ist der Unterschied zwischen "pip" und "conda"?
Zusammenfassung der Unterschiede zwischen PHP und Python
Lesen Sie JSON mit Python und geben Sie CSV aus
Die Antwort von "1/2" unterscheidet sich zwischen Python2 und 3
Unterschied zwischen Verwendung und Import in der Schildsprache
[Python] Konvertierungsnotiz zwischen Zeitdaten und numerischen Daten