From Boltzmann Machines to Neural Networks and Back Again