In recent years, neural networks have become a basic tool in building the most exciting AI projects: from giving power to virtual assistants like Siri or Alexa, guiding self-driving cars, to predicting the prices of houses on the market, or even writing new literary pieces of art. Neural networks are becoming an integral part of our everyday life and their relevance is ever so increasing.
In this project you will learn the basic idea and basic types of architectures of neural networks. You will learn what are the basic building blocks of different types of networks, how to put them together, how to train the network as well as optimise its performance. You will implement this knowledge on the concreted example of building the network which is supposed to perform various classification problems. To do that task, in addition to fully connected networks, you will get to learn about the convolutional NNs which are better suited for the range of visual tasks. If you feel inspired you will also have the opportunity to learn about various networks which are used for localisation and/or segmentation tasks.
While this project will require you to gain significant theoretical knowledge, it will be equally important to show how this knowledge works in practice, by implementing in code what you have learnt. It is therefore very important that you have a strong knowledge of Python and that you enjoy doing it!
Strong knowledge of Python. Familiarity with basic probability theory.
The amount of literature is huge and most of it is available online. The following are just good starting points:
If you like things the 'old fashioned way' here is a site where you can find a lot of free books: freecomputerbooks.com.