math - recognition - tensorflow python
¿Cuál es la diferencia entre tf.truncated_normal y tf.random_normal? (3)
tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
genera valores aleatorios a partir de una distribución normal.
tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
genera valores aleatorios a partir de una distribución normal truncada.
Intenté buscar en Google ''distribución normal truncada''. Pero no entendí mucho.
La documentation describe la función como:
Emite valores aleatorios a partir de una distribución normal truncada.
Los valores generados siguen una distribución normal con la media y la desviación estándar especificadas, excepto que los valores cuya magnitud es más de 2 desviaciones estándar de la media se descartan y vuelven a seleccionarse.
La documentation dice todo: para la distribución normal truncada:
Los valores generados siguen una distribución normal con la media y la desviación estándar especificadas, excepto que los valores cuya magnitud es más de 2 desviaciones estándar de la media se descartan y vuelven a seleccionarse.
Lo más probable es que sea fácil entender la diferencia trazando el gráfico para usted (% magic es porque uso el cuaderno jupyter):
import tensorflow as tf
import matplotlib.pyplot as plt
%matplotlib inline
n = 500000
A = tf.truncated_normal((n,))
B = tf.random_normal((n,))
with tf.Session() as sess:
a, b = sess.run([A, B])
Y ahora
plt.hist(a, 100, (-4.2, 4.2));
plt.hist(b, 100, (-4.2, 4.2));
El punto para usar truncado normal es superar la saturación de las funciones del tomo como sigmoide (donde si el valor es demasiado grande / pequeño, la neurona deja de aprender).
tf.truncated_normal()
selecciona números aleatorios de una distribución normal cuya media es cercana a 0 y los valores están cerca de 0 Ej. -0.1 a 0.1. Se llama truncado porque estás cortando las colas de una distribución normal.
tf.random_normal()
selecciona números aleatorios de una distribución normal cuya media es cercana a 0 ; sin embargo, los valores pueden estar un poco más separados . Ex. -2 a 2
En la práctica (Aprendizaje automático) generalmente desea que sus pesos estén cerca de 0.