If your project needs just a little 'something' that will set it apart from already existing solutions, you're in the right place. But how can you integrate Machine Learning solutions into your products? There are two approaches to consider.
You can schedule a Machine Learning system within own resources or delegate the task to a third party. If you are not into producing your own AI solutions, you can consider using cloud services. One of the most popular tools used worldwide is the Google Cloud Platform.
Google Cloud Tools
The cloud platform by Google is a set of tools dedicated for various actions, including:
- Big Data
- Cloud Data Storage
- Lambda computations
- Internet of Things modules
- ...and Machine Learning services.
Google Cloud offers various Machine Learning tools which can extend your project with AI components easily. It can be integrated into your existing projects without having to maintain and set up additional infrastructure. First of all, the most general one is called Machine Learning Cloud. You can build, store, and perform your own Machine Learning structures, like Neural Networks, Decision Trees, and Clustering Algorithms on it. The biggest advantage of using this technology is the ability to run complex calculations on strong CPUs and GPUs. This way, you don’t have to buy and maintain you own powerful servers.
Another advantage is payments. Building your own infrastructure requires bigger initial costs and continuous maintenance. With Google Cloud you just pay per usage, for example 1 hour of running complex calculations.
The next option would be a more specific solution, called Natural Language Processing Cloud. The service is dedicated to processing blocks of text and fetching various bunches of informations based on that. The biggest advantage of using NLP Cloud is that you don't have to define your own processing algorithms, for example Convolutional Neural Networks. The service brings its own huge database of already learnt words and that allows you to use the service immediately, without preparing any databases. This way you can discover various information about text blocks by simply calling an NLP cloud service.
If you need to apply the potential of Machine Learning to images, Computer Vision Cloud is just for you. The service allows you to recognize the meaning of image files. Similarly to NLP Cloud, you don't have to define your own algorithms there. Google comes with a trained model dedicated to recognizing objects in image files. Just call the Computer Vision Cloud service with an image attachment and collect information about the content inside.
Why Use Cloud Services
During the process of designing Machine Learning features, you have to consider many steps, including:
- Implementation - do we rely on our own "smart" algorithms or use available solutions?
- Deployment - how do we want to push our Machine Learning infrastructure into testing and production environments?
- Maintenance - how do we want to care of servers, performance, and security?
Below you can find some benefits of choosing the Google Cloud Platform:
- You don’t have to own machines with powerful CPUs and GPUs.
- You pay for usage, not monthly, so it's best for testing or performing single tasks.
- You can use predefined data structures to make predictions easier and faster in case of development.
- You can use predefined data, so you don’t need to have much experience with Machine Learning techniques.
- Google Cloud provides an API for Ruby and Python, which allows you to integrate cloud services with your application quickly.
Google Cloud Natural Language Processing possibilities
What we can do using Google Cloud NLP:
- Recognize text categories.
- Recognize main entities in a text block. By entities we mean the main keywords defining the meaning of the text.
- Recognize the sentiment of a text block. By sentiment we mean some characteristic of specific keywords/sentences in text block. Sentiment can be positive, negative or neutral.
- Syntax analysis - research the hierarchy of words in a text.
Real use cases - what we CAN do:
- Create a sentiment recognizer. Within that you can measure if opinions, posts or publications point to optimistic, negative or pessimistic emotions.
- Create an application which categorizes the given input. That could be a news categorizer or a tool to discover the topic of specific blog posts. It can be used to create a basic recommendation system.
- Create an application which extracts context and the most important details from news/posts/given block of text.
Real use cases - what we CAN'T do:
- Natural Language Processing is based on statistical methods and some Machine Learning models. With enough input training data these methods can learn how to predict sentiments/categories/entities in natural language. Google NLP provides a well-trained model which you can use immediately. However, it is important to mention that best statistical results are given when the analyzed text is long enough. The Basic Google NLP limit of text length is 120 characters, but the longer text we have, the better predictions we get. That’s why Google NLP is not the best solution for:
- Twitter content itself (without any additional content)
- Single words like advertisement titles
- Single human command sentences
Google Cloud Vision API
The examples below show what the Google Cloud Vision API is capable of.
What we can do using Google Cloud Vision API:
- Label a picture with keywords describing its elements.
- Recognize labels and information related to Google web search (it's pretty amazing, isn't it?)
- Collect some technical information about pictures (like dominant colors, color structure, etc.)
- Validate content (searches for adult imagery, violence, and other unwanted content in the picture).
- Detect faces and emotions in a picture.
Real use cases - what we CAN do:
- Create an application which tries to collect, categorize, and sort images into meaningful groups.
- Any type of application which needs face detection.
- Application translating images into web search results.
- Application analyzing visual properties of images (is the image light, dark, how about composition and contrast, low or high resolution of pictures).
- Application which blocks improper content while browsing the web.
Real use cases - what we CAN'T do:
- Recognition of people - at least not always. With the power of Google web search we were able to detect the Polish president, but this might not work with less popular people.
- Application which rates "the prettiness" of photos. Machine Learning can determine a features of a photo, but it has no mind and cannot rate the quality or concept of photos.
- Application which creates new pieces of art. The cloud service can bring you information about pictures, but cannot transform a photo into something new.
Depending on your case, you can decide between running your own development of Machine Learning or using a third party service, such as the Google Cloud API. The decision is yours. You should make it based on calculations and the future perspective. However, Google’s solution is always worth consider - it does magical things without extensive knowledge. Furthermore, it’s a great entry point for developing even more complex, custom models. Maybe that would be the perfect cure for your Machine Learning doubts?