My initial instinct was to write some software that compiles into a binary executable for various platforms that people can install to become a distributed node for calculation.
It is kind of like how the SETI program works, whenever your machine idles, you give up some of your processing power to the cause, and you will help SETI perform the various calculations they need and send the results back to them.
Then I saw this video in question, I will link it here below.
So what can we use this for?
Training weights is a great candidate first and foremost.
While a new neural net is still in training, clients (or bots) could connect to the web service, query for a piece of training data, and the model it is training for, run the calculation, and return the result to the web service, which will then place it in the right spot in the database.
Synthesizing new training data is a relatively new concept in the field of neural network training, and does pretty much what it says on the tin.
The idea here is to find a way to generate more training data than you have originally, by either combining bits of data you do have, or coming up with new and clever ways to generate new data from scratch.
In an example I heard about, people were developing a handwriting classifier, and one of the methods they used to synthesize more training data was having a script download random images from the internet, opening those up in a word document, and printing a letter on the image in a random font.
Because they new which letter they were printing, they could now tell what the expected output of the training step that used this data should be, while still having a completely new piece of training data.
The results, as I am told, were incredibly solid.
So this would suit itself rather perfectly for distribution, especially because the processes on the Master/Control server would not need to know anything about the synthesizing process itself, all it needs to receive is the newly generated training data, and the expected output, which can be easily provided by the distributed node, once it is ready and sending it to the server.
Of course we can not use the same tactics that are described in the BlackHat video, because we do not want to do anything nefarious, but we sure can set up specific pages on the Internet that people know they can visit to become part of the research, just by visiting the page.
Another idea I am toying with is to open up the web service altogether, with some sort of API key structure, and allow anyone who signs up to create their own entities on the Master/Control server, while all the "bot" clients indiscriminately pick up tasks from the database and perform the necessary actions.
This would really democratize the potential computing power this can deliver to our research.
I would love to hear some ideas on this, so if you got 'em, show 'em.
Follow me on social media to get updates and discuss A.I., and I have recently created a slack team to see if people are interested to forming a little A.I. community,
Twitter : @ApeMachineGames
Slack : join the team
facebook : person / facebook group