An exclusive excerpt for ASUG Members adapted from Metin Karatas' Developing AI Applications: An Introduction, out June 25, from Rheinwerk Publishing. With ASUG membership, you can save 15% on your purchase of this or any other Rheinwerk or SAP Press publication, for a limited time, with the code 15ASUG.
AI has already found its way into our daily lives in medicine, quality assurance, art, or advertising—to name just a few areas—and all signs point to AI becoming even more important in the future. You, dear reader, have obviously recognized this. Whether at school or in training, at university, or at work, you'll encounter AI everywhere.
If you understand how this technology works, you can identify new ways to use it in your environment. Perhaps a lot of data is already available (e.g. in Microsoft Excel), and AI can analyze, group, and classify it for you or provide an indication of future events. It can take work off your hands or support you in your daily work.
Even if you don't develop AI programs professionally, having some knowledge in this area is very helpful. You'll then be able to recognize when and how AI could be used in projects. In addition, you can better categorize suggestions from AIs because you know the "system" behind them. And don't forget—it's also a lot of fun to develop programs that have the appearance of intelligence.
1.1. What Does This Book Offer?
What is the right strategy for introducing interested parties to this subject area? Should a thorough introduction to Python be given first? With all the required modules? My experience from teaching at the technical college (mechanical engineering technology, mechatronics technology, and business informatics) has made this clear: no, that isn't necessary. Even future mechanical engineers who had little or no programming knowledge were able to download data records from the internet and program AIs during the course. However, the word "programming" isn't quite right; "configuring" is more accurate.
Right at the beginning, we'll look at a finished Python program for a specific problem and discuss it in detail. We'll then modify this program so that we can use it to solve other problems. Later on, we'll continue in this way. We'll also solve some tasks using the KNIME software, including graphical modules. This way, you don't have to rewrite programs from scratch.
The aim isn't to give you a comprehensive introduction to the Python programming language or the modules used. After reading this book, you'll be able to download data records from the internet and develop AIs for them or adapt your existing programs for this purpose. This is a very pragmatic approach. The programming language is only a means to an end. However, if you've worked through the book and want to deepen your knowledge in this area, I recommend that you learn the Python programming language.
You can download, analyze, and run the programs discussed here. Have the courage to change them and take a critical look at the results. The chapters also contain exercises where you can immediately apply what you've learned. Take your time for these exercises. You can copy and adapt an existing program discussed here as a solution. It's important that you don't look at the sample solution straight away. You'll get much more out of the exercise if you try it yourself first. Then questions will arise that you would never have asked yourself otherwise. The analysis of the sample solution will support the learning process even if you were unable to create the program without errors.
Of course, it's perfectly acceptable to research unanswered questions on the internet. But don't make the mistake of simply copying lines of code without understanding their functionality. Adapt the lines of code to your program; for example, the structure and variable names of your program should originate from you. Modify the transferred lines of code so that they fit your program. Don't adopt a line without understanding what it actually does.
You won't learn AI development or programming by reading alone, just like you wouldn't think of learning French just by reading a book. However, reading, analyzing, changing, questioning, and adapting to new tasks will lead to success in this subject area.
Unfortunately, the hard truth is that you won't become an AI professional even if you work through the book conscientiously. However, by the end of the book, you will understand the basics and have already developed your own AIs. The rest of the learning process will be more fun because you won't just have to deal with dry theory. You can also apply what you've learned to new programs.
Feedback from many students has shown me that visual programming using KNIME is particularly fun. The AI program gets put together like a jigsaw puzzle using graphical building blocks. And this isn't just a gimmick; KNIME is widely used in professional development.
You won't experience an AI event without ChatGPT and DALL-E. No wonder, ChatGPT in particular dominates the media coverage when it comes to AIs. We'll look not only at these tools but also use their programming interfaces so that you can easily program your own applications that are capable of impressive performance.
1.2. What Is Artificial Intelligence?
The Encyclopedia Britannica defines artificial intelligence as follows:
Artificial intelligence (AI) is the ability of a computer or a robot controlled by a computer to do tasks that are usually done by humans because they require human intelligence and discernment. Although there are no AIs that can perform the wide variety of tasks an ordinary human can do, some AIs can match humans in specific tasks.
The European Parliament's website also has a definition for this:
Artificial intelligence is the ability of a machine to imitate human abilities such as logical thinking, learning, planning and creativity.
You'll also find similar formulations in the literature. According to these definitions, the navigation device in a car can be characterized as AI or just a clever algorithm to find the fastest way from A to B. It's just not easy to clearly define AI. However, we can say that the aim of AI is to imitate human intelligence in some way.
Machine learning (ML) is a subset of AI. This includes self-learning programs without a predefined algorithm. Let me illustrate this with an example. Let’s suppose you train a program to calculate the sum of two numbers. To do this, you enter many possible combinations one after the other, such as 1 + 3 = 4, 2 + 2 = 4, 2 + 6 = 8, and so on. While you’re entering the summands, the program tries to find a link and predict the result you’ve entered before you type it in. Each time you finally enter the result, the system checks whether the prediction was correct (training phase). If at some point, a correct link is found that also proves to be correct for other summands (test phase), the ML program is ready. Now only the summands have to be entered because the result is calculated automatically. This approach therefore doesn’t require an algorithm to be entered to calculate a sum. The AI learns the correct combination itself with the help of the training and test data.
ML can be divided into different subcategories depending on the specialist literature, but we’ll agree on the following three subcategories here:
- Supervised learning: Supervised learning needs training data to learn. For example, you have pictures of dogs and cats, and one person has correctly assigned all existing images in advance (this is referred to as labeling). The training data therefore consists of images and the corresponding labels. You use this training data to train the program. The program itself is then able to correctly assign new pictures of dogs and cats. The example described earlier with the summands also falls into this category.
- Unsupervised learning: Unsupervised learning is often used to search for and classify patterns in large amounts of data. For example, the “critical” or “noncritical” states can be derived from the sensor data of a machine.
- Reinforcement learning: Reinforcement learning is used, for example, in games or for testing games. A character learns the correct moves independently. Incorrect moves are penalized (e.g., by deducting points), and correct moves are rewarded. Over time, the character learns the correct moves and progresses further and further.
In this book, we’ll deal with all three subcategories of ML. The definitions of terms could go on for a long time (e.g., artificial neural network [ANN], decision trees, deep learning), but we’ll refrain from doing so here. Rather, we only want to go into this when the corresponding programs have been developed.
For more insights from Keratas, purchase Developing AI Applications: An Introduction from Rheinwerk Publishing. This book is designed for anyone looking to get started creating basic AI applications. Prior knowledge of AI algorithms, platforms like KNIME, or the Python language are not required. The book will provide the building blocks you need to modify Python programs for your specific problems and datasets.
- Practical, hands-on instructions for AI application development using no-code tools and Python
- The perfect mix of theory and applied knowledge
- Coverage of key AI models and algorithms
- Comprehensive index to help you find what you’re looking for
- Numerous screenshots, illustrations, diagrams, tables, and info boxes with tips
- All exercises available for download with sample data, code, and Jupyter notebooks