Artificial neural networks (ANN) or simply “neural networks” are computing systems inspired by “classical biological” neural networks that are in animal brains. Typically an ANN “learn” to perform tasks by considering examples, without being programmed with task-specific rules.
Image recognition is a classical example where neural networks are used; in particular they learn to identify images that contain dogs by analyzing example images that have been manually categorized (labelled) as “dog” or “no dog”. Once the system “learn” the difference it can be used for identifying dogs in other images.
An ANN does not use conceptual reasoning, for example is not capable to devise that “all dogs have 4 legs”, or “a dog must have a nose” etc. Instead, they hide the features of a dog into their data structure and they “internally learn these characteristics” from the examples that are used for training them.
These 4 YouTube videos below can kick start your journey in learning about this technology or simply satisfy your curiosity.
Practical applications are more complex that the classical example mentioned in these videos. Nevertheless, learning how to recognize hand-written digits is always a good place to start. In other words you can consider this example as the “hello world” example for learning the basics of Neural Networks.
Modern tools for developing Neural networks such as Tensor-flow hide many of the complexities mentioned in these videos. Nevertheless a basic foundation of the concepts mentioned will speed up your developments and will foster an actual understanding of what you are doing.
The code mentioned in the videos is also available at this link:
In the case you would like to replicate the example you can access the database of hand-written digits at this link:
And, in the case you would like to learn about Artificial Neural Networks in details I would recommend this open book:
In thinking to what is missing in these video I would say that an introduction to genetic algorithms is probably the most important part. In a nutshell is a technique for optimizing a particular model that is inspired by biological evolution theories. When we design a neural network we usually make a lot of assumption on its characteristics such as, for example, type of activation of the neurons, hidden layers, type of connections, way of back-propagate the feedback etc. As these aspects could be considered features of a particular network, a genetic algorithm approach could help in finding the optimal configuration of these parameters.
A second aspect that is missing is the notion of “deep learning” that is a particular way of dealing with backprogation of a neural network without the need of having a train dataset and using a larger set of layers.
Anyway, this set of resources represents a good starting point for learning the basic of neural networks.
Why you do not let your friends know what you are learning? Consider tweeting something like what follows!A Collection of YouTube Videos around Neural Networks. #Python example for #CodeNewbie included in the links Click To Tweet
I occasionally have some thesis related to Neural Networks, in case you are a student and you are considering learning more about that I encourage you in checking the available thesis