Is AI effecting your life? YES!
Even though most people are unaware of its presence, Artificial Intelligence (AI) has been slowly creeping into every aspect of our lives. It helps us get cheap airline tickets, it gives us better search results while translating text into more than 100 different languages, it approves us for financial credit, and it is beginning to improve our health with better diagnoses and drugs. There are countless other ways (see the article, "10 AI use cases") that AI applications are becoming an integral part, not only of our digital world but also other aspects of our personal lives.
Emerging from the AI Winter
AI is not a new concept. It has a long and diverse history within academics, the military, and industry, dating back to the dawn of computers in the 1940s and 1950s. Early efforts, however, were often disconnected and punctuated with over-exuberant optimism, leading to pessimistic, dark periods, referred to as the AI winter.
In the past ten years, statistical machine learning (ML), the present realization of AI (see the article by Bernard Marr ), has witnessed an unprecedented success of intelligent systems. This success is driven by three factors: massive amounts of data, the computation capability of CPUs and GPUs, and algorithmic improvements.
To teach or not to teach
Some believe that ML is more than a subset of AI, it is something more fundamental that allows machines to learn in ways that are still not understood (see the article, "Dark secrets of AI"). At the heart of statistical ML, the objective is to find a functional mapping that transforms data into a predictive mathematical model (similar to finding the straight line that best "fits" a set of data). For this, data (e.g., text, audio, video, genomes, etc.) must first be transformed into numerical feature vectors.
Next, ML models are fit, or "trained" (i.e., internal parameters are adjusted), with one of two methods: either "supervised" or "unsupervised" learning. In both cases, the resulting ML model is used to predict the class of other unlabeled data. Supervised learning is "training-by-example"; the classes are known ahead of time, and the training procedure includes information about the feature vector with its corresponding class label. In contrary, unsupervised learning is a discovery process, for which no underlying structure is known or assumed, and the result is a separation of data defined by class boundaries.
Let the Machine Think
Early ML pattern recognition systems had limited success because features were manually engineered. For example, a face detection system might be based upon manually crafted rules for the geometric relations of facial features. In a seminal paper by Viola and Jones in 2001 (see the Wikipedia entry) showed that by allowing the computer to select relevant features, the pattern recognition task was far better and more robust. Unlike other techniques at the time, their algorithm was data-driven. The computer decided which set of Haar wavelets best described a human face, showing that it was better suited for selecting features, rather than the human crafted features.
Despite the success of this and other subsequent supervised learning systems, recognition success was limited to the training process, depending upon the time-consuming process of providing class labels. What was needed was a machine capable of teaching itself the class labels, akin to unsupervised learning. In 2012, a group from Google and Stanford did just that (see the article, "Google computers learn to identify cats" at Slate). The system was presented with lots of videos of cats, but without class labels, and learned by itself what a cat was.
Let the machine Think Deeply!
The paradigm shift in ML is due to the advent of Deep Neural Network (DNN) models, which are based upon large artificial neural networks(ANN). These models work so well, that other techniques are rapidly being superseded. The use of ANNs goes back to work of McCulloch and Pitts (see their original paper) in the 1940s. While their use has waxed and waned, interest was rekindled in 2009 by the remarkable results obtained by increasing the number of network layers and algorithm improvements (see the article, "Deep Learning" at Nature).
Deep learning is data-driven, yet produces cognitive qualities associated with intelligence. Although internal layers of the DNNs are known to work in a multi-resolution manner (i.e., some layers capture details, while others see a bigger picture), the way these complex systems make decisions is still not fully understood (see the article, "AI revolution in science"). Such questions are stimulating new lines of inquiry into human cognition and may bridge a yet unknown gap between artificial intelligence and fundamental physics (see the article, "Holographic principle/deep learning").
Software Tools for AI
Many software libraries and tools exist for building AI systems (see a brief list at "Open-source AI tools" ), yet they share many similarities concerning basic training and prediction operations of ML. One such tool on the list, TensorFlow, represents an excellent example for building AI systems in Python (a full-featured open source interpreted programming language with many libraries for data analysis and visualization). Also of interest, the platforms Theano and Torch are general purpose high-performance numerical platforms for running deep learning models on CPUs and GPUs.
Apart from DNNs, Scikits sklearn is a python library that implements many ML methods for supervised and unsupervised learning and regression. Also, many other software languages can be used, such as R, which is a popular open-source statistical computing programming language that has a large community for machine learning.
Building your AI in Python
Imagine building an AI application to discover disease biomarkers from a set of patients using multiomics and clinical data. For example, based on these biomarkers, the system could divide patients into responder groups for drug therapy. A typical workflow for building an AI supervised learning application could be as follows. First, a modeling framework, or classifier, should be selected that best maps to the problem (i.e., DNN, Random Forests, SVMs, etc.). Next, the high-level representations (i.e., omics data, images, video, text, etc.) would be transformed into numerical feature vectors (e.g., for biomarkers, these may represent the presence/absence of biological molecules). Each representation would be associated with a corresponding class label (e.g., a patient's disease state). The collection of feature vectors with known class labels would constitute a supervised learning procedure. In the TensorFlow library, these quantities would be matrix inputs to a training function that would also be responsible for selecting the DNN topology.
The output of the training process is a large matrix, representing a function of the internal coefficients of the network. For features from different classes, this matrix would be quite different, while for features from the same class, the coefficients (hence the ANN) would be nearly identical. Predictions for newly presented data would classify the data due to these similarities and differences. Although more complex, this simplified description captures the essential features needed to build a modern intelligent AI project.
Concluding Remarks
Building intelligent systems will continue to expand into new areas and eventually transform our society. Now, we are just at the "Cambrian explosion" (see the article, "Why Deep Learning matters") of the deep learning AI transformation, and it will only get more interesting.