Deep Learning like a Viking - Building Convolutional Neural Networks with Keras

Abstract

In this session, I'll show how to build a Convolution Neural Network to recognize hand-written runes from the Younger Futhark, the alphabet used by the Vikings. I'll talk about how CNNs work, how to build them with Keras, and how to use them from a web application using Flask and JavaScript.

Talk Description

The Vikings came from the land of ice and snow, from the midnight sun, where the hot springs flow. In addition to longships and bad attitudes, they had a system of writing that we, in modern times, have dubbed the Younger Futhark (or ᚠᚢᚦᚬᚱᚴ if you’re a Viking). These sigils are more commonly called runes and have been mimicked in fantasy literature and role-playing games for decades.

Of course, having an alphabet, runic or otherwise, solves lots of problems. But, it also introduces others. The Vikings had the same problem we do today. How were they to get their automated software systems to recognize the hand-carved input of a typical boatman? Of course, they were never able to solve this problem and were instead forced into a life of burning and pillaging. Today, we have deep learning and neural networks and can, fortunately, avoid such a fate.

In this session, we are going to build a Convolution Neural Network to recognize hand-written runes from the Younger Futhark. We’ll be using Keras to write easy to understand Python code that creates and trains the neural network to do this. We’ll wire this up to a web application using Flask and some client-side JavaScript so you can write some runes yourself and see if it recognizes them.

When we’re done, you’ll understand how Convolution Neural Networks work, how to build your own using Python and Keras, and how to make it a part of an application using Flask. Maybe you’ll even try seeing what it thinks of the Bluetooth logo?

About the Talk

About the Author

Guy works for DataRobot in Columbus, Ohio as a Developer Evangelist. Combining his decades of experience in writing software with a passion for sharing what he has learned, Guy goes out into developer communities and helps others build great software. Teaching and community have long been a focus for Guy. He is President of the Columbus JavaScript Users Group, an organizer for the Columbus Machine Learners, and has even has helped teach programming at a prison in central Ohio. In past lives, Guy has worked as a consultant in a broad range of industries including healthcare, retail, and utilities. He also has spent several years working for a major insurance company in central Ohio. This has given him a broad view of technology application toward business problems. In his personal life, Guy is a hard-boiled geek interested in role-playing games, science fiction, and technology. He also has a slightly less geeky interest in history and linguistics. In his spare time, he volunteers for his local Cub Scout Pack, goes camping, and studies history and linguistics. Guy lives in Ohio with his wife, his three teenage sons, and an entire wall of games.