In meinem Blog schreibe ich zu verschiedenen Themen aus künstlicher Intelligenz, Design und Wissenschaft. Je nach Thema sind die Artikel auf deutsch oder englisch. Die Technik lässt leider nur eine Variante der Silbentrennung zu, in diesem Fall verwende ich die deutsche. Wer die englischen Artikel mit englischer Silbentrennung lesen möchte, wechselt besser zur englischen Version dieser Seite.
What is (good) science?
Part 4: Science and reality
30.05.2019
The public demand for science to produce absolute truths limits the topics and methods of science. Some fields are starting to liberate themselves from the standard objectivist claim of truth and I hope others, and the whole of society, are going to follow.
This blog post is part of a series. Read the previous parts here:
Part 1: My quest for science
Part 2: The question of generality
Part 3: How to define science

In the discussion in Cognitive Processing, Katsikopoulos [1] raises the important question of How to build models for the wild?. I wonder how many scientists have ever asked themselves whether their work is of any use outside their laboratory. I suspect that most researchers are primarily concerned with doing things "right" by using "correct" methodology. This attitude comes not only from the pressure of publishing and acquiring funds, it is also connected with the almost religious reverence of science in the public opinion. The expectations are that science delivers the Truth. It is time our society thought about what we can realistically know about the world. I am sure that philosophers have dealt with this topic at length. But since I am not into philosophy, I present my own naive view.

My impression is that most people hold an implicit belief in objectivism [2], especially in the detail that things are objectively true or false. As limited humans we may not be able to differentiate between truth and falsehood at any time, but the belief goes that there is an underlying truth in the world, and we (especially scientists) have to find it.

I have only encountered one complete truth in this world: Nothing is completely true or false.

With a little thought about our everyday life, I think most people would agree with me. I am fascinated by the dual nature of our thinking: on the one hand we cope with uncertainty and ambiguity all day long without even noticing, but when we plug into the more "conscious" thinking mode we start to make unrealistic simplifications. Maybe this is just how our brains work.

But it becomes a problem for science. With the high expectations of delivering only ultimate truths, research focuses on questions that are so tiny and/or artificial that they can indeed be (relatively) well defined and measured. In this way science builds itself an artificial world of imaginary research questions. With the exception of mathematics, whose only purpose is to build artificial worlds with imaginary rules and questions, science makes itself meaningless.

An especially sad example is linguistics. Language is for me one of the most fascinating objects of study, from the development of languages to their structure, and of course how to extract meaning from a sequence of words. Sadly, (computational) linguistics has been stuck on Chomsky's assumption that natural languages are the same as formal languages. Recently I attended a lecture on computational linguistics. Having been explained how the meaning of sentences is defined by truth values, someone in the audience asked "What about sentences that have no truth value?". The presenter answered calmly and smilingly "Linguists disregard them".

And this is the reason why the practical approach of language processing by Google, Apple, etc. is so much more effective than the language theories of the last 50 years. Statistical methods for machine translation tell us nothing about how language works, so from a scientific perspective they are almost useless. But from a practical perspective they are extremely useful. What makes me sad is that I think this level of precision in speech-to-text or automatic translation systems can also be achieved by more informed methods than statistics, but now that statistics works so well it is hard to justify basic research into more interesting methods.

My gloomy view on science is of course limited by my own area of research. Katsikopoulos [1] describes how the field of operations research has found a way to allow less specific, but more realistic models that are useful in real life. This gives me some hope that other communities might follow this example and scientists get the freedom to explore things that are really relevant.

But this is not just a problem of science, it is a problem of our culture. We must learn to recognize that the world is complicated (which, by the way, also makes it interesting) and deal with it accordingly. Instead of trying to predict the future based on unrealistic models, we had better recognize the implicit limitations of understanding imposed by our environment. Luckily, Gerd Gigerenzer and his collaborators [3] have started to draw attention to the fact that we mostly deal with large world situations, where we have limited information, and how simple decision methods work better in such situations than "clean" mathematical models. I hope that over time this view will be generally adapted, both in the public view and in science.

Postscript: Interdisciplinarity

Katsikopoulos identifies the lack of interdisciplinary work (and respective diversity of methods) as a reason for the bind in cognitive science:

If we cognitive scientists today take seriously Herbert Simon’s example of studying decision making in an interdisciplinary way, then we should also try to do the same and move outside of our comfort zone.[1]

I have been lucky to work in interdisciplinary environments for much of my scientific career and this is a good place to thank the institutions that made it possible (in order of appearance):

  1. Konstantinos Katsikopoulos. Kirsch’s, and everyone’s, bind: How to build models for the wild?. Cognitive Processing, 20(2), pp. 269 – 272, null.
  2. George Lakoff. Women, Fire, and Dangerous Things: What Categories Reveal about the Mind. The University of Chicago Press. 1987.
  3. Gerd Gigerenzer, Peter M. Todd, the ABC Research Group. Simple Heuristics That Make Us Smart. Oxford University Press. 1999.
What is (good) science?
Part 3: How to define science
17.05.2019
The question of good scientific methodology is interwoven with the definition of science. I discuss traditional definitions of science and show how the superficial application of principles and methods leads to the justification of inappropriate methodology and narrow research questions.
This blog post is part of a series. Read the previous parts here:
Part 1: My quest for science
Part 2: The question of generality

Defining science is not just a philosophical exercise. On the one hand it is a societal question of attributing authority and trust into scientific findings. On the other hand it is the question of scientific methodology: only those works that adhere to accepted scientific methodology should be published in scientific journals. Methodological disagreement is almost a standard in the reviews of my papers. In the debate on my latest paper in Cognitive Processing, Ross [1] points out the disaccord of scientific methods in different disciplines inside cognitive sciences. In the following I discuss different approaches to defining science in general, the wrong assumptions that have been underlying such attempts, and a possible remedy.

Dictionary definitions

Dictionaries and encyclopedias are usually a good starting point for definitions:

  • Collins Free Online Dictionary: Science is the study of the nature and behaviour of natural things and the knowledge that we obtain about them.
  • Cambridge Dictionary: (knowledge from) the careful study of the structure and behaviour of the physical world, especially by watching, measuring, and doing experiments, and the development of theories to describe the results of these activities
  • Oxford Living Dictionaries: The intellectual and practical activity encompassing the systematic study of the structure and behaviour of the physical and natural world through observation and experiment.
  • Wikipedia: Science (from the Latin word scientia, meaning "knowledge") is a systematic enterprise that builds and organizes knowledge in the form of testable explanations and predictions about the universe.

All definitions agree that science has to do with obtaining knowledge, possibly also the knowledge itself as the latin origin suggests. And this knowledge is about natural and/or physical things in the universe. The German understanding of scientific disciplines is wider as we include humanities (Geistes-Wissenschaften):

  • Duden: (ein begründetes, geordnetes, für gesichert erachtetes) Wissen hervorbringende forschende Tätigkeit in einem bestimmten Bereich
  • Wikipedia: Das Wort Wissenschaft (mittelhochdeutsch wizzen[t]schaft = Wissen, Vorwissen, Genehmigung für lat. scientia) bezeichnet die Gesamtheit des menschlichen Wissens, der Erkenntnisse und der Erfahrungen einer Zeitepoche, welches systematisch erweitert, gesammelt, aufbewahrt, gelehrt und tradiert wird.
The German dictionaries say nothing about the subject of the knowledge to be gathered. They are offer more alternatives concerning the method: it has to be systematic, justified and orderly, it includes gathering, storing and teaching things in order to obtain knowledge, while the English definitions mention observation and experiment.

Popper's legacy

For the moment, let us take the narrow view that we have to obtain knowledge by observation and experiment.

The most famous philosopher of science among scientists is certainly Sir Karl Popper (1902–1994). One reason for this is that Popper was particularly concerned to demarcate science from other activities, especially from ‘pseudo- sciences’ that try to illegitimately borrow the epistemic authority that is institutionally conferred upon scientists.[1]

In brief, Popper's theory says that

  • The scientific objective is to build theories.
  • A theory must be formulated in a way that it is falsifiable by experiments.
  • A falsified theory must be abandoned or needs to be adapted to the new observations.
So take the statement "everybody with red hair loves chocolate cake". We could design an experiment where we invite red-haired participants to taste chocolate muffins and ask them whether they liked them. If any of the participants answers that they did not, the statement would be proven wrong. We would either have to find a completely new hypothesis on the relation of hair color and cake preferences or adjust our statement to something like "the majority of people with red hair loves chocolated cake".

Popper's theory is basically an attempt to overcome the confirmation bias—a natural human tendency to look for confirmation of one's beliefs. By forbidding to use experiments as a confirmation of a theory, Popper forces scientists to think about ways of dismantling their own theories.

I will not repeat the many criticisms that have been raised against Popper's argument. More important is its influence on current scientific practices:

Notwithstanding the complexities involved in what preoccupies philosophers, namely trying to exactly state a viable formulation of falsificationism, contemporary scientists often defend and impress upon their students a general ‘Popperian attitude’ that is unarguably a core part of scientific culture. Setting aside pure mathematics as a domain that receives its own extensive philosophical consideration, theory or speculation that floats free of empirical implications is not scientific.[1]

And here is the problem: I think this general 'Popperian attitude' has focused on the wrong part of Popper's argument, (mis-)using it to justify narrow research questions and answers by idealized experimental settings.

A more useful (and I think truer to Popper's intentions) approach is teaching students to be critical about their own work. We all get carried away by our ideas and try to see the world fitting them. We need to train ourselves to see the world through other people's eyes and to find faults with our own ideas. In my time at the university I observed extremely intelligent students producing mediocre theses and I wondered what you need to produce execellent theses. The really successful students were constantly questioning their own work (without being shy or unsure about their abilities) and were happy to receive criticism of others. This attitude requires self-awareness, confidence and courage. Of course this is much harder to teach than mechanical procedures of hypothesis testing.

Science as a radial category

The dictionary definitions and Popper all treat science like a mathematical set, trying to provide conditions of what belongs into this set. The elements of the set can either be theories (as the knowledge contained in science) or methods (as the way to obtain the knowledge).

Lakoff [2] shows (based on empirical evidence!) that human categorization differs from set theory in fundamental ways. One common representation of categories are radial categories, which means that a concept is defined by a central element and reasons that justify the inclusion of other elements, e.g. by shared properties.

Talk to different people and ask them to characterize a "cup". You will find that this simple concept is not as simple as you may have thought. Does a cup have a certain minimum and maximum size? Does a cup need a handle? If so, is a cup with a broken handle still a cup?

Instead of trying to find conditions that include objects into the set of cups, we can consider a radial category, starting with an uncontroversial typical cup: a small drinking vessel with a handle. Each of us may have a slightly different image in our minds what such a cup would look like, but I suppose we would be able to find one cup that we could all agree on that it is a cup. We can then accept objects as cups that share properties with our central notion: a large mug could still be called a cup, a bowl with the right size could be considered a cup, a tiny espresso cup misused as a container for paper-clips could still be a cup. They all have some (but not necessarily all) important aspects in common with our central idea of a cup: you can drink from them, you can somehow lift them to your mouth without getting burnt, they have the right form. But this does not mean that anything can be considered a cup. If my central cup concept is white and made of porcelain, this does not turn a white porcalain plate into a cup (as a side observation: in German you can call a small plate you put underneath a cup "Untertasse"—literally "under-cup", so we actually turn a plate into a cup by its function and fitting material, but not by its material alone).

Let's come back to science. What if we define science as a radial category? Philosophy of science clearly defines physics as the central element. Physics studies physical processes in the universe by building theories based on experiments. Physical processes are also active in substances and living beings, so chemistry and biology can be justified to be science, too. Humans are a kind of living beings and since it happens to be us, the study of humans seems important. Thus we can include medicine, phsychology and neuroscience. Humans live in societies that have evolved over time, thus we include history, archaeology, political science, or social sciences of any kind. Societies have been shaped by human beliefs and thoughts, so we can include philosophy, theology, literature studies, etc. Getting back to the physical objects studied by physics, we also have an interest in exploiting this knowledge to build things. With this argument we can include all the engineering disciplines into science.

So by a simple extension of the type of knowledge we are interested in, we can easily derive any discipline that is usually taught and practiced at universites and call them science. But what about the methods? And here is the problem: at least the English definitions above, as well as the 'Popperian attitude' generally spread in science, take over the methods of physics, even though the subject matters of other disciplines differ greatly from the questions in physics. I am not the first to note this:

Lo and Mueller (2010) complain about how economics models cannot grapple with uncertainty which cannot be reduced to probability. The authors ‘blame’ an attitude of over-reliance on the modeling approach of physics and of the natural sciences more generally. Each discipline, while it should definitely be informed by ideas in other disciplines—remember Simon?—must ultimately develop its own models, catering to its own unique needs.[3]

The German definitions of science, which includes humanities, try to generalize the motivation of scientific methodology. The Duden says that the goal of science is to achieve justified, orderly and trusted knowledge. These are good reasons to base theories on experiments, as physics and related disciplines do. A structured argument in ethics, a documented literary review, or an ordered collection of language samples in a dictionary fulfill these claims in the context of other disciplines. Instead of badly copying methods from physics we should better try to understand the motivation behind the methods, copy the motivation, and use it to build reasonable methods for each discipline.

  1. Don Ross. Empiricism, sciences, and engineering: cognitive science as a zone of integration. Cognitive Processing, 20(2), pp. 261 – 267, null.
  2. George Lakoff. Women, Fire, and Dangerous Things: What Categories Reveal about the Mind. The University of Chicago Press. 1987.
  3. Konstantinos Katsikopoulos. Kirsch’s, and everyone’s, bind: How to build models for the wild?. Cognitive Processing, 20(2), pp. 269 – 272, null.
What is (good) science?
Part 2: The question of generality
30.04.2019
Generalization is one of the defining criteria of science—at least for me. In the discussion about my paper I discovered that not everybody shares this opinion. I try to understand the origins of these different viewpoints.
This blog post is part of a series. Read the previous parts here:
Part 1: My quest for science

I have always assumed that the goal of science is generalization. The debate in Cognitive Processing reveals that this assumption is not generally accepted. This came as rather a shock for my since I never thought about questioning my assumption. So this is a good opportunity to do so.

The process of scientific work

Every human being performs experiments. When you try a new muffin recipe, you are experimenting. You may find that you like the recipe and will keep on using it, or you may discard it, or you may make notes such as "next time use less sugar". In the latter case, your experiment may lead to a whole series of experiments where you modify the recipe slightly in each step until you have your perfect muffin recipe. Depending on how accurately you measure your ingredients and how well you note down the changes in the recipe, you employ scientific methodology to some degree. How scientific your methodology is, is measurable by how well others can reproduce your experiment, i.e. when they take your notes whether they will obtain the same kinds of muffins.

Is this a useful approach? Yes. Is this science? No.

Why not? Well, if it were, everybody would be doing science, so there would be no need to pay scientists. Science is more than just performing one experiment after another. It starts when you extract general principles from your experiments that you can apply to a wider class of cases than you have experimented on. Let's say you have experimented with different cake recipes and found that for your taste you should use less sugar. So you could extract the general rule "in cake recipes use half the sugar as indicated in the original recipe". This rule will probably save you time in the future, because you can focus your experiments on the specifics of each cake, while not having to waste an experiment on the quantity of sugar. But you must also be aware that this rule is not completely backed up by empirical evidence, since you have only observed it on a handful of recipes. The moment you use a recipe written by someone who shares your taste preferences, the rule will be wrong. But this is what abstraction is about: you have to make reasonable assumption to generalize your observations. This brings the risk of overgeneralizing, for the benefit of saving time in future experiments.

You can carry this process to more abstract levels. For example, you could note how other people like your cakes and also record properties of your participants. Over time and with a bit of statistics you might observe that dark-haired people prefer sweet cakes while red-haired ones love chocolate cakes. If this were the case and you wrote your findings down in a book, this would help others to find cake variations that suit their and their guests' taste. The more you abstract your findings, the more your rules would deserve to be called a theory.

It is clear that the more you abstract the less detailed your theory will become. While for your own personal taste you may develop the perfect muffin recipe, for a more general rule you may only be able to say that redheads tend to prefer chocoloate cakes, but you may not be able to provide a recipe for a cake that every redhead in the world will like. To use your theory, others will have to make their own experiments to fit it to their specific needs. But instead of starting from scratch, your theory gives them a reasonable starting point, saving them time and effort.

Note also that the more you abstact, your theory will either be more speculative as you will have to add more assumptions to your original observations, or you will have to perform a lot more experiments to give your theory the same empirical backup as your original less-sugar-theory. Normally, both aspects come into play. For a more abstract theory, you generate more data than for a narrow theory, but still you will never reach the same level of detail and empirical backup.

Taking all this together, the scientific is an interplay of

  1. performing experiments to discover general principles,
  2. formulating theories,
  3. performing more experiments to fit theories to specific situations with the goal of testing and refining the theory.

The misunderstanding

This is my theory of science, but the reality looks different. I think only a small minority of scientists even thinks about creating theories, and I this shows how broken the system is. Here are some reasons why theories have lost their appeal:
  • Confusion between experiments as a means and experiments as an end.
    Important for step 1 and 3 in my process is that scientists perform experiments in order to build and verify theories. Lots of other people perform experiments, too. They will use a theory as a short-cut to design the experiments for their specific purpose. As stated before, the more abstract a theory gets, the more experiments you need as a basis (or the more you have to speculate), and the more experiments you can think of for testing and refining your theory. So, naturally, the bulk of scientists' time has to go into experiments. What is more, for experiments you can establish a set of standards that you can teach young scientists, whereas theory building is more of an unordered pondering that is never trained or formalized (and that is probably as it should be). The combination of a lot of time spent on performing and publishing experiments compared to no training and little reward for theory construction, seems to lead many to believe that science is about isolated experiments. But what would be the value to society if science is about answering small, well-specified questions that nobody has asked?
  • The lack of courage.
    Abstraction is impossible without speculation. A theory that just explains one experiment is not a theory, and as soon as you abstract from several experiments, you have to add assumptions that were not tested explicitly in any of the experiments. Does this give scientists the right for pure speculation, without any empirical evidence? I would go so far to say yes. For a theory to be used and accepted by other scientists and practitioners, it must be backed up with good reasons. One reason could be a solid empirical underpinning. Another could be an analogy to other fields, establishing a similarity of processes and thereby possibly a re-use of tools and thinking patterns. In a (hypothetical, because currently inexistent) system of critical scientists and practitioners, people would use and nourish theories that work and abandon those that don't. The simple measure for practitioners would be whether the theory helps them guide their own experiments, and for scientists how well it fits to observations and other theories. The problem is not speculative theories, the problem is people blindly keeping on following wrong theories just because everybode else does. For an example I recommend Lakoff's wonderful book Women, Fire and Dangerous Things [1] where he disproves the philosophical view of objectivism with strong empirical evidence, while objectivism continues to be used as an implicit assumption in practically all of science. The scientific system encourages small steps. You make an experiment, do some statistics on the outcome, write it all down into a paper. The process follows a certain pattern that any reviewer recognizes and your paper will be published. If you develop a theory, you have to rely on the common sense and judgement of the reviewers. Sometimes this does work, but most reviewers are not used to building theories or using their judgement. They are trained on doing experiments and following that pattern like little science robots. A paper not following this pattern is very easily rejected. Add to this the publish-or-perish culture and you know why people are reluctant to develop abstract theories.
  • The impossibility of reflection.
    Since a theory cannot be mechanically derived from experimental results, it needs deep reflection. A theory has to grow in ones mind, you have to allow yourself to follow wrong paths, to reformulate a theory, to make assumptions thay may or may not be established later on by experiments, until it all falls into place and feels right. But the luxury of reflection is only for hobby scientists or those who accept an end of their career as a consequence. I have seen publication lists with more than 24 publications per year, every year! This is a (published, not just written) paper every two weeks! Even assuming a big research group behind such people, just reading these papers (and this is strictly speaking less than you should invest to have the right to be listed as an author) together with other duties such as teaching and acquisition of funds, means that there cannot be much thinking going on (unless those people employ highly parallel thinking processes still to be discovered in experiments). But these are the publication lists you compete with in funding decisions and job applications. And the more decision makers are pressured by reporting criteria and time constraints, the more they opt for the easy choice of the higher numbers. So by a simple evolutionary process, people who take the time to think, are eliminated from the system.
I think those are the main reasons why the scientific process stated above is not working. People are doing experiments, which is justified by steps 1 and 3, but leave out step 2, rendering steps 1 and 3 meaningless. Now and then people seem to feel the awkwardness of science not generalizing and a common argument is that it is just too difficult. Ross puts it like this:
In this teeming research ecosystem, prospects for a general theory of cognition must now be regarded as exceedingly remote. [...] In one respect, the picture of science, and cognitive science in particular, as an archipelago instead of a tower makes the Popperian attitude more plausible, since only relatively isolated theories can face the tribunal of experience straightforwardly. [2]
Of course we are far from a grand unifying theory. And as we have learned from Douglas Adams, the only answer such a theory might give is "42". Maybe the one and only theory to explain everything does not even exist. But that is a lame excuse for accepting isolated experiments as science. We may never establish one overarching theory, but the process of formulating smaller theories and along the way discovering the right questions to ask for such theories, is a valuable process, and the only purpose of science.

My own little theory

As an afterword I want to put some perspective on my own little "Unifying Model of Decision-Making". It is far from being a suprising, general new theory. The brave assumptions that abstract from single observations to a general mechanism had mostly been made by others before (see references in [3]). What I did was to combine three theories that had been formulated qualitatively, i.e. expressed in text, into a formal model that is expressed in an algorithm. I provide something similar to a software library of decision making: a general algorithm and some functions that can serve to fill in some details of that algorithm.

Even this little step needed a lot of reading, pondering, coding, re-reading, re-pondering, re-coding, ... I am happy and pround to have done it, and grateful that this work was published, showing that my views on the scientific system may be a bit too gloomy after all. My first feeling after having come up with the model was "wow, this theory explains decision-making". The process of writing the paper and some sleepless nights were enough to convice me that the model actually raises and leaves unanswered more questions than it answers. But this is how it should be. Maybe a (general and informal) rule for recognizing good science is this:

A piece of good science raises more questions than it answers.
Maybe journals and conferences should add this review criterion: "What is the proportion of questions raised to questions ansered by this paper?"

  1. George Lakoff. Women, Fire, and Dangerous Things: What Categories Reveal about the Mind. The University of Chicago Press. 1987.
  2. Don Ross. Empiricism, sciences, and engineering: cognitive science as a zone of integration. Cognitive Processing, 20(2), pp. 261 – 267, null.
  3. Alexandra Kirsch. A Unifying Computational Model of Decision Making. Cognitive Processing, 20(2), pp. 243 – 259, 2019. [pdf from HAL]
What is (good) science?
Part 1: My quest for science
26.04.2019
My latest article has raised a discussion on philosophy and methodology of cognitive science among the reviewers and editor. I use this opportunity to continue my own pondering on what science—and especially good science—is.

My latest piece of work has finally been published in Cognitive Processing [1]! And the icing on the cake: this paper raised a debate in the form of opinion papers by the handling editor and the reviewers with an invitation to the whole readership to participate!

The longer story: after I had gone through the first review round ("major revisions"), one reviewer evaluated my paper with "accept", the other with "reject"—an uncomfortable situation for an editor. Don Ross, the handling editor, therefore asked a third reviewer, who answered along the lines "it depends on what the journal wants". Consequently, the editors of Cognitive Processing started to discuss what the journal wanted, and decided that this discussion was too interesting to have it behind closed doors. The result are three discussion papers by Don Ross and the disagreeing reviewers Konstantinos Katsikopoulos and Marc Jekel in the current issue of Cognitive Processing.

All this brings me back to a question that has been haunting me for more than seven years: What is good science? I was asked this question when I applied as an assistant professor in Tübingen and I was shocked that I could not give any good answer (I suppose other candidates did not do much better, because I got the job in the end). I was applying for a position as a scientist and could not define what good science is. So what was I doing all day long? How could I know whether I was doing a good job? And the more I thought about it: I could not even define what science is, let alone good one.

After years of pondering and reading, I am relieved to know that I am not alone and I may never be satisfied with any answer I come up with. What I am sure about is that a good scientist should think about this question now and then. My last major attempt ended in a rainbow course I gave at the Interdisciplinary College 2017 entitled "Really Bad Science". The approach was to turn the question around: if I don't know what good science is, maybe I can characterize bad science (and it mirrors my bad mood regarding science at that time). Some of the content was inspired by the wonderful journal club at Felix Wichmann's lab in Tübingen in the winter term 2016/17 with the telling title Everything is fucked.

I am very grateful to Cognitive Processing for publishing the debate my paper has initiated, showing that there may still be some hope for science. I use this opportunity to overhaul my concept of science, this time in a more positive and constructive light as a series of blog posts.

  1. Alexandra Kirsch. A Unifying Computational Model of Decision Making. Cognitive Processing, 20(2), pp. 243 – 259, 2019. [pdf from HAL]
What is AI?
Part 5: Take your choice!
10.02.2019
As we have seen, AI can mean anything and nothing. I prefer the view of cognitive systems. Whatever you choose to call AI, stick to one definition.

In my view AI has taken a wrong turn in adapting engineering metrics and methods, making itself as a field superfluous. Even worse, methods developed in other subfields of computer science have been re-invented in AI under a different name, creating confusion about algorithms and hindering collaboration and exchange between engineering fields.

Only few AI researchers have stayed with the original idea of building techniques that apply to wide range of problems. About a decade ago several initiatives have tried to rekindle it under the flag of "Cognitive Systems". Some of these initiatives, like the Advances in Cognitive Systems conference and journal, have survived and are working on systems that serve a wide variety of human needs.

I would prefer the term "Artificial Intelligence" to be abandoned, moving on with the study of Cognitive Systems. But since it is such a strong marketing instrument, I doubt that my wish will come true any time soon. But the least anyone can do is to state which of the many possible definitions of AI one is talking about and to stay with this definition throughout a line of reasoning.

I have heard people considering a dishwasher as intelligent (I agree that it is an intelligent solution, but I disagree that the dishwasher itself posesses any intelligence). Since the term AI has been broadened to any engineering discipline, it is totally valid to call a dishwasher intelligent. But such "intelligent" machines have been around for decades. Why should they suddenly develop superhuman cognitive abilities, take away all our jobs, or rule the world?

    What is AI?
    Part 4: AI Methods
    02.02.2019
    Goals and applications do not distinguish AI from non-AI. Maybe the difference lies in the methodology.
    This blog post is part of a series. Read the previous parts here:
    Part 1: The original definition
    Part 2: Strong, weak and no AI
    Part 3: Are we already there?

    Pursuing AI applications in their own right does not bring us any closer to understanding and building intelligence. But developing an elusive notion of intelligence without specific use cases seems unrealistic too. Applications may show us the way if we do not cheat. By cheating I mean to engineer some application without considering its contribution to the understanding of intelligence. Chess is a good example. It has clearly been solved from an engineering perspective; chess programs can beat any human player. But from an AI perspective chess is still an interesting open problem. Studies of human chess players reveal a lot about thought processes. And no chess program today plays in the same way as humans (which would include making the same mistakes). Very likely such a program will never be written as chess is now considered solved and therefore unworthy of further investigation.

    The chess example also illustrates that the measurements of solving a problem are adapted from engineering. Chess happens to be a well-defined problem, which makes it an ideal starting point for AI, since at least you can easily represent it in a computer. And even though the goal for players is ultimately to win games, a more scientific approach would be to understand the process employed by players to make their moves, use the understanding to reproduce it and carry it over to other tasks. Unfortunately AI has taken the easy path by equalling success with the optimality of outcomes. Chess and other well-defined problems are special cases in that they have something like a well-defined optimum. What is the optimal way to drive a car? What is the optimal way to plan a trip?

    Equalling intelligence with optimality limits AI research in several ways:

    • Researchers prefer well-defined problems over real-life problems, because only for the first optimality is defined and measurable.
    • The methodology is limited to "mathematically clean" approaches. If there is an optimum to be reached, we want to be sure that we always get this optimum. But since real problems lack a definition of optimality, those "clean" methods are unlikely to bring us closer to intelligent systems.
    • Ideas are only accepted if they improve existing results. This leads to incremental changes in existing approaches, but never to new ones.
    And at the bottom line the thrive for optimality makes AI indistinguishable from engineering.

    So if we do not measure the result of specific tasks, how do we measure progress in AI? I think there is no golden bullet, but here are some suggestions:

    • A method has higher value for AI if it is applicable to a range of problems, not just one specific application. Such a measure is hard to quantify. We would need ways to define when two problems are different (is finding a way from Stuttgart to Munich a different problem from finding the way from Munich to Hamburg?), or better a measure of their distance (wayfinding on foot to wayfinding by car should are more similar than wayfinding to language translation). We would also have to specify when a method is the same. We can expect that any method would need to set some parameters depending on the application; calculating parameters needs specific functions; implementing functions is plain programming...
    • A comparison to human performance and approaches can indicate a way towards intelligence. Current programs are usually better than humans in specific tasks. I would prefer methods that make the same (kind of) mistakes as humans. Of course intelligent machines could show a completely different type of intelligence as humans. But they do have to operate in the same environment. Human mistakes are in some way connected with our physionomy (such as limited short-term memory), but in many cases originate from the complexity and unpredictability of the world we live in. So at least in some cases a comparison to human behavior seems adequate. We then face the challenge of defining respective metrics [1].
    • A related measure is the acceptance of outcomes by humans. The whole point in builing intelligent machines is to do something useful for humanity. So the ultimate measure is whether people find the results useful. The simple question whether someone likes an outcome is often not too revealing. But we can define objective criteria for specific tasks [2][3]
    • Using common sense. This point may sound rather unscientific. Shouldn't science rely on objective measurements? I am not suggesting to just trust our gut feeling, measuring is important. But as we have seen, there is no one single metric that would show us whether some method moves towards intelligent behavior. If we want objective, unambiguous metrics, we always end up with optimality. So we have the choice between measuring something well that is beside the point, or measuring important things as good as we can. I prefer the second. And since our measures are restricted, we need to use our common sense to put them into perspective.

    By changing the measurement for progress, we would open the door for more interesing approaches. The "successful" part of AI comes down to optimization algorithms. Those can be helpful for well-defined problems, but neither are they unique to AI, nor do they work in unstructured, realistic settings. AI needs a unique set of methods and metrics, not shallow copies of other science or engineering fields. For me the distinguishing characteristic of AI is the way you approach it. It is a mixture of trying to understand natural intelligence and implementing flexible mechanisms that can deal with the complexity of the real world.

    1. Alexandra Kirsch. Lessons from Human Problem Solving for Cognitive Systems Research. Advances in Cognitive Systems, 5 2017.
    2. Christina Lichtenthäler, Alexandra Kirsch. Legibility of Robot Behavior : A Literature Review . 2014. (unpublished article) [pdf from HAL]
    3. Frank Papenmeier, Meike Uhrig, Alexandra Kirsch. Human Understanding of Robot Motion: The Role of Velocity and Orientation. International Journal of Social Robotics 2018. [pdf from HAL]
    What is AI?
    Part 3: Are we already there?
    27.01.2019
    Some traditional applications of AI have been solved by now, such as playing Chess or Go. Is AI a moving target that gets reset every time an AI problem is solved?
    This blog post is part of a series. Read the previous parts here:
    Part 1: The original definition
    Part 2: Strong, weak and no AI

    The Dartmouth workshop attempted to "solve kinds of problems now reserved for humans" [1], "now" meaning 1955. Doubtless, computers today can do many things that had to be done by humans in 1955. From this viewpoint we could savely claim that we are done, AI is solved.

    On the other hand, Alan Turing's 1950 prediction that "at the end of the century the use of words and general educated opinion will have altered so much that one will be able to speak of machines thinking without expecting to be contradicted" [2] has turned out wrong. Intuitively, people expect an intelligent machine to be something like R2D2 or HAL 9000. But is this too picky? Several traditional problems of AI like playing chess or Go are now being solved by computers beyond human skills, leading some AI researchers to feel that their task is redefined any time they make progress:

    Curiously, no sooner had AI caught up with its elusive target than Deep Blue was portrayed as a collection of "brute force methods" that wasn't "real intelligence". [...] Once again, the frontier had moved. [3]

    To better understand this dispute, we have to differentiate between AI applications and the goal of AI in general. In 1950, before the term Artificial Intelligence was coined, Alan Turing proposed the "imitation game" (now known as the Turing Test) as a means to define intelligent machines [2]. He suggested that in a question-answer game a person converses with two other entities, one a machine, one another person in a kind of chat so that the questioning person gets no clues from vision or voice. The questioner can ask the other two anything she likes in the attempt to distinguish the person from the machine. If, in such a game, the questioner is unable to differentiate person and machine, the machine can be said to be intelligent.

    At the end of the same paper, Turing suggests how one would go about developing such programs.

    We may hope that machines will eventually compete with men in all purely intellectual fields. But which are the best ones to start with? Even this is a difficult decision. Many people think that a very abstract activity, like the playing of chess, would be best. It can also be maintained that it is best to provide the machine with the best sense organs that money can buy, and then teach it to understand and speak English. This process could follow the normal teaching of a child. Things would be pointed out and named, etc. Again I do not know what the right answer is, but I think both approaches should be tried. [2]
    He mentions application fields that have become typical problems of AI and are also mentioned in the Dartmouth proposal: using language, playing chess, learning. Here is the crucial point: Turing considers these as steps towards building intelligent machines, not as tests for intelligence.

    If we follow Turing, the only test for intelligence is the Turing test. Solving single problems such as chess, Go or even automatic translation, may be steps towards intelligent machines, but are not as such to be called intelligent.

    We could now conclude diplomatically, saying that we are halfway there. We do not have machines that display general properties of intelligence, but we do have isolated programs that perform tasks that seem to be good candidates to work on for achieving full AI eventually. But I think there is an element of "cheating" in the AI applications in existence today. I think Turing and the Dartmouth consortium were assuming that researchers working on AI would have the global goal of intelligent machines in mind, using the applications as stepping stones towards this goal. By interacting loops of working on applications and the big picture, we might eventually create machines that we would intuitively consider as being intelligent. What happened, however, is that AI applications are being persued as goals in their own right and the far-reaching goal plays no role at all.

    The successes are largely due to developments outside AI, especially on fast computers and improved infrastructure, such as the internet. IBM Deep Blue's success relied on a mixture of heuristic search methods, expert knowledge of chess, and extremely fast computers. The only part AI played in this, is the heuristic search, which had been explored since the 1950's [4] and had basically been solved by 1968 with the A* algorithm [5]. IBM's Jeopardy-winning machine used a range of known AI techniques [6] as well as the whole of Wikipedia (and more data) on an extremely fast computer. Google's Alpha Go is often presented as an instance of the ultimate learning machine. Reinforement learning was used by Arthur Samuel in his checkers program in 1956 [7]. Even Deep Learning is not really new [8]. The main reason why this could be done today are immense computing ressources. The generality of the method does not even extend to any type of computer game, let alone realistic tasks [9].

    Sometimes small changes in known technologies have a huge impact. Just because the mentioned examples use enormous computing resources, they could still be the key to intelligence, could they not? A year after IBM's impressive demonstration of Watson in Jeopardy in 2011, I witnessed experienced AI researchers at a conference fighting about whether Watson was a game changer or just old stuff reheated. At that time I was unsure myself. But looking back, in the seven years since this demonstration, I see no fundamental change of AI. Using Watson technology for other requires much more preparation of data than IBM likes to admit [10].

    Defining AI in terms of applications leads us back back to the distinction of narrow and general AI. In the narrow sense of implementing cool and sometimes even useful applications, we already have AI. But in the sense that most people associate intuitively with intelligent behavior, we have learned almost nothing from those applications.

    1. Richard S. Sutton, Andrew G. Barto. Samuel's Checkers Player. In: Reinforcement Learning: An Introduction., 2nd edition. MIT Press, Cambridge, MA.. 1997. (retrieved 27 Jan 2019)
    2. McCarthy, J., Minsky, M., Rochester, N., Shannon, C.E.. A Proposal for the Dartmouth Summer Research Project on Artificial Intelligence. 1955.
    3. Allen Newell, Herbert Simon. The Logic Theory Machine: A Complex Information Processing System. Tech. rep. P-868. The RAND Corporation, 1956.
    4. David Ferrucci et al.. Building Watson: An Overview of the DeepQA Project. AI Magazine, 31(3) 2010.
    5. Peter Stone, Rodney Brooks, Erik Brynjolfsson, Ryan Calo, Oren Etzioni, Greg Hager, Julia Hirschberg, Shivaram Kalyanakrishnan, Ece Kamar, Sarit Kraus, Kevin Leyton-Brown, David Parkes, William Press, AnnaLee Saxenian, Julie Shah, Milind Tambe,, Astro Teller. Artificial Intelligence and Life in 2030. Stanford University, Stanford, CA, September 2016. (One Hundred Year Study on Artificial Intelligence: Report of the 2015-2016 Study Panel)
    6. Alan M. Turing. Computing machinery and intelligence. Mind, 59(236), pp. 433 – 460, 1950.
    7. Brenden M. Lake, Tomer D. Ullman, Joshua B. Tenenbaum, Samuel J. Gershman. Building Machines That Learn and Think Like People. Behavioral and Brain Sciences, 24 2016.
    8. P. E. Hart, N. J. Nilsson, B. Raphael. A Formal Basis for the Heuristic Determination of Minimum Cost Paths. IEEE Transactions on Systems Science and Cybernetics, 4(2), pp. 100 – 107, 1968.
    9. Michael Feldman. Financial Analyst Takes Critical Look at IBM Watson. https://www.top500.org/news/financial-analyst-takes-critical-look-at-ibm-watson/ 2017. (retrieved 27 Jan 2019)
    10. Andrew L. Beam. Deep Learning 101 - Part 1: History and Background. https://beamandrew.github.io/deeplearning/2017/02/23/deep_learning_101_part1.html 2017. (retrieved 27 Jan 2019)
    What is AI?
    Part 2: Strong, weak and no AI
    13.01.2019
    Following up on the question what destinguishes AI from non-AI we look at the more fine-grained distinction of strong vs. weak AI.
    This blog post is part of a series. Read the previous parts here:
    Part 1: The original definition

    We have seen how AI started with an intuitive notion of reproducing or simulating intelligence in the form of a computer program. The open question was how general the methods have to be to deserve the label AI as opposed to standard engineering.

    The idea of intelligent machines has been taken up by philosophers to discuss whether this goal is possible or desirable. John Searle considered AI to be impossible, because a computer can never be "conscious", illustrating the idea in his famous Chinese Room thought experiment. He argued that outward intelligent behavior (which he assumed wrongly could be implemented with simple rules) is distinct from consciousness. I have always wondered why anyone bothered to respond to such a foolish argument. But they did and the solution was a split of AI into imaginary subfields:
    The claim that machines can be conscious is called the strong AI claim; the weak AI position makes no such claim. [1]

    Psychologists and neuroscientists avoid the term consciousness since it contradicts the generally accepted view that human behavior stems from physical, albeit very complicated, processes. But if we just follow fixed mechanical rules, is there anything such as free will? And we all feel something like consciousness, where does it come from? Current scientific methods cannot answer these questions, and therefore, they are usually considered to be outside the scope of science. This also implies that strong AI is not worthy as a scientific endeavour as it involves the notion of consciousness.

    Coming back to the original endeavour of understanding and reproducing intelligent behavior with computers, to make philosophers happy, we call it weak AI and ignore the consciousness debate. But this is not the end, unfortunately. Some people seem to equal intelligence with consciousness, and consequently no consciousness implies no (general) intelligence (in exact contradiction of Searle's argument). In this way, the original idea of AI got thrown into the strong AI box, which had already been labeled as unscientific.

    What remains is the weaker version of weak AI, also called narrow AI: solving small, well defined problems. This field has been celebrated as having made tremendous achievements in the last decades. Apart from the little detail that these achievements had nothing to do with the understanding of intelligence (they are mostly due to the increase in computing power and infrastructure), how are they different from any other type of computational engineering? They are not, and they should not be called AI.

    The narrowing of AI down to standard engineering is correlated with the dilemma of funding. Specific applications with well-defined goals are more justifiable, graspable, and achievable in the short time horizons of third-party funded research projects, and therefore the easier path for most scientists. AI in the sense of general mechanisms that are applicable to a wide range of problems, is so hard that we have not even found the right research questions. In an ideal world this would be seen as a challenge. But in the world we live in researchers are forced to tackle small, simple problems to be able to publish at the prescribed pace. Instead of producing, you would have to sit back and think, very likely thinking in the wrong direction most of the time.

    In my opinion, the distinction of strong and weak AI has damaged the field and contributed to the confusion of what we want to call AI. The celebrated successes all fall into the domain of narrow AI (the weakened version of weak AI), while the scenarios of thinking robots that take over the world (for good or bad) are based on very optimistic (not to say unrealistic) expectations of general AI (the general version of weak AI or even strong AI).

    1. Stuart Russell, Peter Norvig. Artificial Intelligence — A Modern Approach., 1 th edition. Prentice-Hall. 1995. pp. 29
    What is AI?
    Part 1: The original definition
    04.01.2019
    A fundamental problem in the public discussion is the missing definition of Artificial Intelligence. In this blog series I provide possible destinctions of AI from non-AI. Whatever anybody believes AI to be, one should make the definition clear before starting any discussion on the impacts of AI.

    I usually try to avoid any definition of Artificial Intelligence. There is no well-agreed definition of human intelligence, therefore it seems pretentious to find one for the artificial variant. I have changed my mind, however, since AI is discussed in so many different variants—often in the same text. The usual story goes "We already have AI or are very close to having it, therefore AI development will accelerate and destroy/save humanity." The problem here is that the definitions of AI change from phrase to phrase, but since the same word is used, they are mingled into one.

    Let's go back to the time when the term "Artificial Intelligence" was coined, to 1955. Computers were still a rarity, being a treasure of any university that could afford one. People might just have been happy to have a tool for doing fast computations. But the idea of thinking machines is much older than computers, and with the now available remarkable power of doing arithmetic, old dreams were rekindled. In 1955 John McCarthy organized a workshop titled "Dartmouth Summer Research Project on Artificial Intelligence" and thereby coined the term. The proposal [1] starts as follows

    We propose that a 2-month, 10-man study of artificial intelligence be carried out during the summer of 1956 at Dartmouth College in Hanover, New Hampshire. The study is to proceed on the basis of the conjecture that every aspect of learning or any other feature of intelligence can in principle be so precisely described that a machine can be made to simulate it. An attempt will be made to find how to make machines use language, form abstractions and concepts, solve kinds of problems now reserved for humans, and improve themselves. We think that a significant advance can be made in one or more of these problems if a carefully selected group of scientists work on it together for a summer.
    This paragraph shows the definitional problem of AI from its very beginnings: the generality of the methods. If a machine is expected to learn, did they mean that it can learn anything in any circumstance or would this learning refer to one specific problem (in this case learning could simply mean storing new values in a database)? Solving problems reserved for humans, do we have to find one method that solves them all or are we happy with a tailored solution for each problem?

    Basic idea of AI: the ability to expand a simple specification of a task to a complicated program

    The zigzaged area in this picture represents a tough problem that requires human intelligence. One interpretation of AI could be to write a computer program that solves the complicated task equally well as people do. This would be a typical engineering task, so why invent a new name for it? I think what McCarthy and his colleagues had in mind was the process shown in the middle. Instead of handcoding the complete task, we would like to specify some aspects of the task (we somehow have to tell the machine what we want from it), and this simple specification would expand by AI mechanisms into the more complicated program. There is still a lot of room for interpretation: how big or small is the central specification, how much is added by "intelligent" mechanisms, how much is so specific to the task that it has to be implemented manually?

    The picture also illustrates two possible ways to develop AI: from inside out or outside in. Alan Newell and Herbert Simon followed the first approach. They started early with the Logic Theorist and later the General Problem Solver to develop general mechanisms that solve a wide range of problems (not necessarily any problem). Even at the Dartmouth workshop it became clear that the outside-in method would simplify funding [2]. Working on specific problems, one might gradually identify commonalities and thereby extract more general mechanisms. I think both approaches are important and should interact.

    But do we know now what differentiates AI from non-AI? The AI arrows represent what any software library does: extending a simple specification of a frequently occurring problem class into a more complex solution.

    I will not be able to give you any real definition of AI, but I will provide several perspectives from which you can create your own understanding (or perplexity) of what AI is.

    1. McCarthy, J., Minsky, M., Rochester, N., Shannon, C.E.. A Proposal for the Dartmouth Summer Research Project on Artificial Intelligence. 1955.
    A journalist understanding AI
    02.12.2018
    Is the AI hype coming to an end? At least some journalists such as Esther Paniagua start to realize that AI is not radically changing the world.

    Esther Paniagua recently published this wonderful article (in Spanish) where she gives a realistic image on the state of AI. She had taken the trouble to interview several AI experts, including myself, to really understand where we are and how slow progress still is. I am delighted to read such realistic accounts of AI as a counterbalance to the apocalyptic or utopian futures that are often predicted.

      Roboter in der Pflege
      17.11.2018
      Schon im Vorfeld hatte ich interessierte Nachfragen zu dem Vortrag „Können Roboter Pflegepersonal ersetzen?“, den ich gestern im LebensPhasenHaus in Tübingen gehalten habe. Hier ist eine Zusammenfassung und meine Eindrücke aus der Diskussion mit dem Publikum.

      Mein Ziel für diesen Vortrag war es, Leuten die normalerweise nichts mit Robotern zu tun haben, einen Einblick in den Stand der Technik zu geben, damit sie besser gerüstet sind für Diskussionen, sei es wenn es darum geht Geld zu verteilen, Lösungen für bestimmte Anwendungsfälle zu finden, oder die zukünftige Notwendigkeit von menschlichem Pflegepersonal abzuschätzen. In erster Linie habe ich verschiedene Varianten von Robotern vorgestellt mit meinen Annahmen, was davon in der Pflege relevant sein könnte.

      Lastenroboter

      Es gibt Roboter, die helfen können schwere Lasten zu heben, wie Riba, der Menschen vom Bett in den Rollstuhl heben kann, oder die Botengänge verrichten, wie Casero, der schmutzige Wäsche in Krankenhäusern transportiert. Solche Roboter sind für ganz spezielle Aufgaben gemacht und können zumindest in einigermaßen strukturierten Umgebungen wie Pflegeheimen oder Krankenhäusern langweilige oder körperlich anstrengede Arbeiten von Pflegepersonal übernehmen. Sie fallen damit in das klassische Muster, nach dem Roboter Arbeiten übernehmen, die „dull, dirty, dangerous“ sind. Ich zähle hierzu auch Roboter, die Hilfsaufgaben für Leute mit speziellen Bedürfnissen erledigen, wie El-E, der motorisch stark eingeschränkten Menschen Objekte bringen kann.

      Roboterbegleiter

      Einer der bekanntesten „Pflegeroboter“ ist Paro. Er ist quasi ein Stofftier mit Bewegung und Geräusch. Paro wird seit einigen Jahren für die Demenz-Pflege angepriesen und verkauft. Endlich gibt es eine Studie, die den Unterschied zu normaler Pflege und zum Einsatz eines normalen Stofftiers untersucht hat [1]. Das Ergebnis ist, dass Paro nur wenig mehr bringt als ein Stofftier. Und dieses ist insgesamt betrachtet ein wenig wirtschaftlicher [2]. Das heißt nicht, dass man Paro grundsätzlich nicht einsetzen sollte, es zeigt aber, dass Paro keinen ernsthaften Vorteil gegenüber anderen Behandlungsmethoden bringt. Andere Unterhaltungsroboter haben keine bestimmte Zielgruppe, wie unser Kopernikus, den wir bei Intuity als Open Source Roboter entwickelt haben. Auch wenn ich das kleine Kerlchen sehr putzig finde und hoffe, ihn irgendwann dazu zu bringen, dass er situationsbezogen erinnert und unterhält, würde ich nicht behaupten, dass er in irgendeiner Form menschlichen Kontakt ersetzen oder Pflege effizienter machen kann. Ich sehe ihn eher als eine Art besseren Fernseher.

      Ein weiteres Beispiel aus dieser Kategorie hat gestern zu einiger Diskussion geführt. Der Film Ik ben Alice fasst ein niederländisches Forschungsprojekt zusammen, bei dem eine Roboterpuppe über mehrere Tage bei drei verschiedenen allein lebenden Rentnerinnen getestet wurde. Darin sieht man, wie die Puppe in natürlicher Sprache kommuniziert und situationsbezogen, sogar stimmungsbezogen, auf die Frauen eingeht. Was in dem Film nicht gesagt wird und nur einmal kurz zu sehen ist, ist dass ein Großteil dieses Verhaltens ferngesteuert oder fest gescriptet war. Eine Zuhörerin gestern kannte den Film und hatte wirklich geglaubt, dass die Puppe das alles selbst entschieden hat. Während mindestens eine andere Zuhörerin kein Problem damit hatte, dass so eine Maschine dann eben ferngesteuert ist, wurde das ganze von einem anderen schlichtweg als Fake bezeichnet. Letzterer Meinung schließe ich mich an.

      Haushaltsroboter

      Eine der größten Sorgen ist für viele Leute, dass sie so lang wie möglich unabhängig leben wollen. Insofern wären Roboter, die Haushaltsaufgaben erledigen und nach dem Rechten sehen können, eine echte Hilfe. Produkte, die heutzutage als Haushaltsroboter angeboten werden, können Staubsaugen bzw. den Boden wischen, Rasen mähen oder Fenster putzen. Es kann nett sein, wenn man diese Dinge nicht selbst erledigen muss, aber keine dieser Tätigkeiten allein ist ein Hindernis, dass Leute allein leben könnten. Richtig toll wären Roboter, die wie ein Butler alles erledigen, was im Haushalt anfällt, inklusive Getränkekisten schleppen und aufpassen, dass alle Aktivitäten des täglichen Lebens wie Essen, Trinken und Reinlichkeit stattfinden. Doch heutige Roboter sind noch nicht einmal annähernd dazu in der Lage. Dieses Bewerbungsvideo für einen internationalen Roboterwettbewerb zeigt recht gut, wo der Stand der Technik gerade ist. Das gezeigte Szenario ist aus technischer Sicht absolut beeindruckend, aber es besteht immer noch eine große Lücke zwischen dem, worauf die Roboterforschung stolz ist, und dem, was im täglichen Gebrauch einen Mehrwert liefert.

      Auch hier waren die Reaktionen des Publikums interessant. Einige waren sichtlich erfreut, einmal einen klaren Stand präsentiert zu bekommen und zu wissen, mit welchen Techniken man in nächster Zeit rechnen sollte. Teilweise gab es Zweifel, ob das wirklich der Stand der Technik ist und ob man nicht in den USA oder in Asien weiter wäre. Es wurde auch Kritik geäußert, dass man auch mit einfacherer Technik viel erreichen könnte. Das sehe ich genauso, aber das muss ich ja nicht erzählen, denn die Existenz von Tablets, Smart Watches und Spülmaschinen ist ausreichend bekannt. Ich glaube, hinter der Frage stand eine Erwartung, dass ich als Robotikerin fertige Lösungen für die Pflege im Gepäck hätte. Mir ist bei der Diskussion erst richtig bewusst geworden, wie schwierig es ist Technik und Pflege zusammen zu bringen. Ich habe selbst mehrere Anträge für Verbundforschungsprojekte geschrieben oder Ideen dazu ausgelotet. Bei solchen Vorhaben geht es leider nicht nur das gemeinsame Ziel die Pflege zu verbessern, sondern man muss auch Notwendigkeiten wie die Publizierbarkeit von Ergebnissen in Fachjournalen aller Beteiligten berücksichtigen. Ich glaube, dass wirklich sinnvolle Lösungen nur entstehen werden, wenn man eine Mischung von Leuten und Herangehensweise wie bei Intuity hat. Dort sehen wir uns erstmal das Problem als Ganzes an, erdenken verschiedene Lösungsideen und haben die Kompetenz zu jeder Variante schnell Prototypen zu bauen, sei es für Software, Hardware oder Organisationsstrukturen.

      Künftige Entwicklungen

      Bisher habe ich nur über vorhandene Roboter geschrieben. Aber die Forschung macht doch so große Fortschritte, sicher sieht das in ein paar Jahren anders aus, vor allem wenn wir jetzt ordentlich in die Forschung investieren? Dieses Argument höre ich ständig, aber ich muss leider auch da die Erwartungen dämpfen. Als Beispiel sehen wir uns das vieldiskutierte Beispiel des autonomen Fahrens an. Entgegen der Meinung, die man aus der Presse gewinnen könnte, gibt es autonomes Fahren nicht erst seit 2005 und es wurde auch nicht von Google erfunden. Seit Anfang der 1980er Jahre hat die Forschungsgruppe von Ernst Dickmanns an der Universität der Bundeswehr in München an autonomen Autos geforscht. 1987 wurden dabei Testfahrten mit bis zu 96 km/h unternommen. In weiteren Projekten, in Zusammenarbeit mit deutschen Autofirmen, wurde die Technik verfeinert. 1995 fuhr man 1758 km, davon 95% autonom, mit bis zu 175 km/h auf deutschen Autobahnen. In diesem Licht erscheint der Erfolg der DARPA Grand Challenge 2005, in der autonome Autos eine 212 km lange Strecke durch die kalifornische Wüste bewältigen mussten, etwas weniger beeindruckend. Seit diesem Erfolg und Google's öffentlich zur Schau gestelltem Interesse an autonomem Fahren gibt es kaum mehr eine Uni ohne autonomes-Auto-Projekt. Man traf sich auch weiterhin zu Wettbewerben, in Europa vor allem zum European Land Robot Trial (Elrob). Der Wettbewerb in diesem Jahr konnte zumindest den anwesenden Redakteur von Heise online nicht überzeugen:

      Was sich einfach anhört, ist es manchmal nicht: Das autonome Hin- und Herfahren einer Strecke brachte manche Roboter auf der Elrob an ihre Grenzen. [Heise Online, 27.09.2018]
      Halten wir also fest: die Entwicklung in der Robotik ist nicht ganz so rasant wie man gern glauben würde.

      Ein weiterer Aspekt ist die ethische Dimension. In jedem Forschungsantrag, der mit Robotern und Pflege zu tun hat, findet man Zusicherungen, dass es nicht darum geht den menschlichen Kontakt zu ersetzen. Man möchte aber Kosten senken. Da fragt man sich, wie das gehen soll. Pflege besteht nun mal aus der Interaktion von Menschen. Wenn man menschliche Arbeiten ersetzt, und sei es nur das Verteilen der Klopapierrollen, ersetzt man automatisch auch menschliche Interaktion [3]. Vielleicht ist ein Einsatz trotzdem gerechtfertigt, aber vergessen sollte man diesen Aspekt nicht.

      Zusammengefasst sehe ich Roboter in der Pflege als Zusatz zu anderen technischen oder organisatorischen Merkmalen. Wenn man über den Einsatz von Robotern diskutiert, hält man sich besser an den aktuellen Stand der Technik anstatt Träumereien von autonomen Butlern zu verfallen. Ich hatte den Eindruck, dass der Großteil der Zuhörerschaft gestern diese Ansicht geteilt hat. Ich hoffe, ich konnte ihnen helfen den Stand der Technik besser einzuschätzen und daraus sinnvolle Verbesserungen für die Pflege zu entwickeln.

      1. Wendy Moyle, Cindy J. Jones, Jenny E. Murfield, Lukman Thalib, Elizabeth R.A. Beattie, David K.H. Shum, Siobhan T. O'Dwyer, M. Cindy Mervin, Brian M. Draper. Use of a Robotic Seal as a Therapeutic Tool to Improve Dementia Symptoms: A Cluster-Randomized Controlled Trial. Journal of the American Medical Directors Association, 18(9), pp. 766 – 773, 2017.
      2. Merehau C. Mervin, Wendy Moyle, Cindy Jones, Jenny Murfield, Brian Draper, Elizabeth Beattie, David H.K. Shum, Siobhan O'Dwyer, Lukman Thalib. The Cost-Effectiveness of Using PARO, a Therapeutic Robotic Seal, to Reduce Agitation and Medication Use in Dementia: Findings from a Cluster–Randomized Controlled Trial. Journal of the American Medical Directors Association, 19(7), pp. 619 - 622.e1, 2018. (Focus on Care of Persons with Alzheimer's Disease and Related Dementias)
      3. Robert Sparrow. Robots in aged care: A dystopian future?. AI and Society, 31(4), pp. 445 – 454, 2016.
      Usability eines Toasters
      17.04.2018
      Auch einfache Geräte können schwer zu bedienen sind, zum Beispiel ein Toaster. Das Beispiel zeigt auch, dass schlechtes Design durch noch so gute Dokumentation nicht zu retten ist.

      So schön Reisen in Australien ist, so schade ist es, zum Frühstück keine Semmeln zu haben. Stattdessen gibt es Toastbrot, und damit es zumindest frisch und warm auf den Teller kommt, haben die Hotels am Buffet einen Toaster stehen, mit dem man das Brot nach eigenen Wünschen toasten kann.

      In einem Hotel kam mein Freund mit einem verkohlten Toastbrot nach dem anderen zurück, und die Lage wurde immer verzweifelter. „Diesmal habe ich den Toaster ganz auf Stufe 1 zurückgedreht und das Brot kommt immer noch schwarz heraus.“ Interessanterweise hatten andere Leute goldbraunen Toast auf dem Teller. Was kann man an einem Toaster falsch bedienen?

      Der Trick besteht darin, genau zu lesen:

      Toaster Schalter: Stufe 1 bedeutet dark, Stufe 10 bedeutet light
      Der Schalter war so gebaut und beschriftet, wie es aus Konstruktionssicht sinnvoll ist: auf Stufe 1 läuft der Toast langsam durch und wird dadurch dunkel, auf Stufe 10 läuft er schneller durch und bleibt heller. Mein Freund (und bestimmt nicht nur er) hatte aber das mentale Modell, das den meisten Toastern zugrunde liegt: 1 bedeutet leicht, 10 stark getoastet.

      Wer immer diesen Toaster gebaut hat, würde entgegnen: die Leute müssen halt lesen können, es steht ja ganz klar auf dem Schalter. Aber offenbar lesen die Leute nicht. Auf dem Toaster steht nämlich zur Sicherheit nochmal ein Schild:

      White Bread 6.5
      Multigrain 6.0
      Wholemeal 5.5
      Toaster im ganzen mit zusätzlichem Schild

      Mein Freund hatte dieses Schild gelesen, es aber ganz bewusst ignoriert, weil er es unlogisch fand, dass Vollkornbrot weniger stark getoastet werden sollte als helles Brot.

      Die Moral von der Geschicht:

      1. Man halte sich an Konventionen und konstruiere Geräte nach dem mentalen Modell der Nutzenden.
      2. Keine noch so klare oder groß angebrachte Dokumentation kann unintuitive Bedienung wettmachen.

        Die Sprachen der KI
        Teil 4: Die aktuellen Champions
        24.02.2018
        Clojure und Python sind meine aktuellen Champions in der KI. Das Label „KI Sprache“ prangt nicht so deutlich wie an Lisp und Prolog, aber durch einen schnellen Entwicklungszyklus und Unterstützung durch Bibliotheken, zum Beispiel für statistisches maschinelles Lernen, sind sie die modernen Sprachen der KI.
        Dieser Blogbeitrag ist Teil einer Serie. Lesen Sie hier die bisherigen Teile:
        Teil 1: Die feinen Unterschiede
        Teil 2: Lisp – Der Klassiker
        Teil 3: Prolog – Logik pur

        Prolog ist aus der Mode gekommen, weil seine grundlegende Annahme der logischen Informationsverarbeitung an Ansehen verloren hat. Wie steht es mit Lisp, das nichts von seiner Flexibilität und Mächtigkeit verloren hat?

        Lisp gilt immer noch als die klassiche KI Sprache. 1994 wurde ein ANSI Standard für Common Lisp eingeführt, der in verschiedenen kommerziellen und freien Implementierungen umgesetzt wird. In den letzten 60 Jahren haben viele Programmiersprachen in Sachen Programmierkonzepte aufgeholt. Funktionale Sprachen implementieren jetzt die Konzepte des Lambda Kalküls – und das oft in „reinerer“ Form als Lisp; Mainstream-Sprachen haben der Reihe nach Konzepte von Lisp übernommen – sogar Java unterstützt jetzt Funktionen höherer Ordnung. Und das sind die Sprachen, die üblicherweise an Universitäten in Grundvorlesungen gelehrt werden. In einer KI Vorlesung steht man als Dozent dann vor der Wahl, einen guten Teil des Semesters zu investieren um Lisp als Sprache einzuführen, oder auf Java oder eine sonstige bekannte Sprache auszuweichen und sich stärker auf die Algorithmen zu konzentrieren (auch wenn deren Implementierung in Java oft etwas unbequemer ist als in Lisp).

        Außerdem hat sich die KI als Feld in viele kleine Einzelfelder aufgespalten. Jedes dieser Gebiete hat andere Ansprüche und kann spezifische Sprachen verwenden. So verwendet man bei der Bildverarbeitung maschinennahe Sprachen, die schnelle und optimierte Matrizenrechnungen erlauben.

        All dies hat dazu beigetragen, dass es weniger starke Sprachpräferenzen gibt als in den 80er und 90er Jahren. Trotzdem möchte ich zwei Sprachen herausheben: Clojure als moderne Variante von Lisp und Python als fast-schon-Standard für datengetriebene Verfahren.

        Clojure ist eine Neuimplementierung von Lisp auf der Java Virtual Machine. Es ist keine Umsetzung von ANSI Common Lisp, sondern fügt neue Konzepte hinzu. Beispielsweise sind die klassischen Assoc-Listen aus Lisp zu Hashmaps geworden, die auch in Java verbreitet sind. Clojure hat sämtliche Vorteile von Lisp inklusive des Makro-Mechanismus zur Definition von Spezialsprachen, und erweitert diese um

        • einen stärkeren Fokus auf funktionales Programmieren durch unveränderbare (immutable) Datenstrukturen;
        • die Unterstützung von paralleler Verarbeitung durch explizite, abstrakte Konzepte zur synchronen und asynchronen Prozesskommunikation;
        • volle Kompatibilität zu Java, man kann also alle Java-Bibliotheken nutzen. Dies ist besonders nützlich wenn man graphische Nutzeroberflächen erstellen möchte, wofür die Möglichkeiten in Lisp sehr eingeschränkt sind. Auch die Verwendung der gut ausgebauten Software WEKA zum maschinellen Lernen ist damit einfach möglich.

        Besonders außerhalb der Spezialgebiete der KI, dort wo Leute weiterhin versuchen intelligente Gesamtsysteme zu bauen (heute meist unter dem Stichwort „Kognitive Systeme“), ist Clojure die Sprache der Wahl.

        Python ist der neue Star unter den KI Sprachen. Python gilt als Skriptsprache, also eine Sprache, in der man nicht unbedingt große Programm schreibt, sondern kleine Schnipsel, die schnell kleinere oder auch mal größere Aufgaben erledigen. Wie auch Clojure ist Python eine interpretierte Sprache. Man kann also in einer Python-Konsole einfach lostippen mit 5 * 3 und bekommt als Antwort 15. In Java oder C ist das nicht möglich. Dort braucht man ein vollständiges Programm, das erst compiliert und dann ausgeführt wird. Der Entwicklungszyklus in interpretierten Sprachen ist daher viel kürzer als in compilierten Sprachen.

        Nehmen wir an, ich möchte in Python eine Funktion schreiben, die die Fakultätsfunktion berechnet (der Klassiker aus jeder Informatik-Vorlesung: man multipliziert alle Werte bis zum gegebenen Wert n, also fak(3) = 1 * 2 * 3 = 6). Ich tippe los: def fak(n): if (n == 1): 1 else: n * fak(n-1) Das sieht soweit gut aus für mich, also probiere ich es aus: fak(2) Python ist weniger überzeugt von meiner Funktion und antwortet mit einem Fehler: Traceback (most recent call last): File "", line 1, in File "", line 3, in fak TypeError: unsupported operand type(s) for *: 'int' and 'NoneType' Ach ja, in Clojure gedacht, dort wird der letzte Wert automatisch als Rückgabewert interpretiert. In Python braucht man dafür ein explizites return: def fak(n): if (n == 1): return(1) else: return(n * fak(n-1)) Der Umbau hat mich maximal eine halbe Minute gekostet und schon kann ich wieder ausprobieren: fak(3) Diesmal antwortet Python wie gewollt mit 6. Jetzt könnte ich die Funktion kopieren und in ein größeres Programm einfügen. Gesamte Entwicklungszeit für diese Funktion: unter 5 Minuten. Wenn ich das gleiche in Java probieren würde, würde ich die 5 Minuten allein dafür brauchen ein Projekt anzulegen, mir einen nichtssagenden Klassennamen auszudenken (in Java muss alles in eine Klasse), eine main-Methode anzulegen, und die Funktion zu schreiben. Obendrein müsste ich noch überlegen, wie ich das ganze testen möchte: der einfachste Fall wäre, einen Wert für n fest einzuprogrammieren und zu sehen, was das Programm ausgibt. Allerdings muss ich dann für jeden Testwert das Programm neu compilieren. Ich könnte in der main-Methode auch eine Schleife schreiben, die einen Eingabewert einliest und daraus die Fakultät berechnet. Das kostet mich wieder Zeit und wenn ein Fehler auftritt, kann dieser ebenso in meiner Fakultätsfunktion sein wie in der Schleife zum Einlesen der Werte.

        Interpretierte Sprachen erlauben also einen viel schnelleren Trial-and-Error Zyklus. Jetzt könnte man einwenden, dass Programmieren doch kein Ausprobieren sein sollte, sondern ein wohl überlegter Vorgang. Diese Denkweise stammt aus der Zeit des Wasserfallmodells, wo man daran glaubte, dass man Programme abstrakt vorkonzipieren kann und wenn man das ordentlich erledigt hat, der Code nur noch heruntergeschrieben werden muss. Dieses Vorgehen hat nie funktioniert und kann es auch gar nicht. Programmieren ist ein kreativer Prozess und der lebt vom Ausprobieren (oder eleganter ausgedrückt Prototyping, besser noch Rapid Prototyping). Agile Entwicklungsmethoden setzen deswegen auf kurze Entwicklungszyklen, in denen man schnell Fehler machen und diese genauso schnell korrigieren kann.

        In der KI ist diese Anforderung noch höher, nehmen wir als Beispiel maschinelles Lernen: Der Erfolg beim maschinellen Lernen resultiert in erster Linie von menschlicher Ingenieurskunst. Es gibt kaum theoretische Grundlagen, die sagen würden, welche und wie viele Daten man benötigt, wie man diese vorverarbeiten und repräsentieren muss. Diese Parameter kommen aus menschlicher Erfahrung und schnellem Ausprobieren, was insbesondere durch geeignete Visualisierung vereinfacht wird.

        Hingegen sind die Algorithmen an sich weniger entscheidend. Man hat keinen Grund, einen Lernalgorithmus selbst zu implementieren, das haben schon andere erledigt. Wichtig ist der Zugriff auf entsprechende Bibliotheken. Und hier liegt Python gerade ganz vorn. Es gibt nicht nur Bibliotheken für statistische Analyse und maschinelles Lernen, sondern auch welche zum Visualisieren von Daten. Lernbibliotheken sind nicht unbedingt in Python geschrieben, aber sie bieten fast immer eine Schnittstelle dazu an (z.B. TensorFlow von Google).

        Bei modernen KI-Sprachen zählt also vor allem ein schneller Entwicklungszyklus und die Verfügbarkeit von Bibliotheken. Sowohl Clojure als auch Python bieten beides und sind damit meine Favoriten.

          Die Sprachen der KI
          Teil 3: Prolog – Logik pur
          19.02.2018
          Prolog war die Sprache des letzten KI Hypes. Vor allem in Europa, Kanada und Japan hat man große Hoffnungen auf sie gesetzt.
          Dieser Blogbeitrag ist Teil einer Serie. Lesen Sie hier die bisherigen Teile:
          Teil 1: Die feinen Unterschiede
          Teil 2: Lisp – Der Klassiker

          Prolog ist die zweite klassische Sprache für KI Anwendungen. Sie wurde 1972 von Alain Colmerauer und Philippe Roussel entwickelt. Reines Prolog verwendet eine eigene Syntax, aber frühe und auch einige heutige Implementierungen verwenden das Makrosystem von Lisp, sie definieren Prolog also als Spezialsprache unter Verwendung von Lisp.

          Prolog steht für PROgrammation en LOGique und setzt damit schon im Namen ein klares Ziel: Programme in Prädikatenlogik zu schreiben. Das Ziel leitet sich von der Annahme ab, dass Wissen gut in Prädikatenlogik repräsentierbar ist (wie das Beispiel aus Teil 2: auf(Laptop,Tisch)) und dass intelligentes Verhalten aus logischen Schlussfolgerungen resultiert.

          Diese Ansicht war im letzten KI Hype der 80er Jahre weit verbreitet. Insbesondere im japanischen Fifth Generation Computing Project spielte Prolog eine wichtige Rolle. Eine der großen Aufgaben zu dieser Zeit war die Sprachverarbeitung. Diese basierte damals vor allem auf der Idee der Universalgrammatik von Noam Chomsky. Dieser nahm an, dass alle Sprachen - egal ob natürlich oder formal - auf dem gleichen Prinzip beruhen. Prolog unterstützt diese Art der Sprachverarbeitung mit einem eingebauten Parser und einer speziellen Syntax zum Definieren von Grammatiken.

          Satz --> Nominalphrase, Verbalphrase. Nominalphrase --> Name. Nominalphrase --> Artikel, Substantiv. Verbalphrase --> IntransitivesVerb. Aus dieser einfachen Grammatik kann man bereits eine Menge Sätze generieren, wenn man noch ein keines Wörterbuch hinzufügt (die Wörter sind alle klein geschrieben, da Großbuchstaben für Prolog Variablen sind):

          • Name: asterix, obelix
          • Artikel: der, die
          • Substantiv: ente, tisch
          • IntransitivesVerb: steht, schläft
          Daraus entstehen Sätze wie „obelix schläft“, „asterix steht“, „die ente schläft“, „der tisch steht“. Allerdings auch „die tisch schläft“ oder „der ente steht“.

          Prolog kann solche Sätze – mit gegebener Grammatik und Wörtern – sowohl generieren als auch parsen, also testen ob sie grammatikalisch korrekt sind. Prolog ermöglicht es auch, solche Grammatiken mit weiteren Syntaxprüfungen zu erweitern (z.B. die Kongruenz zwischen Artikel und Substantiv sicher zu stellen) und die Satzstruktur mit Bedeutung zu verknüpfen, sodass beispielsweise ein Satz wie „wer ist der freund von asterix“ mit der Antwort „obelix ist der freund von asterix“ beantwortet wird.

          Ich habe Prolog in 4 Semestern in Vorlesungen verwendet und die Studierenden einfache Chatbots und sprachbasierte Computerspiele damit implementieren lassen. Daran lässt sich wunderbar ein Dilemma der KI aufzeigen: Man kann mit geeigneten Werkzeugen sehr einfach Programme erstellen, die beeindruckende Ergebnisse liefern; ein einfacher Chatbot ist mit Prolog in 100 Code-Zeilen zu bekommen. Aber der Schritt von einem einfachen ersten Aufschlag zu einem nützlichen Programm, das auch mit unerwarteten Fragen zurecht kommt, ist eine komplett andere Aufgabe. Da genügt es nicht, aus 100 Zeilen 150 Zeilen Code zu machen. Vielleicht schafft man es mit sehr viel Nutzertesten, einer guten Story außenrum und viel Handarbeit einen verwendbaren Chatbot für eine Spezielaufgabe daraus zu entwickeln; dann ist aber auch Schluss.

          Ein Programm, das auf jede beliebige Frage zumindest sinnvoll antwortet, ist eine andere Geschichte. Man kann kaum erwarten, dass eine Programm auf jede beliebige Frage eine Antwort weiß. Da Menschen aber meist von ihrem eigenen Funktionsumfang ausgehen, erwartet man intuitiv zumindest, dass ein Chatbot eine sinnvolle Frage („Welchen Umfang hat die Erde“) von einer reinen Wortfolge („Umfang Erde“) oder komplettem Unsinn („asdf“) unterscheiden kann; oder dass es mitbekommt, wenn es beleidigt wird (ein Schicksal das Chatbots häufig widerfährt, Beispiele erspare ich der Leserschaft). Ich bezweifle, ob so ein Programm überhaupt mit den (Standard-)Mitteln von Prolog erzeugbar ist.

          Prolog ist also eine Spezialsprache zur Verarbeitung von Wissen und natürlicher Sprache nach einem bestimmten Paradigma, nämlich Logik. Programme, die auf logischem Schlussfolgern beruhen, kann man mit Prolog deutlich eleganter und in kürzerer Zeit schreiben als mit jeder anderen Sprache. Die Frage ist aber, ob Intelligenz tatsächlich durch Logik entsteht. Die aktuelle Mode setzt jedenfalls auf datengetriebene Verfahren – so ziemlich das Gegenteil von Logik. Damit ist Prolog nicht automatisch tot. Einerseits kann die Mode sich wieder ändern, und andererseits kann Logik als Bestandteil eines komplexeren Programms dienen. Moderne Prolog Implementierungen bieten deshalb Schnittstellen zu Mainstream-Sprachen wie Java oder C.

            Weitere Teile in dieser Serie:
            Teil 4: Die aktuellen Champions
            Die Sprachen der KI
            Teil 2: Lisp – Der Klassiker
            12.02.2018
            Lisp ist seit 60 Jahren die Sprache der KI. Dieser Beitrag erklärt, was Lisp einzigartig macht.
            Dieser Blogbeitrag ist Teil einer Serie. Lesen Sie hier die bisherigen Teile:
            Teil 1: Die feinen Unterschiede
            If you give someone Fortran, he has Fortran.
            If you give someone Lisp, he has any language he pleases.
            Guy Steele

            Lisp wurde 1958 von John McCarthy am MIT entwickelt, ein Jahr nach Fortran. Sprachen wie Fortran (prozedurale Sprachen) gehen von der „mitgelieferten“ Sprache der Maschine aus und abstrahieren oft genutzte Operationen, wie bei dem Beispiel der Multiplikation in Teil 1 dieser Blog-Serie. Lisp stützt sich dagegen auf ein mathematisches Konzept (das Lambda-Kalkül), bei dem die Funktionalität durch Funktionen beschrieben wird. Diese Art von Sprachen bezeichnet man als deklarativ, weil man mehr beschreibt, was das Ergebnis sein soll, und weniger in welchen Schritten die Maschine dieses errechnen soll.

            Ein deklaratives Konzept, das in der KI immer eine große Rolle gespielt hat, ist Logik. Man möchte vielleicht etwas ausdrücken wie „Der Laptop ist auf dem Tisch“. Mathematisch lässt sich das in Prädikatenlogik ausdrücken durch auf(Laptop,Tisch) (Hier wird angenommen, das Laptop und Tisch Konstanten sind, es gibt also nur diesen einen Laptop und diesen einen Tisch.)

            Computer sind aber nunmal Rechenmaschinen und können originär nur Zahlen repräsentieren. Aber man kann die Nullen und Einsen in einem Speicher statt als Binärzahl als Repräsentation für eine Konstante wie Tisch auffassen. Dies fällt leichter, wenn die Programmiersprache diese Umwandlung bereits vornimmt und man als Programmierer nur noch mit Symbolen wie Tisch und Laptop arbeiten muss. Lisp bietet ausgezeichnete Unterstützung für solche symbolische Repräsentationen. Anders als Prolog, das wir im nächsten Teil genauer ansehen, ist Lisp aber nicht auf Symbole beschränkt, sondern unterstützt genausogut „normale“ Berechnungen. Sie bietet damit eine enorme Vielfalt an Repräsentationsmöglichkeiten und Herangehensweisen zur KI. Denn bis heute kann man sich nicht darauf einigen, ob KI (rein) symbolisch arbeitet oder ob subsymbolische Prozesse (also Rechnen) Intelligenz ausmachen.

            Am Rande sei erwähnt, dass die Idee der symbolischen Repräsentation bereits in der (KI-) Sprache IPL vorhanden war. Im Gegensatz zu Lisp war diese spezifisch für symbolische Verarbeitung und ihr Abstraktionsgrad erinnert eher an Assembler als an eine moderne Programmiersprache. Deshalb wurde sie sehr schnell von Lisp abgelöst.

            Neben der Allgemeinheit war Lisp in vielen Aspekten ihrer Zeit voraus. Konzepte wie Rekursion, Funktionen höherer Ordnung (d.h. dass man Funktionen als Wert übergeben kann) und automatische Speicherverwaltung, sind mittlerweile vor allem in funktionalen Sprachen vorhanden und finden schrittweise ihren Weg in Mainstream-Sprachen wie Java. Ein Beispiel, das zeigt, wie weit Lisp seiner Zeit voraus war: Funktionen höherer Ordnung kamen bei Java mit Version 8, im Jahr 2014, und damit 56 Jahre später als in Lisp.

            Ein Merkmal, das Lisp bis heute einmalig macht, ist die schmale Grenze zwischen Daten und Code. Beispielsweise ist (+ 1 2 3) die Aufforderung die drei gegebenen Zahlen zu addieren, das Ergebnis ist 6. Dagegen wird die Zeile '(+ 1 2 3) als reine Daten interpretiert, genaugenommen als Liste. Man kann z.B. das erste Element dieser Liste abfragen: (first '(+ 1 2 3)) und erhält das Symbol (!) + zurück. Auch folgende Zeile akzeptiert Lisp als Liste von Zahlen und +-Symbolen: '(+ 1 + 2 + 3) Interpretiert man diese Liste jedoch als Code (+ 1 + 2 + 3) dann liefert Lisp einen Fehler zurück (nur das erste Element bezeichnet ein Funktionssymbol, der Rest wird als Argumente interpretiert und + ist kein sinnvolles Argument für eine Addition). Man kann also durch ein Hochkomma aus Code Daten machen. Anders herum geht das auch: die Funktion eval macht aus Daten Code: (eval '(+ 1 2 3)) liefert als Ergebnis 6.

            Das klingt vielleicht erstmal nach Spielerei, und tatsächlich verwendet man eval höchst selten. Das Konzept Daten in Code und andersherum verwandeln zu können, erlaubt jedoch einen Mechanismus, um eigene Sprachen zu definieren. Auch wieder mit deutlicher Verspätung zu Lisp, wird so etwas heute als Domain Specific Language bezeichnet. In meiner Dissertation habe ich diesen Mechanismus verwendet, um die Sprache ROLL (Robot Learning Language) zu implementieren, die Lernverfahren für Roboterprogramme so zur Verfügung stellt, dass Roboter aufgrund eigener Erfahrungen ständig weiterlernen können. Dazu musste ich keinen eigenen Compiler schreiben, ich konnte den vollen Funktionsumfang von Lisp nutzen und ihn für meine Zwecke erweitern. Eine schöne Erklärung zur Besonderheit von Lisp Macros bietet dieses Diskussionsforum.

            Lisp verdankt ihre Beliebtheit also ihren modernen Programmierkonzepten und ihrer Universalität bezüglich symbolischer und numerischer Verarbeitung, sowie der Möglichkeit aus ihr Spezialsprachen zu definieren.

              Die Sprachen der KI
              Teil 1: Die feinen Unterschiede
              05.02.2018
              Lisp und Prolog sind klassische Vertreter von KI-Programmiersprachen. Aber ist künstliche Intelligenz überhaupt an die Sprache gebunden? Ich erkläre in dieser Blog-Serie warum manche Sprachen bevorzugt für KI genutzt wurden und werden.

              Was macht eine Programmiersprache besonders geeignet für KI Projekte? Aus Sicht der theoretischen Informatik sind alle gängigen Programmiersprachen Turing-vollständig. Das heißt, sie haben die gleiche Ausdruckskraft, können also den vollen Funktionsumfang eines Computers ausschöpfen.

              Unterschiede gibt es im Abstraktionsniveau: Maschinensprache bzw. Assembler verfügen über wenige Kommandos, die quasi vom Prozessorhersteller mitgeliefert wurden. Häufige Kombinationen von Assembler-Kommandos werden in abstrakten Sprachen zu kürzeren und besser lesbaren Kommandos zusammen gefasst. Will man beispielsweise zwei Zahlen multiplizieren, sieht das in einer Assemblersprache in etwa so aus (die Syntax folgt dem Little Man Computer): lda 16 sto 52 in sto 50 in sto 51 lda 51 brz 14 sub 17 sto 51 lda 52 add 50 sto 52 br 6 lda 52 out cob dat 1

              Das sind 18 Zeilen für das Einlesen von zwei Zahlen, ihre Multiplikation und Ausgabe. In einer prozeduralen Sprache erreicht man das gleiche mit 4 Zeilen: x := read() y := read() r = x * y output(r)

              Abstrakte Sprachen unterscheiden sich wiederum durch ihren Stil. So wie bei der Malerei fließende Farbübergänge mit Ölfarben einfacher zu bewerkstelligen sind als mit Acrylfarben, sind bestimmte Operationen in einigen Sprachen einfacher, in anderen komplizierter. Beispielsweise sind Listen das zentrale Konzept in Lisp (die Abkürzung für LISt Processor). In Lisp ist deshalb das Erzeugen und Bearbeiten von Listen eine sehr einfache Angelegenheit: (map + '(1 2 3) '(5 7 9)) addiert jeweils die Elemente der gegebenen Listen (1 2 3) und (5 7 9), und liefert die neue Liste (6 9 12).

              Im Gegensatz dazu stammt Java aus der objektorientiert-prozeduralen Welt, wo die typische Datenstruktur der Array ist, der eine direkte Abbildung des Speichers darstellt. Für das Additionsbeispiel ist es egal, ob man Listen oder Arrays verwendet, doch auch mit Arrays ist diese Operation in Java komplizierter (weitere Varianten zum Addieren von zwei Arrays werden hier diskutiert): int[] a1 = {1, 2, 3}; int[] a2 = {5, 7, 9}; int[] result = new int[a1.length]; for (int ii = 0; i < result.length; ++ii) { result[ii] = a1[ii] + a2[ii]; } return(result);

              Bei der Wahl der Programmiersprache sollte man also einerseits auf den Abstraktionsgrad allgemein achten, damit man in wenigen Code-Zeilen viel ausdrücken kann, und andererseits auf die Passung der Programmiersprache zur Aufgabe. In den folgenden Teilen zeige ich, welche Anforderungen in der KI dazu geführt haben, dass Lisp und Prolog lange Zeit bevorzugt wurden. Im letzten Teil diskutiere ich die aktuellen Anforderungen, insbesondere in Bezug auf maschinelles Lernen und die daraus hervorgehenden neuen Stars in der KI: Python und Clojure.

                Forschung vs. Wissenschaft
                13.01.2018
                Sind Forschung und Wissenschaft das gleiche? Betrachtet man die Begriffe genauer, erhält man eine neue Sicht auf die Probleme im aktuellen Wissenschaftssystem. Auch Vorurteile, dass Wissenschaft abgehobene, unnütze Theorien hervorbringe, lösen sich dabei auf.

                Mit meinem Entschluss mich selbständig zu machen kam die Frage nach meiner neuen Berufsbezeichnung auf. „Independent Scientist“ in Anlehnung an andere freie Berufe wie Journalisten gefiel mir. Aber heißt es eigentlich „Scientist“ oder „Researcher“?

                Ein wenig Internetrecherche [1] [2] bringt folgende Unterscheidung hervor: „Research“ ist das Durchführen von Forschungsarbeiten. Im Hinblick auf ein Ziel oder eine Forschungsfrage wendet man fachspezifische Methoden an (z.B. Experimente oder Literaturrecherche). Am Ende steht eine möglichst objektiv nachvollziehbare Lösung der Aufgabenstellung. „Science“ geht darüber hinaus, indem Forschungsergebnisse zu abstrakten Modellen und Theorien verallgemeinert werden. Somit ist „Research“ ein Teilschritt von „Science“.

                Im Deutschen scheint die Unterscheidung weit weniger stark ausgeprägt zu sein [3]. Ich glaube aber, die Unterscheidung im Englischen lässt sich auch gut im Deutschen anwenden. In Unternehmen gibt es Forschungs- und Entwicklungsabteilungen, aber keine Wissenschaftsabteilungen. Daher könnte man auch hier Forschung als projektbasierte Tätigkeit auffassen, während Wissenschaft eine weitere Abstraktion sucht.

                Kürzlich habe ich das wissenschaftliche System mit seinem Versuch wissenschaftliche Leistung zu quantifizieren dafür verantwortlich gemacht, dass in der Künstlichen Intelligenz in den letzten Jahrzehnten kaum Fortschritte an grundlegenden Fragen erzielt wurden [4]. Wenn ich jetzt über die Unterscheidung von Wissenschaft und Forschung nachdenke, ist das Problem weniger, dass Wissenschaft falsch betrieben wird, sondern dass an Universitäten nur noch geforscht wird, ohne den Schritt der wissenschaftlichen Verallgemeinerung. Das zeigt sich schon an der Finanzierung, die immer mehr auf Projekten beruht, die einzeln beantragt werden. Auch die Bewertungsmaßstäbe zielen rein auf Forschung ab: die Länge der Publikationsliste und die Höhe der eingeworbenen Drittmittel sind die Indikatoren für gute „Wissenschaft“ (also eigentlich Forschung). Diese Kennzahlen eignen sich noch nicht einmal zur Bewertung von Forschung, denn auch hier kann man ordentlich oder schlampig arbeiten, einfache oder schwere Fragen stellen usw. Der wissenschaftliche Aspekt, der über Forschung hinausgeht, wird bei Berufungsverfahren noch nicht einmal als Kriterium gelistet.

                Daher ist die Frage vielleicht nicht „Was stimmt nicht an der Wissenschaft?“, sondern eher „Will sich unsere Gesellschaft Wissenschaft leisten oder kommen wir mit Forschung aus?“. Die Realität gibt eine klare Antwort: An Universitäten wird man nicht für Wissenschaft bezahlt, sondern für Forschung.

                Um dies zu rechtfertigen, könnte man das Argument der Praxisnähe anbringen. Da Forschung auch in Unternehmen betrieben wird, wird der Begriff automatisch mit dem Lösen praktischer Probleme assoziiert, während Wissenschaft eher mit realitätsfernen, abgehobenen Konzepten in Verbindung gebracht wird. Meine Unterscheidung oben sagt allerdings überhaupt nichts über die Anwendbarkeit von Forschung oder Wissenschaft aus. Das Erarbeiten einer Theorie oder eine allgemeinen Modells bedeutet nicht, dass man sich damit von der Realität abwendet. Ich finde Wissenschaft sollte Probleme angehen, die auch tatsächlich vorhanden sind. Der Ruf der Realitätsferne in der Wissenschaft kommt wohl eher daher, dass die Forschung in Universitäten keine nachvollziehbaren Ziele verfolgt. Während Forschung in der Wirtschaft auf das Erschaffen von Produktion, Prozessen oder Dienstleistungen abzielt, sollte die Forschung an Universitäten durch wissenschaftliche Konzepte motiviert sind. Da aber Wissenschaft geradezu bestraft wird, werden Forschungsfragen danach ausgewählt, was sich am einfachsten und schnellsten veröffentlichen lässt. Und nach diesem Kriterium fallen echte Probleme automatisch weg, da diese üblicherweise sehr schwierig sind und damit ein großes Risiko beinhalten, nicht schnell oder „gut“ genug veröffentlicht werden zu können.

                Was ist nun meine korrekte neue Berufsbezeichnung? Ich sehe mich ganz klar als „Scientist“. Wenn ich zum zweiten Mal das gleiche Problem zu lösen habe, fange ich an, die Aufgabe zu abstrahieren und ein allgemeines Modell zu entwickeln. Meine Kunden profitieren davon, indem wir Lösungen nicht von Null auf erarbeiten müssen und stattdessen grundlegende Mechanismen von früheren Projekten nutzen können. Forschung gehört damit zu meinen Aufgaben: ich recherchiere Techniken und verwandte Ansätze, ich erprobe Lösungsalternativen und evaluiere diese. Aber mein Anspruch ist die Verallgemeinerung und Abstraktion, nicht als kognitive Spielerei, sondern um darauf aufzubauen und in Zukunft komplexere Aufgaben bewältigen zu können. Im universitären Forschungssystem wurde mir dieser Anspruch an mich selbst immer negativ ausgelegt. Ich hoffe, dass ich nun meine Leidenschaft zur Wissenschaft im Kontext realer Probleme produktiv anwenden kann.

                1. Matjaž Hren. Are You a Scientist or a Researcher?. https://scinote.net/blog/are-you-a-scientist-or-a-researcher/ 11 Aug., 2015.
                2. Jeff Fulton. The Difference Between Research & Science. http://classroom.synonym.com/difference-between-research-science-5989843.html
                3. Christian Lehmann. Wissenschaft. http://www.christianlehmann.eu/ling/epistemology/Wissenschaft.html 22 Feb., 2012.
                4. Alexandra Kirsch. Lessons from Human Problem Solving for Cognitive Systems Research. Advances in Cognitive Systems, 5 2017.