Tuesday, August 7, 2012
(Cross-posted from Google App Engine Blog)
Editors note: Today’s guest blog post comes from 17-year-old Brittany Wenger, the winner of this year’s Google Science Fair. Brittany built an application on Google App Engine called the Global Neural Network Cloud Service for Breast Cancer. This artificial neural network can detect complex patterns in data, learning how to classify malignant or cancerous cells it hasn’t seen before. Learn more about her project.
When a patient has a palpable breast lump, the first step a doctor takes is to determine whether the mass is malignant or benign. One relatively simple diagnostic procedure is a form of biopsy called fine needle aspiration (FNA). Though these tests are less invasive than others, they are historically less accurate as well. My goal was to create a tool for doctors to use when interpreting test results from these procedures.
For this project, I decided to create a neural network built on Google App Engine, using data published to the Machine Learning Repository by the University of Wisconsin. A neural network attempts to replicate the brain as a form of artificial intelligence through networks of computers and can be used to detect extremely complex patterns. It learns from its mistakes, so it can classify a case it hasn’t seen before as malignant or cancerous based on specific criteria like clump thickness or bland chromatin. Because the diagnostic power of the network improves the more data it has, building on App Engine is a way to ensure the app can continue to scale easily, no matter how much information goes into the system.
I got started integrating my neural network application code, written in Java, with App Engine in a few hours using the SDK’s Greeting Service sample code as a starting point. The application has two main parts, a training module, that implements the neural network itself and runs the training process over the input data stored in static files, and a web interface that takes input data and returns the network’s analysis.
Google App Engine provides the scalable infrastructure I need to collect information from every hospital in the world and run when there are many concurrent requests, as usage of my application increases. Because my network is built as a cloud service, not only is my app working on the web, but mobile tablets, smartphones, old PC systems, or new technologies can also easily access the service from any hospital with an internet connection.
The neural network I developed is 99.11% sensitive to malignancy when using leave-one-out testing with original data. Thus far, I have run 7.6 million trials. Moving forward my goal is to make the application accessible to the global medical community so more data can be deposited and used to improve the diagnostic power of the network.