Learn Neural Networks with Go, Not Math [video]
youtube.com
youtube.com
Also what does Go magically do that any of the other abstractions over machine learning algorithms don't do? The answer is nothing. If anything you're just making it more difficult for beginners since the machine learning in golang ecosystem isn't fleshed out nor does it have the documentation trail that python does.
Though a more fitting title would have been "learn neural networks with this one weird trick" given the lack of substance here.
I'm not saying it's a great talk, but this particular critique of it isn't persuasive.
Every time I have to read code that implements a numerical algorithm, I have no idea what is going on until I reverse engineer (so to speak) the code back into standard mathematical notation.
And the reason it is more fun is because you are getting instant feedback, you fix the error and get a dopamine kick when it passed that error and so forth. All the programmers here know exactly what I mean.
The math, meanwhile, is harder because you might read description, stare at an equation. Hope that you "get" it. Then read the next statement, realize you might have misunderstood the previous one and so on. You don't get the same sense of progress, and one bit of confusion can throw you off track for a long time.
One contribution would be teach the math in an environment that is like programming. I am not sure what this would look like, but you would learn how to back propagate the derivative through the network, minimizing error at each step and forward propagate the signal. It can't just be a visualization because the student won't engage with it in the same way as a system with negative and positive feedback.
The video linked here is a pointless exercise. The speaker exclaims that learning formulas and notations isn't needed, but then she dives into an even more confusing code exercise that doesn't explain anything about what gradients are and why we use them. A total waste of time. Just explain the math.
I think it has to do with how, in programming, everything can be decomposed to concrete terms. If something seems vague, then it's possible to follow the execution of the code to find out what is actually happening.
Written formulas can be very ambiguous. I get the feeling that authors prefer to leave out as much info as they can get away with just for the sake of having the formula look "elegant." Many times, it's assumed you know enough to fill in the gaps, and it can be frustrating when you don't know where to even find that info in the first place.
Luckily the math needed is not that hard. Linear algebra and gradient based optimization are not out of reach for most people. If you already understand regression and maximum likelihood estimation, then you're almost there already.