Hacker News new | past | comments | ask | show | jobs | submit login
Mathematics for Machine Learning [pdf] (mml-book.com)
327 points by yarapavan on Oct 18, 2019 | hide | past | favorite | 24 comments



I am taking CS 236 (Deep Generative Models) at Stanford and this course really helped me a lot in reviewing the math I needed for the class. This is because the chapters focus on the concepts and ideas you should know, so you don't have to waste time learning everything there is to know about linear algebra and convex optimization, but the essentials for machine learning.


How would you compare this book to the first part of "Deep Learning" book (by Ian Goodfellow, Yoshua Bengio, and Aaron Courville)? https://www.amazon.com/gp/product/0262035618


I feel obligated to interject here as I have not read the book OP linked to but I have attempted to read the paper weight calling itself a book that you linked to.

I have it right here actually. It's basically total trash. They claim to show you how to do the math but at the very best all they do is restate random formulas without any explanation. It's not even good enough to serve as a refresher if you know the math. It relies very heavily on you mentally decompiling mathematical notation. I can't believe I got fooled into buying that book.

If you just want to learn the math there's no easier way than to pick up some math books from half price books. They're $10 a pop. It's an affordable way to learn at your own pace.


As a counterpoint, I have the book and found it to be really helpful.


I enjoyed the book, but have a background in this area.

I was amused by the suggestion that computer science undergrads could handle the book, as clearly the authors and I have met very different computer science undergrads.


The Courville, Goodfellow and Bengio book is definitely suitable for undergraduates. In my current job, we often have new junior level (bachelor’s grads) ML hires work through that book and present chapters in the team reading group. In my experience both as a TA in my PhD program and in industry, that book is fairly easy to read through for anyone with solid understanding of linear algebra and vector calculus, which are freshman / sophomore level college math courses.


Here's a photo of a random page.

https://i.imgur.com/vv1CRLv.jpg

You can trust me when I say the entire book is about as unreadable as that and often worse. I'm not afraid of math either. But the book certainly is not teaching anyone anything.


I am astounded by how you continue to insist that the book doesn't teach anyone anything, when I have already stated that I learned something from it! And of course the book has equations in it. What did you expect?


What did you learn from it?

None of my math books are as obtuse as it is. The equations are presented on their own without explanations. On that page alone they're using quite a bit of mathematical notation that I, at least, have never seen before and I suspect it's largely unnecessary.

What did I expect? I expected a book that explained the concepts in plain english as well as mathematically. I expected the authors to be mature enough not to heavily decorate every single equation with as much mathematical notation as possible. Sort of like how bad coders make their code hard to read. That's the vibe I'm getting from the book.


I learnt eigen decomposition, Hessians, PCA, backpropagation, CNN, dropout, maxpooling etc.

The page you linked above is the derivation of PCA using linear algebra.

First part derives the encoding matrix from the decoding matrix. 2nd part derives the encoding matrix by minimizing the L2 norm.

If you find the math too heavy, you should take Andrew ngs course at Coursera (not his Stanford lectures, which follow a pattern similar to this book). Or pick up any book targeting programmers, machine learning for hackers etc.


Cool, I'm glad it's been working out for you. Don't get me wrong, I enjoyed that book, even the start which wasn't focused so much on deep learning specifically.

I just don't know many computer science undergrads who'd have the background to make that book useful, as the presentation leans towards the terse.


Previous discussion from April 2018: https://news.ycombinator.com/item?id=16750789


Id be useful to have a "math for programmers book" that uses pseudo code instead of math notation. I studied math notation in 8th grade and then forgot about it.


Possibly, but if you want to learn maths, then the notation is one of the smallest, easiest parts of it, and it's really helpful for the bigger, harder parts.

Code is usually way more verbose than maths notation, so things get a lot bigger and it can be a lot harder to see what's going on. Learning maths notation is like learning the basic syntax of a programming language related to one you know already - there's not much to it and it doesn't take long to be able to read it comfortably. If you can already code then you know the basics and many relevant concepts already.


"Coding the matrix" was the breakthrough for me in grokking linear algebra, and this is what it does. Things are explained in terms of matrices and the mathematical transformations, and then explained in terms of python data structures and a loop over the elements. And most of the examples are computer science, like rotating images.


I remember this course when it first came out, but didn't go through it since I didn't actually know how to program/code back then. Should I just buy the paperback off Amazon?


I didn't even know it was a course, I just got the book on Kindle. But I'd say go for it - as the other commenter said, it's cheap, and it doesn't require much coding knowledge, and it even explains most of what you do need to know if it's new to you. The real breakthrough is implementing the transformation in terms of fairly simple loops - which as a coder worked well for my brain. A non-coder might not find the advantage as big as I did, but I certainly don't think someone who can pick up some basic coding would struggle to understand what is being taught.


It's pretty cheap. I'd say go for it.


Check out this short excerpt of definitions and examples of the math "alien symbols": https://minireference.com/static/excerpts/set_notation.pdf They are really not that bad once you learn their meaning + very useful shorthand (you can think of math notation as a DSL with specific expressions for math operations).

Longer preview of the book: https://minireference.com/static/excerpts/noBSguide_v5_previ... and here is another preview of the LA book: https://minireference.com/static/excerpts/noBSguide2LA_previ... Both books have been pretty popular with the programming crowd. They use standard math notation, but there are lots of code examples and computing analogies, so you'll feel right at home.


This book (Data Science Bookcamp) uses actual Python code instead of math notation. https://www.manning.com/books/data-science-bookcamp


A Programmer's Introduction to Mathematics is probably what you're looking for. https://pimbook.org/


I bought the book attempted to study from it and I am not a fan. It covers topics too briefly to be called an "introduction" to mathematics. If you have a solid math background and need a refresher you may find it useful, otherwise I found MIT OCW Mathematics for Computer Science to be a much more suitable introduction, and it comes with problem sets and answers (for the 2010 course). You can also purchase the course notes in book form on Amazon.

https://ocw.mit.edu/courses/electrical-engineering-and-compu...

solutions https://drive.google.com/drive/folders/0B4G5KBKimr07WXRlT0VK...

physical book https://www.amazon.com/Mathematics-Computer-Science-Eric-Leh...


If you can't even learn the syntax how will you ever learn the semantics?





Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: