Implementing a Convolutional Neural Network from Scratch in Python
victorzhou.com
victorzhou.com
With that, thank you Victor. Specifically because you did not do this at all and instead wrote a very easy to follow guide. I think this type of learning material will be very useful for CS and mathematics. The idea that very complicated algorithms must be explicitly implemented and then walked through, rather than symbols in a white paper will help make the mathematics of CS more applicable to everyone.
And to anyone bringing up numpy, it is at a level of "prepackaged" I'm fine with. I'm not going to raise my own pigs and chickens to make a breakfast burrito, but saying I did it from scratch by microwaving a frozen one isn't going to cut it either. Numpy is like the basic ingredients to the recipe. While something like sklearn or tensorflow are perfectly acceptable, I wouldn't say that's the best method for learning CNNs.
That said, the book "Data Science from Scratch" is great, and I'd recommend it to those looking for a deeper understanding than just "import sklearn".
I need a Whitepaper Rosetta Stone. And this article is one such example.
I saw this very same posted here in HN or Reddit last week methinks, and one of the top comments was complaining preciselly about numpy.
You disarmed that point right from the start, so kudos.
Previous discussion on HN of the "introduction to Neural Networks" referenced in this article: https://news.ycombinator.com/item?id=19320217
Runnable code from the article: https://repl.it/@vzhou842/A-CNN-from-scratch-Part-1
There seems to be a mismatch here with 4 and 8. Probably 4 is wrong.
He has some code which is pretty easy to follow to go along with the article: https://gist.github.com/karpathy/d4dee566867f8291f086
But CNNs only deal with translations. What if the image of the dog is rotated?
For some objects though, even adults are not instantly good, reading text upside down is something that is initially very hard, but with some practice it can be done, I've met some teachers that can do it from years of tutoring people from other sides of desks.