Truncated normal distribution:
The values generated from this function follows a normal distribution with specified mean and standard deviation, except that values whose magnitude is more than 2 standard deviations from the mean are dropped and re-picked.
It is easy to understand the difference by plotting the graph for yourself (%magic is used because I use jupyter notebook):
Code to plot graph:
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])
plt.hist(a, 100, (-4.2, 4.2)); plt.hist(b, 100, (-4.2, 4.2));
The raeson for using truncated normal is to overcome saturation of time functions like sigmoid.