In March 2019, all I knew about Python is that it is a kind of snake. Today, I have competent Deep Learning skills. I have acquired these skills studying online, following a very specific path. Read more to find out how I did it and how you can do it too, regardless of your background.
I studied business as my undergraduate. In early 2019, I had the opportunity to update my education and I felt compelled to get deeper into technology.
For about a year and a half now, these are the steps that I have followed to get to where I am:
- Learn Python: practice for 2–4 hours per day for 3 months. At the end of this stage, I felt very comfortable with Python. At the beginning it is very hard and towards the end, it felt a bit like playing the piano.
- Learn Linear Algebra and Calculus: Deep Learning is basically a combination of the two. In my opinion, you do not need to master either but a solid study period of 2–3 months enables you to really understand what is going on inside a neural network — this is a very important skill to acquire.
- Get into Deep Learning, starting with Feed Forward Neural Networks. These are the simpler kind of NNs (as the word linear may suggest). They are nonetheless the most explainable of all — from here on, explainability is not really Deep Learning´s major virtue, and that´s perhaps what makes it fun.
- Carry on with Convolutional Neural Networks (the essence of modern Computer Vision). CNNs create low level representations of images that computers can understand. The first time I encountered them, it was pretty cognitive intense. Required many iterations and a big focus.
- Moving on, my next step was to study Recurrent Neural Networks (the essence of NLP). RNNs capture a sense of time and have enabled massive advancements in working with data that spans through time. LSTMs, a form of RNN, are also a part of this step (they solve RNN´s “short term memory loss”).
- I then studied Generative Adversarial Networks. A GAN is a combination of two NNs competing against each other : a discriminator and a generator. The generator must synthesize data of a sufficient quality in order to trick the discriminator. For instance, I built an algorithm that could synthesize fake human faces.
- I then went deeper into Computer Vision and somewhat “specialized” in the field. I deepened my understanding of CNNs and learnt to combine CNNs with LSTMs, to produce an image captioning algorithm.
- Currently, I am learning to apply all the above to the field of Healthcare. I am really excited about this, because I believe this technology can be transformational in this sense, improving the quality of healthcare globally.
As an extra, I have also done a bit of Deep Reinforcement Learning in the past few months. I was able to train a 2D “highway autopilot”. You can check it out below:
To follow these steps, I went through a series of ‘Nanodegrees’ offered by Udacity. I highly recommend browsing their catalogue. The programs are not free, but they are way cheaper than courses in traditional institutions and in my opinion, they are fantastic (this is not sponsored content, just my opinion).
If you have any questions regarding my journey, feel free to drop me a comment below! I will be updating this article as I go along. I hope it may have inspired you to get started on your journey, towards learning about this incredible technology.
Until next time!