  This tutorial-review on applications of artificial neural networks in
photonics targets a broad audience, ranging from optical research and
engineering communities to computer science and applied mathematics. We focus
here on the research areas at the interface between these disciplines,
attempting to find the right balance between technical details specific to each
domain and overall clarity. First, we briefly recall key properties and
peculiarities of some core neural network types, which we believe are the most
relevant to photonics, also linking the layer's theoretical design to some
photonics hardware realizations. After that, we elucidate the question of how
to fine-tune the selected model's design to perform the required task with
optimized accuracy. Then, in the review part, we discuss recent developments
and progress for several selected applications of neural networks in photonics,
including multiple aspects relevant to optical communications, imaging,
sensing, and the design of new materials and lasers. In the following section,
we put a special emphasis on how to accurately evaluate the complexity of
neural networks in the context of the transition from algorithms to hardware
implementation. The introduced complexity characteristics are used to analyze
the applications of neural networks in optical communications, as a specific,
albeit highly important example, comparing those with some benchmark signal
processing methods. We combine the description of the well-known model
compression strategies used in machine learning, with some novel techniques
introduced recently in optical applications of neural networks. It is important
to stress that although our focus in this tutorial-review is on photonics, we
believe that the methods and techniques presented here can be handy in a much
wider range of scientific and engineering applications.
