What am I looking at?
You good dawg?!?!?
Why would you go through the trouble of making everything?
Its really not that complicated and boils down to three reasons:
- Rewriting an existing library is a really good way to get insight into why something is done the way it is, and to understand it at a deeper level
- Developers are bad, and are using dated libraries because they are convenient.
- I think its fun
I spent a whole semester taking this class, and I didnt learn a thing... so why is this a section? Well some time after the class I decided to build a distributed learning tool. You may find yourself asking "How does it work?" Honestly I have no idea, I wrote it in a daze one night, and have still been trying to figure out how I managed that, but from what I can gather it works something like this:
- User submits a number to test
- User's number is sent to the server which will then send the User's number to all connected users along with a classified number from the mnist dataset
- Upon receiving the number the User will calculate the difference from the known number and the User number and send that back to the server
- The server will store the response data and find the minimum of all the calculated differences
- Thats it, thats how KNN works in a distributed example. This could be expanded to other learning approaches such as a neural net, but this is a pretty good proof of concept. Check out the code on my Github