We have seen many recent advancements in machine learning. IBM’s Watson beat top human champions in Jeopardy. Google’s AlphaGo defeated top human players in Go. Today, machine learning is no longer limited to corporations with big budgets. Cloud computing has lowered the barrier to entry for machine learning. Cloud computing can now provide the computing power required for machine learning that was previously out of reach for most.
While we have not reached the stage of science fiction, like creating machine intelligence like C3PO, it is possible to do a lot. Some popular uses of machine learning today include forecasting weather, filtering spam and predicting product demand. Those types of activities are within reach for most with today’s technology.
Just how accessible is machine learning today? To find out, I dedicated try out some popular machine learning applications and cloud services. I did two experiments. One model predicted whether people would be accepted or denied for a loan. For this, I deployed a Spark cluster with XGBoost. A second model was for image recognition. For that, I deployed a Mesos cluster with Tensorflow. All of these tools are open source.
XGBoost and Tensorflow are two different machine learning applications. XGBoost has been popular at Kaggle competitions. XGBoost performs well for structured data and for problems like credit card fraud detection. Tensorflow is a deep learning framework, used today for cognitive capabilities like speech and visual recognition. Spark and Mesos are two different computer clustering frameworks. One could use a variety of clustering frameworks.
To automate the deployment, I used an open source tool called Terraform. Terraform can deploy virtual and physical servers and supports many cloud providers. Once configured, I could deploy both machine learning applications with one command, “terraform apply”. Check out my friend Yang Lei’s Github, for sample instructions on to run XGBoost on Bluemix, IBM’s cloud platform.
I did my experiments using Bluemix virtual servers, object storage, and file storage. If I was doing a more serious test, I would use Bluemix bare metal servers with GPUs (Graphical Processing Units) for Tensorflow. GPUs provide significantly better performance for deep learning applications. For example, one of my colleagues processed images with Tensorflow 185 times faster using GPUs than virtual servers.
Some might argue that machine learning is still too expensive for mainstream use. Machine learning applications typically perform better with fewer big servers with lots of memory, networking cards, and GPUs than many lower-cost commodity servers. That said, what cloud providers offer today make machine learning more accessible than ever. We can expect advances in machine learning to accelerate as cloud computing offerings keep getting better.