What do I need to learn in order to really understand Machine Learning? I've graduated with a math major in undergrad, but mostly focused on algebra (Galois Theory, Knot theory, etc.). I work in something unrelated right now, but now I want to study machine learning. The question is, what kind of knowledge should I have if I want to really understand machine learning? 

Say, here are some things I can think of, but obviously I'm missing a lot, I'm assuming.


"Fundamentals" (Calculus, Linear Algebra, Discrete Mathematics, Coding, etc.) 
Probability (but what specific areas?)
Statistics (but what kind?)
Algorithms
Differential Equations 


But what else? Or what subfields of what I've mentioned above are particularly important (i.e. Bayesian statistics)? 

Edit: I am currently considering a graduate program in ML, and wanted to know if this is something I really want to do / know more about it / prepare myself.
From somebody with a PhD in Probability working with AI/ML for a living. Basics of Probability theory, maybe wikipedia/cousera/... for the very basics if you never had a class in it, followed by e.g. “Probability with Martingales” by Williams.
The papers here will also give you a good feel.
As for books, this one on “classical” machine learning is pretty good and free For Deep Learning https://www.deeplearningbook.org/, this one also has the basics of probability theory.
For reinforcement learning http://incompleteideas.net/book/the-book-2nd.html.
For the applied side, slides from https://web.stanford.edu/class/cs224n/ and http://cs231n.stanford.edu/.
As for statistics don’t bother, I’ve never seen any machine learning work reference a theorem in “pure” statistics, if there is such a thing.
Of course standard undergraduate calculus and linear algebra. And learn some Python while you’re at it