122 comments

[ 4.9 ms ] story [ 192 ms ] thread
Has anyone here read the book? what do you think about it, does it deliver on the promise?
Author here, the first 3 chapters are in pre-publication. It is my hope that people are willing to check out said chapters and help me refine it in any ways it doesn't live up to the promise. Anyone who does, feel free to reach out to me @iamtrask or via the book's Forum.
To the first question, apparently "no", since the book is likely not yet written.

Welcome to the internet.

Is using GitHub pages for promoting and selling a non open source project really appropriate?
If it's not, i'm happy to change it. It's just my blog.
Why wouldn't it be? He's just using it as a blog.
Please change the title to say it's not free/open source.
Since when everything posted in HN should be free/open source?
I get that paying for the MEAP will eventually get you access to all of the chapters, but it seems a little steep at this point. I'd a lot more willing to pay, say, $10 for access to only the first three chapters, and then pay more if I get hooked. I'm guessing that isn't possible.

It also stung a bit that the link said 'Click To See the First Few Chapters' when in fact you click to see the first chapter and pay for the rest.

Thanks for the feedback. I'll update the link title to be more precise.

Also, FWIW, I'm offering free Q/A for feedback on those chapters (assuming i don't get totally overwhelmed).

Having gone through the first chapter, I agree, if something like what the poster above mentioned is possible, that'd be preferable for my situation as well. Just my 2 cents.
Here's a 50% off coupon code, so only $20 for the whole thing

"mltrask"

(comment deleted)
Not exactly the same, but here's a 50% off coupon code for the whole thing, so only $20 for the whole book.

"mltrask"

I'm interested but thought scikit-learn was the go to for Python machine learning. Is there a reason there is no mention of it?
scikit-learn would likely fall into the category of "black box" frameworks the author mentions. If I understand correctly, this book will let the reader gain an understanding of the underlying algorithms from an intuitive standrpoint.
It is worth noting that scikit-learn does value clear understandable implementations, so you can actually pop open the source code and expect to find something other than a black box. Now, in many cases you'll have optimization work that means a slightly less obvious approach is taken, but the scikit-learn maintainers do work hard to try and ensure that, if you want to learn, you should be able to open up the code and do so.
scikit-learn doesn't have a strong neural network codebase -- for anything not NN based they've largely got you covered (along with good infrastructure tooling for pipelines, cross validation, hyper-parameter searching etc.). Contrary to the impression you may get if you only follow the current buzzwords there is a great deal of value in machine learning right now beyond NNs and deep learning. On the other hand if deep learning is what you want to do, scikit-learn is not currently the best library for that.
That comes back as 'access denied' for me.
(comment deleted)
For people who are getting "Access Denied", I have a local copy. Send me an email at <my username here> at protonmail.com.

EDIT: And reply to this message.

Just sent you an email.
I get:

<Error> <Code> AccessDenied </Code> <Message> Access Denied </Message> <RequestId> 0EDEA284D5DB49F8 </RequestId> <HostId> XFsWH6DAZg2XergKFcQzu6qYFMvMd71dLlmHPHK9I0zQAwCk4B7c8pVbC499SAWMWTkuyGZo/Q0= </HostId> </Error>

Why did it get removed? I can only seem to view the first chapter now. Which really isn't enough to tell me if I'll like this or not.
Can't edit my post - but the links did work at first, sorry!
There's another book from this publisher called Grokking Algorithms. That one left me very impressed. Usually, I don't care for any "simplified/easified/dumbed-down" books because they often feel like a compilation of buzzwords with all the important bits removed. I thought Grokking Algorithms was simple, yet very meaty/substantial if that makes sense.
I believe all the "Grokking" books have the same editor with very high standards. :)
To the author : What else do I need to know besides basic python and algebra? Since I am not a python programmer, can I translate the theories into other languages easily?
Hmm, you certainly can, but many of the intuitions come from reading little bits of python code. It's intuitive but I'd recommend doing a python tutorial first.
In a similar vein, is it using python specific libraries or would the examples be easily portable to other languages?
Not the author, but in the blog post he says he's using [numpy](http://www.numpy.org/). With google you might find similar libraries for the language you want to use, with a quick search I just found a quora post with a few similar libraries listed for C++.
what are those libraries? Thanks.
I've been learning about neural networks lately and implemented mines in golang. The biggest problem I had was that python is not chosen randomly: neural networks scientists use it because of numpy.

Most importantly, numpy makes it really easy to deal with matrices (~ array of arrays). You just make operations on them as if they were classic numbers (so, you can do `a + b`, where both a and b are matrices).

While translating it into other languages not having numpy is indeed possible, expect a bit of intellectual gymnastic.

I don't know which language you targeted, but for those who wish to use golang, I made this matrix library: https://github.com/oelmekki/matrix

EDIT: oh, btw. I'm initially a ruby dev. I've learnt python just enough to be able to understand NNs code, that was easy (took me an afternoon). I won't pretend this makes me a python developer, but learning just enough to translate code in an other langage is straightforward.

I plan to use Java since that's what I am mostly familiar with. I googled a bit and I think there are couple[1] of Java libraries to handle n dimensional array. Lets hope it will work out.

[1] http://nd4j.org/

It seems like nd4j has everything you need. Just remember, when seeing calls to the `np.dot()` function in python's numpy that it is the "dot product" operation on matrix, which is also known as standard mathematical matrix multiplication, which in turn nd4j is calling `mmul` ("matrix multiplication", in "Linear Algebra Operations" section).

When numpy is using the * operator between two matrices, it basically just does a cell by cell multiplication

ie:

    result_matrix[x][y] = matrix1[x][y] * matrix2[x][y]
Is there a subscription form, so that interested users can be notified when the book will be ready ?
Read sample chapter. Indeed, it's shockingly easy without being obvious. Hats off.
Well, it should be, since there's nothing of consequence in it.

IMO this topic in Ycombinator is being heavily blogspammed on this book and the topic should be deleted.

Hey William it's a great book. The beginning was great--it was a great intro.

I think the book is still too long. Some of the passages are huge, with a long long blocks of text. There's a lot of filler words in there like "which is a bummer", and a lot of "say..." dot dot dots. As a reader, you need to spend mental energy in trying to figure out what is the key essence you are trying to convey in each paragraph--this would be fine if the book is dense to begin with, but since you are trying to make this a concise intro, maybe it would be best to reduce this mental energy requirement to the absolute minimum

A bit if feedback is, read the paragraphs your wrote, ask yourself "what is the exact point I am trying to convey here?", and the remove words that can be removed, without taking away from the point. You want the paragraph to be as short and concise is possible, since that's what makes your book different from all the other "dense" books out there on the same topic.

If someone in the book store opens up your book and "skims", if your paragraphs are clearly small, with lots of whitespace between paragraphs, then even without reading the text content in detail, the person can immediately tell your book is special, and completely different from all the other books on NN in the bookstore, and will be more likely to buy it right away.

I think at the beginning it was great. The use of everyday examples and analogies made it very quick and simple for someone reading it to "get" what you mean. But as the chapters progressed, e.g. chapter 3, the text gets more dense and examples get fewer--in the later chapters it looks like you got more excited about the technical details, and the calculus math etc, and the later chapters no longer seem to relate to examples as much or are as concise as before. The later chapters look more and more similar to the other denser literatures in the field

In any case, overall it's a great book. It's very unique I have never seen this condensed approach before, and very special compared to all the other NN literatures out there. It's very refreshing. I'm sure it will inspire a new generation of machine scientists who will remember this for years to come!

Thanks for writing this!

When I saw the premise of the book I was initially turned off, fearing an attempt at trivialization of the ML subject matter, but after reading the intro I kind of like it. It's intuitive and would work well as an introduction for hackers.

It seems a good way in ML is to hack your way around libraries until you get the feeling, and only after that start reading up on theory or doing some ML classes. The other way around is dry.

An editor. Behind every great writer was an even better editor.

For technical documentation, it's actually better to hire a really good technical writing editor than a tech writer. Have the engineer spew out the right ideas, and then the editor puts in the magic that makes it an effective read. It's an easier process than trying to teach the subject to a tech writer.

We have an oreilly book dropping on deep learning next month at strata hadoop in new york. We've been working on it for a few years now, but yes: can confirm. Our editor has been amazing.The last 10 ft and minor tweaks have been the biggest lesson for us in writing this.

(If you click this link: warning: it's not python)

https://amazon.com/Deep-Learning-Practitioners-Adam-Gibson/d...

Warning: if you click the above link you will be cookied with an affiliate tracker, zippylab-20. Even if you buy other products, they will be notified of the exact items purchased and will receive a percentage of your purchases for up to the next 24 hours.

The amazon affiliate panel shows an item by item breakdown of any purchases made by cookied users, goodbye private purchases.

Here is a non tracked link:

https://amazon.com/Deep-Learning-Practitioners-Adam-Gibson/d...

Oh good find! I actually jusy copy and pasted this from my search history. Thanks for the catch. I will be more careful in the future. Completely my fault there.
You can still edit your link in the earlier comment. Actions always speak louder.
I sadly can't. (It's past the edit duration)@dan is welcome too though. Believe me authors don't make money from their books anyways :P (at least when going not self publishing).
> agibsonccc 9 hours ago [-]

> goldenkey 3 hours ago [-]

so no he can't.

So now we all need to delete our cookies....
This looks great! Any chance this book is available before then via O'Reilly Early Release etc? Even just the ToC would be nice.
Every so often I see something insightful, and surprising, and this is one of them :)
That's one of the nicest examples of constructive criticism that I've come across in a long time. Bookmarked for future reference to help me become better at this.

Thank you for writing this!

I know DL. but will never use Python... 23333
Python feels like a pseudocode and is a popular language among hackers and data scientists. As a result, there are more examples, tutorials to get started, that's one of the chief reasons many choose it to learn new concepts.
I don't usually buy programming books. But when I do it's usually with manning. I think this will be the first time I will actually learn about deep learning. Anyone got one of those 50% off coupons?
> Anyone got one of those 50% off coupons?

Googling around usually gets you atleast 39% off. Here is one that worked for me ctwgeopytw

Signing up for their email usually gets you one of those soon after the book is announced and once close to publication date.

How is it different from Michael Nielsen's book?
This is very much like Collective Intelligence book but targets deep learning. I am really excited. The draft seems pretty good.
The discussion of gradient descent was excellent. So far I'm quite impressed. As others have said the question is going to be whether you can succeed at building on this base in a way that makes the later topics accessible.

A nitpick is that you use the words "matrices" and "differentiable" at the end of chapter 2. Maybe this is okay because you are signposting that these concepts will be explained but if you are aiming for high school algebra level readers with some python experience this could intimidate people.

He did say 'high school math' and not just algebra. It would be a pretty crap high school math course if it didn't cover linear algebra and beginner-intermediate calculus.
They should have called it "Learning Deep Learning Deeply"
"Deep Learning, Deeply Learned"
It's actually quite a shallow treatment. That's OK. Presumably, most folks who just want to use the things don't want to know about transience in chaotic attractors or VC-dimension and Radamacher complexity and stuff like that.
Publication in Spring 2017 (estimated)

:(

that's very conservative... i hope it is published long before then :)
Thank you for writing this especially on recommending memorization. I used to do this though I never thought somebody else would be doing this to grok on to something since this would be a crazy idea for others. Was really surprised about that.

I hope you will use spaced repetition in which the reader will have a base from which to move on a deeper level of understanding. Can't wait to buy this book soon.

(comment deleted)
Is there any chance you (William) could add hand-drawn illustrations and flow-charts? :) This makes a book outright welcoming IMHO. I loved that style in Grokking Algorithms (or even in Getting Started in Electronics by Forrest M. Mims III, if you want a distant example).

Thanks for your initiative, will buy the book soon as it is available.

Why don't the author spend energy on writing some book on learning javascript or learning c++/java.

The problem is that the author look disillusioned that with only high school math he can explain deep learning.

This is height of misguiding people on a large scale. I wonder how these people are even allowed to write a book.

I know it is silly and probably been taken care of. But in case, from the sample in chapter 3-

  def neural_network(input_data, weight): 
    prediction = input * knob_weight 
    return prediction
First chapter was a great read! Will the following chapters be released all at once or one by one when they are ready?
WTF is it a good read? Rah-rah stuff on why one should study NNs? Geez!
Is everyone here buying the $40 ebook?
(comment deleted)