https://dennybritz.com/posts/wildml/recurrent-neural-networks-tutorial-part-1/