Understanding deep learning algorithms