Machine Learning (ML) is “Teaching computers to recognize patterns in the same way our brains do.” At Devoxx UK 2017, Sara Robinson is talking about Machine Learning as an API. We asked her more about this.
Do you need a background in Machine Learning to get the most from a ML API?
No, and that is my favourite thing about Machine Learning APIs. Many developers don’t have a background in ML, which is a barrier to adding ML functionality to their applications. APIs provide a pre-trained ML model that developers can access with a single API call. This is the best of both worlds – they can integrate ML functionality like image and video analysis, speech transcription, and natural language processing into their apps without having to spend time building and training their own models.
What is the biggest benefit that you’ve seen to ML as an API?
The ability to quickly add smart features to any application. I’ve seen ML APIs used across a wide variety of apps – anything from using optical character recognition (OCR) to identify text in images, to implementing search across a large library of videos by automating video content analysis. Providing ML functionality as an API is a big step towards democratizing machine learning and making it approachable to any developer.
When would you use an ML API vs. building and training your own custom model?
Machine Learning APIs simplify common tasks by giving you access to pre-trained models. The biggest benefit of abstracting the model as an API is that you don’t have to build and train it yourself which can take time. However, if you’ve got a specific custom use case in mind a pre-trained model may not perform the best on your data. For example, if you have medical images that you need to identify as a particular type of condition, a pre-trained model would not be able to accomplish this. In this case a pre-trained model might identify your image as “x-ray” or “brain” but wouldn’t be able to give it a more specific label. Training a model with your data would lead to much more accurate results. So, use an ML API if your use case is more generally applicable, and train your own model if you’ve got specific, custom data.