# Tutorials to learn all kinds of Machine Learning

In this category you will find easy to follow and complete tutorials on different subjects related to Machine Learning and Data Science. There is a little bit of everything: from introductory level Machine Learning tutorials, to resources about statistics, or more specific guides about Deep Learning or Natural Language Processing.

As always, we hope you enjoy them.

**Basic Machine Learning Models**

Having an understanding of how our Machine Learning models work is crucial for becoming a Machine Learning engineer. Even if we forget about the maths, it is convenient that we now how they models are trained, their strengths and weaknesses.

The following series of tutorials are oriented towards giving you an outline of how the most basic Machine Learning algorithms work. Take a look!

### **Linear Regression**

**Linear regression** is almost always tough to be the most simple Machine Learning algorithm. Learn all about it on the following resources.

-Medium post Linear Regression Explained. An easy and intuitive non technical guide for Linear Regression.

-Statquest Video on Linear Regression.

### **Logistic Regression**

**Logistic Regression** is a binary classification algorithm, that is very simple to understand and can give great results. Again, you can learn about it using the following resources:

-Medium post Logistic Regression Explained. Very straightforward explanation of Logistic regression with easy examples.

-Statquest Video on Logistic Regression.

### **Decision Trees**

**Decision Trees** are a kind of non parametric models, that can be used for both classification and regression. They are constructed using two kinds of elements: nodes and branches. Learn about them here:

-Medium post Decision Trees Explained. Concise, simple and graphical explanation of decision trees with real examples.

-Statquest Video on Decision Trees.

### **Support Vector Machines**

**Support vector Machines** or SVMs are a widely used family of Machine Learning models, that **can solve many ML problems**, like linear or non-linear classification, regression, or even outlier detection. Learn about them with the following resources:

-Medium post Support Vector Machines Explained: Very illustrative explanation of how SVMs are trained, and used to make prediction in an elegant and intuitive manner, in Towards Data Science.

-Statquest video on Support Vector Machines.

### **Random Forests**

**Random Forests** are one of the most powerful Machine Learning models, belonging to the category of **Ensemble models**. They are created by grouping together many individual Decision Trees, reducing the variance problems of these and increasing overall performance. You can learn about them, as always, with the following resources:

-Medium post Random Forest Explained: a graphical and intuitive explanation of what random forest are, how they are trained, the solutions they offer over traditional Decision Trees, and how they are used to make predictions.

-Statquest video on Random Forests.

**Artificial Neural Networks**

Artificial Neural networks are probably the most powerful Machine Learning tool out there. They can be used for all sorts of incredible tasks: from audio recognition on devices like Siri or Alexa, to driving autonomous Vehicles, to simply making predictions on numerical or categorical variables like a normal Machine Learning algorithm.

**Brandon Roher’s Video Series**

Despite of their power however, we must know when to use them and when they are not necessary or will not work out well. The following series of completely free videos by Brandon Roher is a great resource to start learning about them: End to End Machine Learning, Introduction to Neural Networks.

**Deeplizard’s Youtube Channel**

A more introductory video-guide to Deep Learning can be found on deeplizard’s Youtube channel. It covers what neural networks are, how they are trained, and how they make predictions in very short, easy and concise videos.

**MachineLearningMastery Introduction to Deep Learning**

If you prefer some textual resource, Machine Learning Mastery’s introduction to Deep Learning is a very well written resource to learn what Deep Learning is, and why it has become so popular in the recent years.

**A Hacker’s Guide to Neural Network – Andrew Karpathy’s Blog**

The following blog, A Hacker’s Guide to Neural networks, by Andrew Karpathy, is a different resource that can be very useful to learn about Neural Networks.

It starts by abstracting them to the highest level, comparing them to circuits, then keeps on building on the theories, transforming this circuits into logistic regressions and support vector machines, that combined, end up making our final neural networks.

Processes like gradient descent and back propagation are also explained. You’ll like it every much if you have an electrical, or electronics engineering background.

**Geoffrey Hinton’s Youtube Video Series**

If what you are looking for is a complete, in depth tutorial of Neural Networks, one of the fathers of Deep Learning, Geoffrey Hinton, has series of 78 Youtube videos about this topic that come from a Coursera course with the University of Toronto, published on 2012(University of Toronto) on Coursera in 2012.

This series teaches the theory of everything and more of what you want to know about ANNs: from an introduction to parameter optimisation, RMSProp, Batch, and Stochastic gradient descent, Hopfield nets and a lot more. It is a fantastic resource that we are very happy to have found.

Lastly, if you are looking for something more engaging, and to deepen your knowledge and obtain an oficial certificate, take a look at our review of the Deep Learning Specialisation, by Stanford University and Andrew Ng.

**The Deep Learning Book**

The Deep Learning book is a free online resource (although it can be bought on paperback) created by top AI researchers Ian Goodfellow, Yoshua Bengio and Aaron Courville. It has exercises, lectures and external links, and goes from introductory Machine Learning basics like Linear algebra and Statistics to complex topics like Deep Generative Models and Monte Carlo methods. You can find it here.

While this book can be found for free, it is also worthwhile to buy on paperback. A full review of the material can be found in the following article.

**Fast.ai**

*‘Making Neural Networks uncool again’* is the slogan of fast.ai, a webpage collecting resources about Deep learning like free courses, a very useful software library, some awesome research material and a very large community. They want to bring Neural Networks to everybody and remove the magical and complex conception of the general public towards them. Check them out here.

You can also find a great article of the maths needed for Deep Learning by Jeremy Howard (one of the founders of Fast.ai) here: The Matrix Calculus you need for Deep Learning.

**Computer Vision**

One of the fields where Machine Learning has had the greatest impact in the last decades has been Computer Vision. Tasks like face recognition or Optical Character Recognition (OCR) that before were extremely challenging, are solved now every day using Deep Neural Networks mostly.

**PyImageSearch**

To learn about computer vision, the best tutorial we have found is is PyImageSearch. It is a website with a million awesome resources on how to start on this field and go from beginner to expert. Enjoy it!

**AWESOME – Computer Vision**

If you are a computer vision enthusiast, you should also check out **AWESOME**, a fantastic repository on Github with tons of resources on this field, like books, papers, software, data sets and a lot more! Don’t miss out on it!

**Darknet **

**Darknet** is an Open Source computer vision framework built and maintained by the creator of the YOLO (You Only Look Once) object detection algorithm. It makes it very easy to train and create your own custom object detectors, or image classifiers, so go check it out if you are thinking of building one such project; most of the time its better to start from somebody’s work than from scratch.

**ImageAI**

**ImageAI** is an easy to use Computer Vision Python library that empowers developers to easily integrate state-of-the-art Artificial Intelligence features into their new and existing applications and systems.

It is used by thousands of developers, students, researchers, tutors and experts in corporate organisations around the world. You will find, features supported, links to official documentations as well as articles on **ImageAI**

**Natural Language Processing**

**Hugging face**

Hugging face is a platform, that together with their Medium blog, constitute a great resource for learning Natural Language Processing. The platform is pretty much a repository of code and theory of transformers, language models like BERT, and much more. If you are interested in NLP, then you should definitely take a look.

**Sentiment Analysis**

Sentiment analysis or sentiment inference is a part of Natural Language Processing that has the goal of extracting a sentiment (usually positive, negative or neutral) from a certain sentence. This is not a straight-forward task, and it is a field that can provide a lot valuable business information: we can analyse sentiment on product reviews, on social networks, comments on web pages, and a lot more.

**MonkeyLearn**

**MonkeyLearn** is a great resource for learning about Sentiment Analysis, how it is done, its use cases, and its application. Check them out!

**Targeted Sentiment Analysis**

What can we do when we don’t want to analyse the sentiment of a whole sentence, but rather the sentiment of a sentence towards an specific sentence within it? At * howtolearnmaching* learning we know that this is sometime the goal, and not just traditional sentiment analysis.

Here are some resources to know more about *Targeted Sentiment Analysis*:

–Medium Post about Targeted Sentiment Analysis.

**Interpretable Machine Learning**

For most, Machine Learning is an almost magic field, where we give a computer some data, it does it’s thing, and outputs some information. This, however, is not true.

Machine Learning engineers and practitioners generally understand how a model works (i.e the process about how it learns and then makes predictions) however, when dealing with non-technical counterparts, it is very important to be able to explain why the model is doing what is doing.

This is the reason why Interpretable Machine Learning has become a very hot field in the recent years: how to make black box machine learning models interpretable.

**Christoph Molnar´s book and blog**

For this, the best resource we have found is *Christoph Molnar*´s book, which you can find for free on a browser-friendly format here: Interpretable Machine Learning. Take a good look!

**PyData Open the Black Box Lecture**

The following is also a great resource to learn about Interpretable Machine Learning, if you prefer watching lectures than reading material:

**Kaggle Learn**

**Kaggle Learn** also has a great and brief resource for learning about Machine Learning (sorry for the redundancy) explainability. If you have never heard of the **Kaggle Learning platform**, then go take a look, as it provides quick and easy tutorials to learn Python, SQL, data visualisation and a lot more!

**Python Programming Tutorials**

**RealPython**

If you are looking to learn how to program in Python, or how to improve your Python programming knowledge, you should definitely check out RealPython. It is an incredible resource with tutorials, videos, challenges, and a very active and friendly community. For us it is one of the best online destinations for Python programmers, and we have ourselfs used it very much. Happy programming!

**Kaggle Learn**

If you are looking for a more specific tutorial, and want to quickly see what Python is all about and learn the fundamentals, we recommend you visit Kaggle Learn’s Python tutorial. It quickly takes you through the theory behind the main concepts of the language and then tests your knowledge with some questions and exercises. It is fast, concise and useful. Go check it out!

**Mathematics for Machine Learning**

Maths and statistics are at the heart of the Machine Learning systems that we build. Because of this, we think it is essential to have a solid background in these topics to become an awesome Machine Learning engineer / Data Scientist. There are awesome resources out there for this.

Probability Theory: The Logic of Science is a completely free guide that offers an introduction to the most important statistical concepts used in the Machine Learning realm.

The Youtube video series Mathematics for Machine Learning by Imperial College London is another great resource, one of the best we have found, to freely and quickly learn the Mathematics needed to dominate every operation in Machine Learning. This tutorial covers mostly Multivariate Calculus.

To learn all the linear algebra you need to feel confortable with the matrix operations that appear everywhere in Data Science, take a look at the following free Youtube video series for great theoretical explanations: Mathematics for Machine Learning by Coursera: Linear Algebra. Complement this with the videos by ThreeBlueOneBrown on the intuition behind linear algebra and you will end up being an expert in this field: The Intuition of Linear Algebra.