Google caused a stir when it open sourced its TensorFlow software back in November 2015, and the technology is starting to make its way into the mainstream.
The machine learning software library is the next generation of DistBelief, which was internally developed by the Google Brain team at the search giant for a multitude of tasks such as image search and improving its speech recognition algorithms.
TensorFlow is a deep neural network, so it learns to perform a task through positive reinforcement and works through layers of data (nodes) to help it determine the correct outcome.
By open sourcing the TensorFlow library of machine learning code, Google is facilitating the simpler construction, training and deployment of complex deep neural nets. TensorFlow doesn't exactly give every developer the ability to harness machine learning, but it does provide both a Python and C/C++ API to link into a developer’s program.
This sort of machine learning work used to be exclusively in the realm of research, but with the open sourcing of software like TensorFlow the enterprise is increasingly able to utilise its powerful capabilities on their own data, operating it on cheap cloud computing.
The TensorFlow libraries make it far easier to incorporate self-learning elements and AI features like speech recognition, computer vision or natural language processing into applications.
Then, in November 2017, Google launched TensorFlow Lite in developer preview. Aimed at building machine learning solutions directly for mobile and embedded IoT devices, the lightweight version of TensorFlow promises fast performance on small devices and works across iOS and Android devices.
TensorFlow certainly isn't the only deep learning library out there, but just as there are other search engines besides Google, it is widely regarded as the best. As alternatives go there is Torch, built by Swiss researchers, and Caffe, which came out of The University of California Berkley and has been built on by Facebook for its recent release of Caffe2.
In terms of limitations Google still only allows TensorFlow to be deployed on a single machine, granted with multiple GPUs, which can limit the scale businesses can use the tool. There are naturally workarounds for this, but they require expertise, time and money.
TensorFlow case study: Ocado
According to the TensorFlow website some of the biggest companies in the world are using the software library, such as Airbnb, Airbus, Dropbox, Snapchat and Uber (although they might not be using it in the most appropriate way).
However, finding actual case studies can be an uphill battle. One company that isn't shy about its use of TensorFlow is UK online supermarket Ocado.
The data science team there is using the libraries for everything from routing algorithms for its robots to move around warehouses, to improving its existing features like demand forecasting, which is currently based on decade-old linear regression models, and predictively suggesting items to add to your basket depending on past shopping habits.
Ocado actually first used TensorFlow to manage the flow of emails coming into its contact centre. Before TensorFlow the contact centre was dealing with emails on a first-in basis, with no sense of prioritisation. This would become an issue if bad weather hit and the volume of emails went up by three to four times and where issues with delivery would be much more pressing than something like website issues.
Dan Nelson, head of data at Ocado Technology told Computerworld UK: "So the business wanted to solve how to get a better grasp of what emails to deal with first, and that presented itself as a natural language problem," Nelson said. "So we wanted to intercept email as it arrived, understand the sentiment of it and also what they were talking about."
He says that the problem was too bespoke for Google's off the shelf natural language processing offering, so they turned to the TensorFlow library to solve the issue.
Ocado is a Google shop anyway, using the search giant's Big Query in the Google Cloud for much of its query and storage needs. Nelson said that deploying TensorFlow with Google certainly makes things far easier. "If we didn't use any cloud provider you would have to provision some pretty serious hardware, but they will still execute there. You don't have to use Google, but the fact that Tensor came out of there certainly helps for that process," he said.
Speaking about the tool more generally Nelson had a dose of realism to offer: "Essentially TensorFlow allows you to access through the libraries different learning models. You need to train and adapt them, but it accelerates your learning.
"TensorFlow doesn't solve the problem, but gives you the toolkit to abstract away from academics of a convolutional neural net and use one to solve your problem," he said.