Getting started with machine learning and neuroimaging
This summer I had the privilege of mentoring a CÉGEP student whose goal for the summer, to quote, was to “learn the basics of machine learning and get an overview of how your (PhD) projects look like before my undergrad starts”. Hence, I decided to come up with a short curriculum that goes from the very basic concepts of math and programming to some applications of machine learning on real-world data. Before going further, a CÉGEP is a college offering a mix of programs (both technical and non-technical) that is exclusive to Quebec’s education system. Typically two years in duration, it is seen as an important step towards proper academic preparation to succeed at university.
As for the curriculum, I put together a Google Doc that contains the list of resources that I believe are helpful for anyone looking to learn the fundamentals of machine learning. The content is divided across 10 weeks with a predefined set of milestones for each week. Please note that this document was prepared with comprehension level of post-secondary student in mind. Hence, during the initial weeks, we cover the fundamentals of math and Python programming required for machine learning and gradually move towards the basics of neuroimaging. We chose neuroimaging for two main reasons, one, the student wanted to get a headstart on neuroimage analysis, and second, it acts as a good test-bed for applying the ML concepts learned during the initial weeks on real-world data.
A few highlights of what the Doc covers:
- Math - Linear Algebra, Analytic Geometry, Single variable and Multivariable Calculus, Probability, etc.
- Programming - Introduction to Python, Python Classes and Data Structures, Sorting and Searching, etc.
- Git - Introduction to Version Control, Git Branching, GitHub Basics, etc.
- Machine Learning - Linear/Logistic Regression, SVMs, Gradient Descent, Backpropagation
- Neuroimaging - Data and File Structures, Neuroimaging in Python, BIDS Convention, etc.
While deciding on the topics for each week, I have found myself repeatedly going back to a few resources, which I wanted to highlight separately:
- Mathematics for Machine Learning Textbook
- Problem Solving with Algorithms and Data Structures using Python - I have gone through a few chapters of this book and it really presents the concepts in a brief, fun way with hands-on exercises. All the chapters are highly relevant for learning/revising Python concepts.
- CS229: Machine Learning - YouTube lecture series of Stanford’s famous ML course taught by Andrew Ng.
This was just an overview of the contents inside the Doc. There are several useful videos, tutorials, blog posts, etc. which I highly encourage you to check out! Happy learning!