  Convolutional Neural Network (CNN) is one of the most significant networks in
the deep learning field. Since CNN made impressive achievements in many areas,
including but not limited to computer vision and natural language processing,
it attracted much attention both of industry and academia in the past few
years. The existing reviews mainly focus on the applications of CNN in
different scenarios without considering CNN from a general perspective, and
some novel ideas proposed recently are not covered. In this review, we aim to
provide novel ideas and prospects in this fast-growing field as much as
possible. Besides, not only two-dimensional convolution but also
one-dimensional and multi-dimensional ones are involved. First, this review
starts with a brief introduction to the history of CNN. Second, we provide an
overview of CNN. Third, classic and advanced CNN models are introduced,
especially those key points making them reach state-of-the-art results. Fourth,
through experimental analysis, we draw some conclusions and provide several
rules of thumb for function selection. Fifth, the applications of
one-dimensional, two-dimensional, and multi-dimensional convolution are
covered. Finally, some open issues and promising directions for CNN are
discussed to serve as guidelines for future work.
