what are deep learning design patterns