For much of its history, artificial intelligence (AI) technologies of all kinds have been relegated to computer science laboratories and arcane academic papers. As discussed many times in this space, only recently has the technology, specifically machine learning techniques, advanced to a state where developers at large can experiment with it without requiring a PhD in computer science.
One reason AI has become so accessible recently is the advent of tools such as TensorFlow. By providing a wide range of predefined artificial neural network (ANN) models and hiding and abstracting much of the messy detail around their underlying algorithms, TensorFlow enables developers to focus on higher-level matters such as application logic and data flow.
It’s been over two years since TensorFlow’s initial open-source release, and in that time it has seen numerous enhancements and refinements. What does the future hold for this tool? Are there alternatives that developers can consider as well?
First: A Brief History of TensorFlow
TensorFlow grew out of a proprietary machine learning initiative at Google called DistBelief, which was started in 2011. In 2015 it was renamed TensorFlow and released for evaluation as an open-source project. The name ”TensorFlow” stems from the underlying architecture, in which multidimensional arrays called “tensors” undergo computational operations in the various nodes of the model. Version 1.0.0 was released in early 2017, and a variant called TensorFlow Lite, intended for mobile device integration, was released a few months later.
In 2016, Google also designed and implemented an application-specific integrated circuit (ASIC), or a special purpose hardware processor, called the Tensor Processing Unit (TPU). The TPU increases the number-crunching throughput for running machine-learning applications. Google has been using TPUs in its data centers and has reported outstanding results.
Advantages of TensorFlow
TensorFlow provides a number of advantages for developers who want to break in to the world of machine learning:
- TensorFlow provides a large library of pre-defined ANN nodes, each representing a mathematical operation. Developers can arrange these nodes in various ways to build applications. Other than some parameters that the developers can tweak, TensorFlow handles the details of the each node’s algorithm and how the data flows from one node to another.
- TensorFlow libraries are available for the popular Python and C programming languages, making it accessible to most developers without imposing a steep learning curve.
- Once trained for its specific purpose, a TensorFlow application can run on any ordinary PC, cloud computing resource, or on Google’s TPUs.
- TensorFlow has accumulated a large community of developers who take advantage of an online hub to share their models and applications.
What’s Next for TensorFlow
Because of its nature as an open-source project, we can look forward to additional enhancements, an expanding model library, and improvements to give developers more control over the behavior of their applications. One shortcoming of TensorFlow is that models trained on different systems can behave slightly differently, causing the applications to produce different results given the same input data. (The reasons have to do with low-level differences in how different operating systems generate random numbers, handle high-precision mathematical computations, and so on.) One initiative on the TensorFlow roadmap is to address these issues.
Gaining Fast: Competitors
TensorFlow’s success and popularity has unsurprisingly attracted competitors, such as:
- Microsoft’s Cognitive Toolkit (CNTK), which focuses on enabling deep-learning neural networks
- Apache MXnet, available on Amazon Web Services
- PyTorch, a Python-based project designed to enable smaller-scale applications that can be developed and deployed in a short time
Each of these competitors has its strengths and weaknesses, as well as niche areas in which it excels. However, TensorFlow’s long head start, broad developer base, and ease of use are expected to keep it the go-to machine learning tool for years to come.
Regardless of what happens with TensorFlow or any other machine learning tool, the future of machine learning application development is bright. Look for applications powered by machine learning to crop up in many aspects of our lives in the near future. At AndPlus we are particularly excited about what these tools mean for our ability to provide top-notch applications for our clients. Call us today to talk about how machine learning development can address your business problems.