Hacker Newsnew | past | comments | ask | show | jobs | submit | newsoul's commentslogin

Choose Your Weapon: Survival Strategies for Depressed AI Academics

https://arxiv.org/abs/2304.06035


Then, where to read more about this? People who built autograd and other frameworks like Pytorch, mxnet, etc. should have learnt them in details somewhere. Where? AFAIK mxnet came out of academia (probably CMU).


Here's what you do: you watch this video of Andrew Karpathy [1] called "Becoming a backprop ninja". Then you pick up a function that you like and implement this backprop (which is a different way of saying reverse mode automatic differentiation) using just numpy. If you use some numpy broadcasting, an np.sum, some for-loops, you'll start getting a good feel for what's going on.

Then you can go and read this fabulous blog post [2], and if you like what you see, you go to the framework built by its author, called Small Pebble [3]. Despite the name, it's not all that small. If you peruse the code you'll get some appreciation of what it takes to build a solid autodiff library, and if push comes to shove, you'll be able to build one yourself.

[1] https://www.youtube.com/watch?v=q8SA3rM6ckI

[2] https://sidsite.com/posts/autodiff/

[3] https://github.com/sradc/SmallPebble


I don't have a great answer. Most modern descriptions are shallow and/or unclear. My favorite discussions were actually in Werbos's original papers.

A nice overview was Backpropagation through time: what it does and how to do it, 1990. The rule itself is stated very clearly there, but without proof. The proof can be found in Maximizing long-term gas industry profits in two minutes in lotus using neural network methods, 1989 (which I believe was copied over from his earlier thesis, which I could never find a copy of).


Which book was used in the course?


D.B. Thomas for Calculus and Analytic Geometry

Later on, Tom Apostol for Real Analysis



The source code is much more interesting than some Twitter bro's hot take.

"We took a wrong turn w/ software."

... apparently.

Save your energy and check out the repo instead.

I don't totally blame the guy though. If you want to play the stupid Twitter game, you have to add a trite but provocative hot take to every post you make, lest your writings languish in obscurity. The only way to win is not to play, truly.


Takes me back .. once upon a time I was an admin on old OG Freenode + #C + #lisp and recall when that was floated to take potshots at and use as a beta test crowd.

The first non reddit team submissions were some very dry comp sci papers and tech manuals .. the cats came not long after.


He is not a Twitter bro though. He has developed software extensively. He is a PL researcher, a professor at BrownU, now working in computing education.


No doubt in real life he's a smart guy. I don't dispute that. It proves my point even more - when on Twitter, even the smartest people get reduced to playing the dumb hot take games.


That’s the point.


Thanks for the link. Among other things it made be feel old, as in I have a post on my blog from back then writing about the Lisp to Python switch that Reddit was carrying out and it’s interesting to see computer programmers that look like they’re in their early 30s or such and not knowing about it at all.

Those were more interesting and especially more vibrant times when it came to the web. Granted, the money was not as abundant as it is now.


Surprised to see these introductory courses haven't been mentioned yet.

These courses [0] [1] are on EdX and are taught by UBC Professor Gregor Kiczales. The explanations are so lucid it made recursion click for me. You can audit these courses without paying a single dime. They are based on the book How to Design Programs [2] which has much more stuff than the courses.This book is used in UBC, UWaterloo, NorthEastern and many other places.

Along the same lines there is another book for beginners called A Data-Centric Introduction to Computing [3]. It is used in Brown for their introductory courses.

[0] https://www.edx.org/course/how-to-code-simple-data

[1] https://www.edx.org/course/how-to-code-complex-data

[2] https://htdp.org/

[3] https://dcic-world.org/


DCIC is my favourite and it's more than a beginner book but the author himself teaches all of it in an accelerated course.

https://cs.brown.edu/courses/cs019/

For undersranding recursion there are two noteworthy books:

* A lot of people say this book made recursion click for them. *

"The Little Schemer"

https://mitpress.mit.edu/9780262560993/the-little-schemer/

* As the title suggests this ones specifically about recursion. (i like this one better because its in python/js) *

"The Recursive Book of Recursion"

https://nostarch.com/recursive-book-recursion


You completed DCIC with all the exercises? Did you do the course assignments associated with it?


I did most of the exercices but not the CS19 assignments.


How to Code: Simple Data [0]

How to Code: Complex Data [1]

These two part course rearranged my brain about what really programming is about. It is about working with data and the way the data is arranged determines how most of the program/functionality (pun intended) is written.

Programming is not a series of instructions to be executed by the computer. That was when assembly language programming was the main stay of programming computers. Not now.

[0] https://www.edx.org/course/how-to-code-simple-data

[1] https://www.edx.org/course/how-to-code-complex-data


Do you know any books which teach matrix calculus?


https://en.wikipedia.org/wiki/Tensor_calculus is a term you're much likelier to find as the subject of a book. Matrices are just specific special cases of tensors, after all, and mathematicians like to generalize.

A good book on differential geometry will also probably start with an overview of tensor calculus.


And multivariable calculus is the intro to that.


Hubbard and Hubbard's Vector Calculus is a great introduction to multivariable calculus and linear algebra that ends with an introduction to differential forms. And it has a complete solutions manual you can purchase as well.

https://matrixeditions.com/5thUnifiedApproach.html


I liked the following book very much:

https://arxiv.org/abs/1802.01528


I have learnt programming from the books "How to Design Programs" @ https://htdp.org/. It is fantastic. It sets in stone the good practices early on.


I will go with the book option:

Introduction to Algorithms: A Creative Approach by Udi Manber


I feel pure joy when I see HtDP mentioned anywhere on HN. This book made programming click for me. Turned me from fidling with code to thinking it through in a systematic way.

I hope the authors extend this someday to imperative programming too and compare and contrast.


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

Search: