AI with python

Within the few last years, AI saw its popularity skyrocketed. Successive breakthroughs and popular projects such as Alphago or Jeopardy awaken the interest of people. The word 'AI' started to appear more often and raised some questions about the potential good and harm it could bring to our human society. Big companies such as GAFA and many more claimed to rely on artificial intelligence to improve their services and always more complexed algorithms arose making no doubts that it will be part of our everyday life. However, despite all news, it remained a dark and obscure magic to me so when I used unity ml-agents for the Dialog project, I really felt the need to understand how things were working under the hood. It led me to start a Udacity program called: AI programming with python. My goal wasn't to become an AI expert but to satisfy my curiosity. More and more, AI frameworks are popping here and there and will progressively become mainstream, so I thought that having some basics would give me opportunities for future projects.

Learning materials for the Udacity course were very good and I could graduate within one month and a half. It was covering the understanding and training of basic neural networks and the final project consisted of building an application capable of classifying images of flowers. The Python application had been able to train a network and use inference to detect a K5 names probabilities. To do so, I downloaded a pre-trained Resnet model from Pytorch and built a new classifier to connect the features detection of the convolutional network to a relevant output for the flowers database. Although we learned how to train a network from scratch and implement forward feed and back-propagation, during the end of the program project, we were demanded to use Torch functions to easily train the classifier.

During the course, I was amazed to see how neural networks work. The use of gradients to lower the error loss and train them is really creative and ingenious. I also enjoyed understanding matrix multiplications, the use of partial derivatives and the chain rule application when learning how to train a model from scratch. It was a challenging and a pretty deep introduction to neural networks and I will definitely play with AI in my future projects.