2

Artificial Intelligence Helps With Programming

 11 months ago
source link: https://devm.io/machine-learning/artificial-intelligence-programming-help
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Introduction to an exciting field of possibilities

Artificial Intelligence Helps With Programming

Veikko Krypczyk

Artificial intelligence and machine learning technologies are gradually making their way into many areas. They are designed to support users with their tasks, largely mimicking intelligent behavior. Can these approaches also simplify software development? Is self-programming software just a fantasy, or within the realm of possibility? Let’s get an overview of the state of affairs.

Artificial intelligence (AI), Big Data, machine learning, neural networks: all these technologies will shape future developments in many areas. AI functions are increasingly becoming part of more and more programs and software modules. Implementing these algorithms is complex and requires a high level of expertise from a wide range of fields. Besides computer science knowledge and developing algorithms, statistics and skills involving building AI models are especially in demand. The skills necessary for this are not acquired overnight. Fortunately, in practice, you can fall back on ready-made libraries and services. AI-based services are usually provided via the cloud. Some well-known examples include:

  • Microsoft Cognitive Services: Image and video analytics, speech analytics, speech recognition, knowledge generation, search capabilities.
  • Amazon AI: Image and video analytics, chatbots, text analytics, translation, speech recognition, text-to-speech capabilities, cloud machine learning services.
  • Google AI: Image and video analytics, job API, speech recognition, text analytics, translation, dialog flow, API for creating chat services.
  • IBM Watson: API for creating chatbots, knowledge bases, speech recognition, voice output, translation.

This article isn’t about how we can use AI and comparable technologies in software that we want to create, but about the use of artificial intelligence in software development itself. We want to look at what options already exist today and use these technologies to improve, facilitate, and increase efficiency when developing applications. For this, first we’ll take a look at the essential terms and types of artificial intelligence. Afterwards, we will look at areas of applications in the software development cycle. A glance at current tools will show us what’s already possible today.

How intelligent is AI?

Let’s start with defining and classifying artificial intelligence technologies. One definition is as follows: “Artificial intelligence is a branch of computer science that deals with automating intelligent behavior and machine learning.” AI pursues the goal of transferring intelligent behavior from the human world to the machine world — to software. Therefore, the software’s functions should be equipped with new, preferably intelligent capabilities. Using artificial intelligence is about enabling systems to learn on their own. There is no static algorithm that’s processed from A to B. The software is trained on the basis of available data and, in a sense, successively learns new, improved capabilities. In this vision, the technology goes so far that software is able to imitate human decision-making behavior (intelligence). In a nutshell, AI research is still a long way off.

There are already some application areas where AI can be used successfully. These include image, video, and speech analysis and their use in applications like automatic translation support and evaluating a large number of X-ray or CT machine images in the medical field for making proper diagnoses.

AI’s performance leads to the following classification types: weak, strong, and hybrid AI. Weak AI is the entry point in emulating intelligent behavior. It doesn’t emulate the entire spectrum of human intelligence, but just a delimited sub-range. The problems are mainly simulated and are solved using mathematical and computational scientific methods. These systems don’t gain a deeper understanding of problem-solving themselves; they function reactively at a superficial level of intelligence. Typical examples include image, speech, text, and character recognition, automated translation, and navigation systems. AI application is limited to a highly constrained domain of the problem. Through repeated execution and feedback about success, AI can learn and produce incrementally improved results. For instance, it can be used to identify specific relationships in an image. The more training data you have, the more purposeful the following results will be.

The opposite is strong AI. Here, the goal is to emulate a significantly larger spectrum of human thought, including consciousness and emotions. Strong AI aims to reach and surpass human intelligence or a human’s intellectual skills as a whole. The human way of making decisions is not only based on evaluating data (rational level), but also on other, softer factors, like emotions (emotional intelligence). Today’s AI cannot provide this form of intelligence yet. It isn’t foreseeable right now if this will be possible one day. Characteristics of a strong AI are the ability to learn, think logically, make decisions even in the face of uncertainty, and communicate in natural language.

In a sense, hybrid AI is a further development of weak AI. This doesn’t include all aspects of human intelligence, but attempts to take several areas from the previously described strong AI into account.

How can AI help us with software development? We’ll try to clarify this in the following sections. AI is based on automated learning processes. In many cases, we speak of Deep Learning.

Deep Learning

Artificial Intelligence depends upon the system learning independently. There are several ...


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK