# Resources for building the foundational understanding of machine learning

To understand machine learning in medicine, it goes without saying that you need to understand machine learning. For those from a healthcare background, this will be the most challenging part.

So… where to begin?

There are broadly two aspects of machine learning; the **theoretical** **side**, which involves understanding the different techniques and algorithms, and the **practical** **side**, which involves writing and executing code to train and run these algorithms. The depth at which you learn one or the other is determined by how you want to use machine learning in your career (check out our machine learning in healthcare career’s advice post if you haven’t already).

The theoretical side is heavily underpinned by **mathematics,** so it’s necessary to build that foundation to truly understand the theory. Some prefer to cover the maths before moving onto the machine learning, others prefer to alternate between the maths and machine learning – we’ll leave it up to you.

This article will cover:

- Resources for the mathematical foundation
- Resources for machine learning theory
- Resources for the practical coding aspect
- Resources for understanding machine learning in medicine

We’ve also made a video, for a general audience, which you can watch here or at the bottom of this post.

## 1. Mathematical foundations of machine learning

The key areas to understand are **linear algebra**, **multivariate calculus**, **probability** and **statistics**.

### Old maths textbooks

If you are more than a little rusty with your maths, skimming through your old maths textbooks, plus the odd past paper question, can be a useful way to bring yourself back up to speed.

Of course, this does depend on whether you can still find them… (Although many are accessible online if you know where to look.)

<iframe src=”https://giphy.com/embed/kxAr4A2sCgEoCrU8JU” width=”480” height=”280” frameBorder=”0” class=”giphy-embed” allowFullScreen%3E</iframe>
*Blow the dust off those old books*

However, this alone is far from enough if you want to get serious. That’s where the following resources come in.

### ‘Mathematics for Machine Learning’ by Imperial College London

This is our most-recommended course for systemically covering the maths principles needed for machine learning.

They recommend 12 hour per week for 2 months to fully complete the course.

### Mathematical Foundation For Machine Learning and AI by Eduonix on Udemy

This is an alternative to the Imperial course and is shorter and cheaper. This means its less thorough but can also be completed in a much shorter time. A good alternative for people looking for a more superficial understanding, and you can always move on to the Imperial course if you want to go deeper.

### Statistics

An overview of statistics will be useful: check out All of statistics: A Concise course in Statistical Inference by Larry Wasserman or Chapter 2 of An Introduction to Statistical Learning.

### Brilliant

An absolute fantastic resource. Presents you with theory then continually asks questions to help you develop your intuitions. (as well as maths, they have great modules on computer science, phyiscs, etc)

### Kahn Academy

A fantastic go-to resource for any topics that you come across but don’t understand. You can also pick some of their modules and work through them.

## 3a. Introductory courses for machine learning theory

### Machine learning by Andrew Ng

Pretty much the go-to course for all people starting out in machine learning. Any time spent on this course will not be wasted. An 11-week course with programming exercises most weeks

Our main criticism is that it can get pretty technical at times, so be wary not to get too bogged down.

### Machine learning for healthcare professionals

We’ve designed a course which is specifically aimed at all medical professionals, and which deliberately avoids going to the level of technicality of other machine learning courses.

We envisage it as a first-introduction to healthcare professionals interested in machine learning. For those who enjoy it a lot, they can then go on to do the more in-depth and technical courses. And if you don’t, it will provide the foundation to get involved with healthcare AI research and enterprise.

## 3b. More advanced courses for machine learning theory

### Deep Learning Specialisation by Andrew Ng

This follow-on course to Andrew Ng’s Machine Learning takes a deeper dive into the ‘deep learning’ element of machine learning. This is a particularly exciting area and is where most of the new medical AI research is being done.

While the course itself costs money, the video aspect of the course are freely available on youtube (although you won’t be able to do the programming exercises).

### Fast.ai

An alternative and/or supplement to the Andrew Ng course, this course is more focussed on the practical aspects of actually coding machine learning. It takes a ‘top-down’ approach, whereby you start by coding things and then delve deep into how the code is working, compared to Andrew Ng’s courses which are more bottom-up.

It’s a fantastic course with a lot of useful insights. However, it’s very heavy and will require you to re-watch most segments 2-3 times.

It’s aimed at coders (self-marketed as “Practical Deep Learning for Coders”), and advises at least one year of Python experience before commencing the course.

## 3. Programming

The two most common languages used are R and Python, of which Python is the most popular at present. We would recommend focussing on python and perhaps having a familiarity with R.

Our recommended route for learning python is the following:

### Python for Data Science on DataCamp

Gives a solid introduction of the syntax, the concept of loops and NumPy and Pandas, which are used heavily in machine learning code

### Learn Python The Hard Way

A little time-consuming to work through but provides a solid foundational understanding of Python.

### Practice

After gaining insight into the principles of the programming language, the key thing is to **practice** by trying to make things.

One great resource is **CodeMD**, which is a website aimed at teaching medics how to code. They have a series of walk-through exercises which are a great starting point.

Another useful resource is **Kaggle.com**, which has a lot of datasets plus other people’s worked examples.

## 4. Understand machine learning in medicine

Once you’ve got a decent grasp on machine learning, the maths underlying it and the princples of coding, you’re ready understand how it can be applied in medicine.

### Academic articles

- High-performance medicine: the convergence of human and artificial intelligence
- Machine Learning in Medicine

### Other resources

We’ve collated our favourite resources in this post, which we will keep up-to-date.

Hope that’s useful!

### P.S. Our Youtube Video outlining these resources

*Don’t worry about watching this if you’ve already read the whole post!*