Review of deep learning: concepts, CNN architectures, challenges, applications, future directions