In this chapter, we have introduced neural networks in detail and we have mentioned their success over other competing algorithms. Neural networks are comprised of the "units", or neurons, that belong to them or their connections, or weights, that characterize the strength of the communication between different neurons and their activity functions, that is, how the neurons process the information. We have discussed how we can create different architectures, and how a neural network can have many layers, and why inner (hidden) layers are important. We have explained how the information flows from the input to the output by passing from each layer to the next based on the weights and the activity function defined, and finally we have shown how we can define a method called back-propagation to "tune" the weights to improve the desired level of accuracy. We have also mentioned many of the areas where neural networks are and have been employed.
In the next chapter, we will continue discussing deep neural networks, and in particular we will explain the meaning of "deep", as in deep learning, by explaining that it not only refers to the number of hidden layers in the network, but more importantly to the quality of the learning of the neural network. For this purpose, we will show how neural networks learn to recognize features and put them together as representations of the objects recognized, which will open the way to use neural networks for unsupervised learning. We will also describe a few important deep learning libraries, and finally, we will provide a concrete example where we can apply neural networks for digit recognition.