Shadoopy. Dango. Ray-Bella. Figgie.
If I told you those were names of actual dogs, would you believe me?
They’re not. They were generated by a machine-learning algorithm mimicking dog names after it “studied” a list of 81,542 dogs registered in New York City.
The experiment, which took just a few hours Saturday, was something I’ve wanted to try since I saw the playful, awesome work of Janelle Shane and her experiments using neural networks to generate paint colors, guinea pig names and Harry Potter fan fiction.
I happened to have some free time, and decided to give it a shot. Along the way I:
- built, in mere minutes, a computer in the cloud powerful enough for machine learning
- made and played with a recurrent neural network
- learned a little more about machine learning
- had a lot of fun
The program generated lots of names, including many that existed in the original data. Once I filtered those out, I had almost 400 computer-created, mostly plausible dog names. Here are some of my favorites:
The computer has no idea that these are names. Or words, even. It’s using a “recurrent neural network” to predict which character might follow a group of previous characters.
So after “fluff,” a good guess might be y. I stop the guessing game before the program gets too good, so it might guess the letter a instead. Good dog, Fluffa!
What’s also striking is that these character predictions include spaces, dashes, and carriage returns, so it actually learns to format the output as a list.
If you’d like to geek out about how I did this, or learn how to create your own list, you can read about the technical details in my original post here.