tutorial recognition examples español ejemplos math machine-learning tensorflow

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.