By Brian Rinaldi, Developer Programs Manager at Progress.
As developers, we are often required to wade through a lot of industry buzzwords and separate the wheat from the chaff. Lately, you may have been hearing the term "cognitive computing" more frequently, and you may be tempted to dismiss it as just another meaningless marketing term.
Part of the problem, as the Wikipedia entry on cognitive computing notes, is that "at present, there is no widely agreed-upon definition for cognitive computing in either academia or industry." Although this may be true, cognitive computing is widely used to cover a whole array of technologies that are combined to solve problems by simulating the human thought process. This is why it is often spoken of as a sub-discipline of artificial intelligence (AI).
Putting the Pieces of Cognitive Computing Together
To solve a problem, an application must first understand it. This usually involves feeding large amounts of data that can be analyzed by a computer—essentially, machine learning. I like to think of this process along the lines of the common sci-if trope where a superhuman "speed learns" by rapidly analyzing the wealth of human knowledge (think The Matrix or The Fifth Element).
In terms of a cognitive application, this could involve things like image analysis (for image data), natural language processing (for textual data), and video or audio analysis (for multimedia data). It could even involve data supplied by IoT devices. However, it may also be as simple as analyzing a large database of information that an application might have gathered from its users.
The goal of feeding that data is to allow the system to identify patterns. These patterns then can be tied to outcomes. Putting all these pieces together, new data can be fed into the system that uses what it has learned to identify probabilities for the various potential outcomes.
The final piece is the interaction with the end user of the cognitive application. Typically, a cognitive app is distinguished by utilizing some form of natural interaction. For example, a user might ask questions via a chatbot or some form of voice recognition.
Examples of Cognitive Services?
At this point, you may be wondering what the real-world applicability of any of this is. Here is a handful of examples:
- Salesforce recently created an algorithm using machine learning that automatically summarizes content with surprising accuracy.
- Google highlighted a proof of concept by AXA insurance that used machine learning to help predict drivers who might be at high risk of a high-loss car accident.
- The DataRPM CEO discussed how a combination of IoT (Internet of Things), machine learning, and AI can create systems that can predict and prevent machine failure on assembly lines.
Where to Go From Here
This article has provided a number of links for a wide array of projects and services. But that's the thing: Although cognitive applications are clearly the future of application development, it is still a broad and loosely defined concept.