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.
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.)
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.
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.
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.
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.
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)
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.
Introductory courses for machine learning theory
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.
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.
Click here to see the dates for our upcoming courses.
More advanced courses for machine learning theory
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).
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.
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:
Gives a solid introduction of the syntax, the concept of loops and NumPy and Pandas, which are used heavily in machine learning code.
A little time-consuming to work through but provides a solid foundational understanding of Python.
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.
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.
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!