From zero to hero: a brief study plan for mastering Deep Learning and Machine Learning from scratch!
Deep learning and machine learning are powerful tools that are changing the way we interact with technology; today almost every tech product has, at least, a minimal part behind it that comprises artificial intelligence. Just to provide some examples of deep learning and machine learning techniques, they are used in a wide range of applications, from self-driving cars and speech recognition to natural language processing and computer vision. However, to be able to work with these technologies, it is important to have a solid understanding of the underlying concepts, techniques, and mathematics. In this article, I will (try to) provide a comprehensive study plan for mastering deep learning and machine learning from scratch.
Letās be clear about this: I do not describe myself as an artificial intelligence āheroā, but although I studied computer engineering, until a year and a half ago I had no idea what machine learning was. Fortunately, however, I had the opportunity to take a very interesting āData Scienceā course during my first year of my masterās degree, and passionate about the topics covered during the course I decided to study and become more and more informed about the vast world of Artificial Intelligence.
At the time I am writing this article, I have just started my first job as a machine learning engineer; I am aware that probably I am the least prepared among them, and I certainly have so much to learn, however, I cannot but be satisfied with what I have learned since that time, when my knowledge on the subject was almost zero.
Having made this necessary premise, let me now set out a study plan (based on personal experience) that I hope will enable you to approach the world of artificial intelligence!
Learn math and statistics
A solid understanding of mathematics and statistics is essential for learning machine learning and deep learning. Many of the concepts and techniques used in these fields are based on mathematical principles. Linear algebra, calculus, probability, statistics, information theory, and optimization are some of the mathematical concepts that you should have a good understanding of.
This is the stage where you are probably thinking that, all in all, you can go on with your life without necessarily knowing how to create a machine learning model; well, I can understand you, if math may seem difficult to you, statistics will be much moreā¦ but I want to reassure you: you do not have to master all the math or remember each formula and its corresponding demonstration (which we leave to the reader ;) ), but you should have a good understanding of the mathematical concepts used in machine learning and deep learning. Luckily, there are plenty of resources, both printed and virtual, on the above topics, both paid and free.
Additionally, some libraries and frameworks, such as TensorFlow, numpy and scikit-learn, provide many of the mathematical functions as pre-built libraries, so you may not need to implement them from scratch in your code (good news: you will probably never implement them from scratch).
Learn Python
It is important to have a good grasp of the Python programming language, as it is the most widely used language for machine learning and deep learning. Resources such as Codecademy or Coursera can help you to learn the basics of the language. Additionally, it is important to be comfortable with the usage of libraries such as numpy and pandas for data manipulation, matplotlib for data visualization and, last but not least, jupyter. If you are already a computer science or engineering student, you will have no problem learning python (if you are not already using it).
Learn Machine Learning fundamentals
Next, you should learn about the fundamental concepts of machine learning, such as supervised and unsupervised learning, and common algorithms like linear regression and k-means clustering. Resources like Courseraās Machine Learning course by Andrew Ng or the book āIntroduction to Machine Learning with Pythonā by Andreas MĆ¼ller and Sarah Guido are great places to start. It is also important to understand the evaluation metrics used to assess the performance of the models.
Keep in mind that there are plenty of libraries, frameworks and tools that implement pre-built machine learning models, and as I said before speaking about math, you will hardly have to program a linear regression model from scratch; however, it is essential to know what models exist, what they are used for, and what kinds of problems they solve.
Learn Deep Learning
Then, you should focus on learning about deep learning and neural networks by studying the basics of neural network architecture, activation functions, backpropagation, and gradient descent. You can use resources like the Deep Learning Specialization on Coursera by Andrew Ng or the book āDeep Learningā by Yoshua Bengio, Ian Goodfellow, and Aaron Courville. It is also important to understand the different types of neural network architectures, such as feedforward, convolutional, and recurrent networks. Regarding this last point, my suggestion is to read the papers that first introduced a specific technique or architecture; this approach has two goals:
- Become comfortable in reading research papers. Since all major advances in AI are often introduced in scientific papers, it is important to become familiar with reading them.
- Obviously, to understand what was the innovation brought about by the technique/architecture you are reading about and why it was so important (example: the famous paper āAttention is All You Needā [1] introduced the transformer, a fundamental model underlying applications of Natural Language Processing).
Finally, it is fundamental to focus and practice on, at least one, of the most important DL frameworks such as PyTorch, Tensorflow and Keras.
Practice Implementing Models
While you learn the fundamentals about machine and deep learning, my hint is to practice implementing machine learning and deep learning models using a library such as scikit-learn or TensorFlow. You can find tutorials and exercises on the librariesā guides, or in resources such as the book āHands-On Machine Learning with Scikit-Learn, Keras, and TensorFlowā by AurĆ©lien GĆ©ron (which I highly recommend). Additionally, you can apply your knowledge by working on projects or participating in Kaggle competitions.
Conclusions
I hope this article has been helpful to you and that you now have a more detailed idea of what the basic steps are for entering the field of AI. Clearly, this is only a general and not very detailed plan, and the time needed to complete each step and the resources to be used may vary depending on your knowledge and experience. However, by following this plan, you will be well on your way to mastering the concepts and techniques needed to work with machine learning and deep learning.
Finally, the last tip I want to give in this article is: never stop learning. If you are passionate about this field, it is important to keep up with the latest developments in the field: if you are short on time, the quickest way to keep up with the latest news is to use social media (such as LinkedIn, Twitter, or Reddit) to follow important researchers or join communities of AI enthusiasts. An alternative for those with more time is to read the latest articles.
References
- A. Vaswani, N. Shazeer, N. Parmar, J. Uszkoreit, L. Jones, A. N. Gomez, L. Kaiser and I. Polosukhin, āAttention is All You Needā