I have to echo what others have said: great book idea, but not so hot on the model.
I studied linear algebra in college and I could use a refresher for AI, but I don’t want to study math in the traditional way, with convoluted abstract examples that lead nowhere. Hated it back then and hate it now. The prospect of doing it in code makes it infinitely more exciting so you’ve definitely got something going on there there...
However, I’m not going to get into another subscription, mainly because I don’t want to check every month to see the state of the project.
I’d personally pay you around $40 for an early access fee that also gets me the final product... It’d be a discount from your target price but I’d also be taking a risk (what if you don’t finish it?).
I’m favoriting this and will check how it evolves. Worst case, I’ll buy the finished product if the reviews are good!
I had the exact opposite experience of linear algebra in college.
It seemed like we (CS students) were just wasting our time running matrix algorithms by hand, while the math students were learning an actual theory, allowing them to intuitively understand all the algorithms much more easily.
I don’t want to study math in the traditional way, with convoluted abstract examples that lead nowhere
Have you checked out Gilbert Strang's lectures [1]? They're definitely geared toward numerical/applied linear algebra rather than theoretical/abstract.
I watched it, still either too abstract or too much doing math for the sake of math, not enough explaining why I would want to take the inverse of a determinants eigenvalue or whatever the fuck linear algebra is supposed to be about, because halfway through the course I still had barely a clue what the point was.
I agree on your assessment of Gilbert Strang's courses. So many here on HN recommend Strang's stuff. However, he's kind of the victim of his own success. If you've taken LA in college in the last 10-15 years, or any online LA class like Khan Academy, they teach from a geometric approach like he advocates and pioneered. Therefore, you're not exactly learning anything new, just a different person saying it; which, of course, might help. But it's still LA for the sake of LA.
Mind you, they are very good, and out of all online courses I've seen, the questions are actually hard and make you think and understand on a deeper level. Every other course I've seen have simple, fluff questions, if any.
Tim Chartier of Davidson College put out a class on EdX called Applications of Linear Algebra. It's more practical, but I found Part 1 to be too practical and not enough math. It suffers from the opposite problem. Part 2 may be better, but I didn't make it through. Plus, I found his style to be a little woo-woo. You might have some success with it because he actually does talk about real world scenarios.
Maybe you would get something out of 3blue1brown's series on linear algebra [1]. It will give you an intuitive, geometric interpretation for concepts such as a vector, a basis, an eigenvalue, a linear transformation, etc.
As for why you would want to know these things, well, linear algebra is finding applications all over the place these days. Everything from computer graphics to machine learning is jam-packed with linear algebra. And I'm not just talking about basic concepts such as matrix-vector multiplication. The singular value decomposition has applications in discrete optimization, image compression, the PageRank algorithm [2], computer vision [3], and machine learning [2] [4].
Having said that, you may find it very difficult to understand something like SVD without a firm grounding in the topic of vector spaces, linear transformations, spanning, linear (in)dependence, subspaces, eigenvalues, eigenvectors, diagonalization, and determinants. This is why SVD is one of the last things you learn in a linear algebra course (indeed, it's not covered until lecture 29 of Gilbert Strang's course).
Ultimately, it all depends on how relevant these things are to you. I would assume (hope) that because you clicked on this HN discussion that you're interested in learning linear algebra because you think it might be useful to you.
But that course is the very basics that you need before you can start doing applications. Just like you have to learn a bit of vocab and grammar before you can start conversing in a foreign language. Once you’ve done that course you could start to actually learn some AI or optimisation or whatever.
If you want, there is a course called 18.065 that he is written that is about AI and is far more application-based. He reviews the 30 hours or so (by lecture time) of his famous LA course in the first 5 or so lectures before springing off into everything you need to end up with AI.
But the contents of his classic course (having an intuition for the 4 subspaces, describing and decomposing matrices in terms of the eigenvalues and vectors, analogies for non-square matrices) are in no way maths for the sake of maths, they are fundamental to understanding any onward applications of LA. They are the very basic words and grammar that let you start using LA in real combat situations. So that you could pick any random paper on ai or stats or control theory and actually be able to follow it rather than just be staring at hieroglyphics. It’s really worth the 30 or so hours of your life.
Well in the end it's still LA you're watching. Linear Algebra is the study of those linear systems, the determinants, the eigenvalues etc. How they behave and why. The abstractness is the "nature" of the LA approach and a bit of mathematical curiosity is needed.
If that's not what you're looking for than maybe you won't be satisfied with any variant of an LA introduction. There's probably a lecture somewhere which teaches the math in combination with an application.
LA pops up in many places. For me, I've tried reading enough books and papers over time which assumed I knew what a basis or a singular matrix or SVD is that I decided to just jump in and learn this stuff. I went through Strang (took me perhaps 100-200 hours of study) and I'm very glad I did it.
I'm taking a refresher course on linear algebra from UT Austin and love their approach - good mix of algorithms, proofs, exercises, and coding assignments.
I can see the appeal of the lower barrier to entry, but I would need to follow the project every month to see if they’re delivering. Really don’t want to be burdened with that.
The book looks interesting and the associated libraries (neanderthal for e.g.)
But while going through your performance comparison [1], I feel something is off.
I am not that familiar with libpython-clj and how it works, but looks like you are loading python from within the JVM and in turn the python is loading the C++/fortran OpenBLAS libraries to get the numerical calculations done for the Correlation Coefficient. I suspect this multi-level indirection is creating it's own performance overhead.
For now, I don't believe the performance benchmark are telling us the true story :-)
But after saying all that, I love how concise is the clojure implementation is.
Yeah, well, that's a nonsense comparison: the neanderthal package is freaking lapack (in C++), and they used a java trick to get Clojure fast on it (basically run the C++ on allocated unmanaged memory blobs, which is the only marginally sane thing one can do in a language like Clojure). I wrote an early version of this in Clojure before throwing my hands up at the atrocity of doing this sort of thing. They also wash over very obvious (to anyone who knows how a computer works) issues with using Cuda and Clojure numerics in general. Misleading and Fail statements.
If the whole book is filled with such chirpy and wrong assertions, they should fall on their swords for offending their numeric linear algebra forefathers and the shame of it all.
I saw a great talk explaining linear algebra where the presenter used it to solve the angles of an arm joint to place an animated robot arm at a specific co-ordinate.
I think it might be this actually, can't watch it all right now to check. Demo I'm thinking of should be https://youtu.be/3v75aX5-gSA?t=1436
> I don't like Strang books that much as I find them a bit verbose
I'm not sure I agree with you. I remember his elementary calculus book, where he states and proves the fundamental theorem of calculus on the first two pages (including the definition of derivative and the definition of integral). He says something like "this is not a car analogy, this is the real thing and we are already done, the rest of the book is just minor details and examples". I do not know how you can be more concise than this, considering that half of the first page was taken by a cute drawing of a speedometer and an odometer. That you call verbose?
The subscription model gives you access to the drafts of the chapters and full book access at 8 months. For $9 at the lowest subscription grade this is $9x8 = $72 which seems like a fair deal to me when going through amazon for similar subject titles.
My experience of speaking with authors who have published books is that most of the money stays with the publisher and not the author which is a real pity. The net effect is the discouragement to write books which is counter to progress.
The subscription model is really interesting to me and I hope it makes a difference to the book publishing paradigm.
I would only buy the book if you put the pdf freely downloadable on your website (I systematically do that to support authors, because I love "dead trees").
Please consider an alternative viewpoint: you can try the book draft for $9, and if you don't like it, just don't continue subscription. Total cost: $9.
If you like the book, please consider that 100% of the book proceeds go towards the development of related free open source librarieshttps://github.com/uncomplicate
I've bought plenty of MEAP books at Manning that were incomplete. The difference is that I only had to pay the $30-40 (normal book price) one time and never think about it again, and new revisions would just be delivered to me.
There have been several early access books where the author needed to take a (well deserved) break, or be slow at delivering new chapters because of other revisionary work. This has sometimes meant a few months without new content, which I was OK with in that model.
In this model I could easily end up spending way more than than that, and every month I have to make a decision if it's worth cancelling.
Not only that you have another book on there that's "early access too" so you are juggling two books (and books are not trivial things to write and get finished/polished). So how am I to expect you'll get either done in a reasonable time.
So sorry, I'd be happy to give you a flat $30 for early access to the book and full access to the ebook when it's finished, but I'm not going to subscribe and hope it's in a good state prior to reaching that point in monthly fee.
This is despite I think this book is very much what I'm looking for as I'm wanting to get into 3d graphics, but I'll pass.
I've bought early access book from Manning as well, and after few months of silence the author decided to drop the chapters that I was looking forward. Left a bad taste in my mouth.
You should explain it clearly on your page, not here.
I also was confused by the model. The model you try to use is obvious for you but in order for people to understand you need to make an effort in communication, because most people are not used to it.
You have to be extra careful because people have fear of the unknown, so you need to also get rid of people's fears, you do it here("if you don't like it,just don't continue the subscription"), but you should do where people take the decision.
I think the model makes sense but you need to explain it in the buying page as a benefit they we will be getting. For example:
With this subscription you will be supporting the development of free open source libraries that will become yours forever.
Now I see that you display this information but I did not see it while being interested on the book, so it is not visible enough.
If I were you I would not try to train my customers, it is too much work, I would offer the book plus code plus 8 months of subscription for just $119!!
Then in the subscription I would give my customers something they can not get easily out of it, like the network connections and support with people interested in this area all around the world(the people that buy your book), so once they are subscribed, and they are used to it, they have to remain subscribed.
The value for me of those open source libraries is zero because I don't use them. Only if people use them, they can value it. You need to get people in the loop first.
Thanks for the tip. I was wondering about these concerns early in the process, but my target audience, programmers, seem to be getting the point as I am satisfied with ther reaction to the current model.
Maybe it could work better, maybe I could get more money with different approach, but I am a programmer; my goal is to concentrate on writing good software and good books. If I was a marketing genius, I would have probably chosen different career path :)
weird game theory view here, would you not be incentivized to never finish the book because people might be waiting for that 1.0 moment to cancel their subscription?
If a significant part of the value is the libraries, then you must mention that more prominently. Is the goal to write/sell a book with code examples, or to sell a book subsidizing the development of open source libraries?
Weren't they always ? ...if you consider editions. Which essentially is what the author's promoting - access to draft editions (and presumably updates, post-release -- this wasn't clear).
Exactly. Books have always been subscription based. Difference is it’s not monthly. But for that monthly subscription you get so much. Plus the good feels knowing you’re supporting some great open source work.
Agreed. I backed an 'alpha' book 3(?) years ago now. First 2-3 chapters were pretty good. Unfortunately, those first few chapters were all I ever got. The book never advanced beyond that... so.. money not well spent.
I'm now in the boring "I give you money, you give me finished product" camp.
Whaa? I know you are not the person who made the book I was talking about.
I was agreeing with the other comment that, having been burned by 'alpha' books in the past, I'm disinclined to use the model again in the future. I similarly feel the way about video games. I'd rather pay for a finished product than a speculative one.
The two classic graduate texts for numerical linear algebra are Matrix Computations by Golub and Van Loan and Numerical Linear Algebra by Trefethen and Bau.
The reference you are looking for (includes executable C++) is Numerical Recipes by William Press et al.
There are a couple other good ones as well that are more broad - e.g. Quarteroni, Sacco, & Saleri Numerical Mathematics also covers numerical diffeq, convex geometry, & approximation theory.
> The reference you are looking for (includes executable C++) is Numerical Recipes by William Press et al.
I bought this book hoping it would be to floating point what Hacker's Delight is to integers.
It is not that.
I'm not really sure what it is. Most of the numerical algorithms I wanted weren't included at all. Those that were, like random number generation, were out of date and covered with much less rigor than you can find online with some Googling. IIRC their algorithm for generating a random float in the range [0,1] is just wrong.
The book does indeed include executable C++. But the C++ it includes is a travesty. It's C++ written by someone who sort of understood C.
Trefethen&Bau, Golub & Van Loan and Demmel's "Applied Numerical Linear Algebra" make up the holy trinity. I don't know what audience the OP book is supposed to serve, but it's evident on inspection; it ain't me.
Author here. I personally don't have any strong feelings against C++ (it's just a language/platform I don't prefer), but my target audience is delighted that they don't have to mess with C++. It's one of the main selling points of the book!
I can understand why C++ isn't appropriate for this. Object-oriented programming has little to do with linear algebra, and a nightmarishly-complex language that's desperately trying to reinvent itself also isn't appropriate for pedagogy. But you still need a lingua franca, a language you can use to express the relevant principles without trying to evangelize one arcane functional language or another at the same time like so many authors try to do these days.
Being a relatively straightforward procedural language, C works well for this purpose. Everybody doing numerical computing is at least familiar with the fundamentals of C programming, or should be.
Is there some institutional resistance to plain old C, or is it just a matter of widespread personal prejudice among both students and teachers?
You can easily see the answer to this question when you try to write (and copmpile, and package, and use as a library in another software) in C any of the examples written in higher-level dynamic languages (Clojure, in my case, or Python, Julia, etc. if you prefer that).
Compare the number of LOC or any other metric. Once you have high-level access to underlying algorithms (implemented in whatever native technology, but hidden), it is much, much, simpler to work at high-level.
Genericity. It is the C++ templates that make the language an invaluable tool for implementing, efficiently, numeric algorithms in general and calculations with matrices in particular. (That, and operator overloading for aesthetics: you’d want to be able to write A + B for their sum.)
My interpretation of this subscription landing page was that I could preview a few pages from the book to see if the writing style worked for me. I wasn't able to figure out how to do so, as the 'AVAILABLE' link next to the linear algebra refresher simply went to a Patreon page full of locked/unavailable posts. This looks like it could be nifty, but the ultra-polished marketing is too focused on paid conversions and doesn't meet the basic necessaries of "Is this content valuable to me?".
Is there some sort of preview material?
I am always quite skeptical about mathematics through programming books, so it would be nice to get a feel for it's rigor.
I am trying to read Axler's book and it is proving to be extremely boring to me (no offense to the author) but this post gave me an idea that I should probably explore a linear algebra library along with the book to make things interesting.
I also find Axler unbearable. If you are interested specifically in matrices, the book by Denis Serre is quite a masterpiece. And if you are interested in numerical linear algebra, the book by Tim Davis "Direct Methods for Sparse Linear Solvers" is also extremely beautiful and readable (the goal is not the software implementation in itself, but most of the presented algorithms are illustrated by pseudocode, and some of them even in C).
Does this include "traditional" numerical linear algebra (e.g. stability, conditioning) or is it the modern deep learning interpretation that linear algebra ≈ matrix multiplication?
I studied linear algebra in college and I could use a refresher for AI, but I don’t want to study math in the traditional way, with convoluted abstract examples that lead nowhere. Hated it back then and hate it now. The prospect of doing it in code makes it infinitely more exciting so you’ve definitely got something going on there there...
However, I’m not going to get into another subscription, mainly because I don’t want to check every month to see the state of the project.
I’d personally pay you around $40 for an early access fee that also gets me the final product... It’d be a discount from your target price but I’d also be taking a risk (what if you don’t finish it?).
I’m favoriting this and will check how it evolves. Worst case, I’ll buy the finished product if the reviews are good!