Recently Raj Verma (President & COO of Hortonworks) spoke to Jim McHugh from Nvidia at the DataWorks Summit keynote in San Jose (video). Jim began by talking about how parallel processing that is used in gaming is also essential to Deep Learning*. And the lifeblood of Deep Learning is data. With its insatiable desire for data, Deep Learning is best suited to customers that have lots and lots of data and, naturally, Hortonworks customers come to mind. The paradigm shift comes to how data at scale is the the new way to develop Artificial Intelligence applications – or how it is used to train new models that are the critical component of these applications.
What are the applications of Machine Learning? Jim McHugh gave two examples: healthcare and autonomous cars. In healthcare we are seeing models that are better at predicting patient outcomes than health practitioners. For example, Deep Learning models can be better at recognizing images than radiologists. In autonomous cars we are seeing applications of a variety of types of models: some are responsible for perceiving (e.g. detecting signs), others for modeling the behavior of other cars on the road, and still others learn from the human drivers how to actually drive a car.
The key takeaway here is that none of the rules are hard-coded, but rather they evolve through incremental experience or exposure to massive amounts of examples.
Other hot Machine Learning examples that Jim mentioned were fraud detection, customer service (by understanding customer sentiment and recommending the next best action, e.g. the right person or product), deep insights on asset and supply management, smart cities and drone delivery. And what he really stressed, was that before any model training can take place, data preparation and data organization are critical, pointing to the Hortonworks Data Flow (HDF) and Hortonworks Data Platform (HDP) that together manage the entire data lifecycle, from the edge all the way to the data center, on-prem, in the cloud, or in a hybrid architecture of the two. Only then applying Nvidia’s powerful GPUs to train Deep Learning models to drive new insights makes sense.
There are three key enablers driving Deep Learning:
While typical Machine Learning, such as linear regression, random forest etc., can take place using a cluster of powerful servers with multi-core CPUs, Deep Learning has much heavier processing requirements. This is where new Graphical Processing Units (GPUs) with 1000s of processing cores come into play. This is why IBM has recently released PowerAI with NVLink optimizing GPU performance for key open source deep learning frameworks. And the competition is doing the same by focusing on removing disk, memory, and CPU bottlenecks, and releasing faster-and-faster GPU cards with tens of TeraFlops per card computation capability. Ultimately, faster processing at a lower cost allows more companies to develop their own unique Deep Learning solutions.
The ecosystem of open-source frameworks for Deep Learning is also fast-maturing. TensorFlow (Google) has seen the highest spike in community contributions over the past year, while others have their champions and large companies behind them, such as Caffe (Yahoo!), CNTK (Microsoft), MxNet (Amazon), Torch (Facebook), Theano, Chainer and others. Keras, which is a high-level API written in python that can run on top of TensorFlow, CNTK or Theano, was developed with a focus on enabling fast experimentation and has seen a wide adoption – “being able to go from idea to result with the least possible delay.”
Since data is the lifeblood of Deep Learning it only makes sense to train models where the data resides. With Hadoop 3.0 YARN will enable running all types of clusters and mix CPU and GPU intensive processes. For example, by integrating TensorFlow with YARN an end-user can seamlessly manage resources across multiple Deep Learning applications and other workloads, such as Spark, Hive or MapReduce. Checkout this blog for more details on Data Lake 3.0.
If you would like to learn more about a specific application of Deep Learning, then checkout this blog on Self-driving Car and Data Lake 3.0. And if you would to like to learn more about Data Science in general then head to our page Data Science & Machine Learning.
*Deep Learning is a subset of Machine Learning that uses Artificial Neural Networks (ANNs) to solve problems such as image or voice recognition, language generation and so on. It has really taken off over the last five years after several technological and algorithmic breakthroughs at Google, Stanford University et al. Deep Learning requires hundreds of thousands or millions of examples (e.g. labeled images) to train the models and often takes weeks or months of training. There are shortcuts, however, by downloading pre-trained models, and adjusting the model weights of the last few layers for a specific application and cutting down the training time to a matter of hours by using powerful GPU servers.