Künstliche Intelligenz & Machine Learning

KI & Machine Learning

Das sind 2 Begriffe, die spätestens durch die selbstfahrenden Autos und die immer besser werdenden Sprachassistenten in aller Munde sind. Ich habe mir Gedanken darüber gemacht, was man darunter versteht, welche verschiedenen Arten es davon gibt und ob das alles wirklich so neu ist.

Arten der Intelligenz

Denken wir mal darüber nach, welchen technischen Dingen das Adjektiv intelligent angeheftet wird: Da gibt es intelligente Staubsauger, intelligente Abgasreinigung bei Kraftwagen, intelligente Programmwahl bei Waschmaschinen, intelligente Beschattung in Smart Homes und vieles mehr. Das sind Dinge, die wir jetzt nicht unbedingt mit Künstlicher Intelligenz in Verbindung bringen und sicherlich wird hier das Wort “intelligent” hauptsächlich aus Werbezwecken verwendet, aber ist dies auch gerechtfertigt? Wir denken doch eher an einen menschenähnlichen Roboter oder zumindest an einen Computergegner in einem Spiel, der sich annähernd wie ein Mensch verhält.

Beides ist intelligent, man spricht hier aber von schwacher und starker Intelligenz. Schwache Intelligenz bedeutet, dass ein konkretes Problem mit teilweise unbekannten Parametern selbstständig gelöst werden kann. Starke Intelligenz verlangt darüber hinaus, dass sehr komplexe Aufgaben erledigt werden können, das System dazu lernt und mit diversen Störungen umgehen kann, ähnlich wie es ein Mensch machen würde.

Alles schon dagewesen?

Im Kern würde ich sagen: “Ja”. Aber natürlich nicht in der Qualität und Quantität. Im Bereich der schwachen KI sind die augenscheinlichsten Verbesserungen Hardware-technischen Ursprungs. Schon Mitte des letzten Jahrhunderts gab es funktionierende Steuerungselektronik, die ich als schwach intelligent bezeichnen würde. Es war halt teuer und groß. Jetzt kriegt man Laserabtastung und Routenplanung auf einen kleinen Chip um wenige Euro und packt das in einen Saugroboter. Ebenso ist eventuell schon ein Steuerungschip mit Abwassersonde billiger als ein Schaltpanel mit zig Waschprogrammen. Jede zweite Zahnbürste hat ja jetzt schon WLAN und zeigt an, wie man putzen soll. Ich will hier nicht hinterfragen, ob das sinnvoll ist - die Kosten so etwas einzubauen, sind offensichtlich aber nicht sehr hoch.

Auch auf der Seite der starken Intelligenz hat sich einiges getan, hier aber schon eher auf der Software-Seite. Die Grundlagen gibt es zwar auch alle schon ähnlich lange wie die der schwachen Intelligenz, es hat sich hier aber schon einiges getan. Verschiedene Methoden wurde kombiniert und verfeinert. Natürlich hilft hier auch, dass Rechenleistung immer günstiger wird. Es ist aber auch ein Faktor, dass einfach immer mehr Menschen diese nutzen und damit auch “testen”. Die Suchmaschinen von Google wären nie so gut geworden, würden sie nicht milliardenfach am Tag benutzt und damit getestet werden.

Machine Learning

KI kann sich auch selber verbessern bzw. lernen. Dies kann prinzipiell auf 2 Arten passieren: Symbolisch und nicht-symbolisch.

Symbolisch bedeutet, dass man den Erkenntnisgewinn ablesen kann, z.B. weil ein neuer Eintrag in eine Wissensdatenbank geschrieben wurde oder ein neuer Algorithmus erstellt wurde. Bei nicht-symbolischem Lernen ist dies nicht möglich, es verändert sich das ganze System, ein Beispiel dafür sind neuronale Netze (das sind Modelle, die das menschliche Gehirn nachahme: Beim Lernen werden Knoten und Kanten angelegt bzw. verändert, ähnlich wie es im menschlichen Gehirn passiert).

Dake, Mysid (https://commons.wikimedia.org/wiki/File:Neural_network.svg), „Neural network“, https://creativecommons.org/licenses/by/1.0/legalcode

Eine weitere Unterscheidung ist, wie das Lernen erfolgt. Dies kann “überwacht” passieren, das heißt, die KI versucht eine Aufgabe zu Lösen und bekommt vom “Lehrer” Feedback, ob sie das gut gemacht hat oder nicht. Unüberwachtes Lernen läuft anders ab. Hier bekommt die KI Daten und die KI erstellt ein statistisches Modell, das möglichst gut zu den Daten passt.

Weiterentwicklung der KI am Beispiel von Schachprogrammen

Da ich selber Schachspielen zu meinen Hobbies zähle, interessiere ich mich dafür und hab auch schon als Kind Schachcomputer besessen und deren Weiterentwicklung als User miterlebt. Anfangs waren nur einfache Algorithmen implementiert. Der Computer kannte die Regeln, berechnete alle möglichen Stellungen die nach 2 (eventuell 3) Zügen auftreten konnten und bewertete diese nach einem vordefinierten Schema. Damit war es jedem halbwegs guten Schachspieler weit unterlegen. Die ersten Verbesserungen waren, dass man Datenbanken für Eröffnungen und Endspiele hinzufügte (also das Gedächtnis von Menschen nachbaute). Danach schaffte man es, Algorithmen zu finden, die nicht jeden möglichen Zug ausprobierten, sondern interessante Züge sehr weit und uninteressante Züge kaum zu analysieren (wie es eben auch ein Mensch machen würde). Damit war man dann schon auf Augenhöhe mit den besten menschlichen Spielern.

Der nächste Durchbruch war, dass man Monte-Carlo Methoden mit einbezog. Das heißt, es wurden zufällig eine große Menge von Stellungen ausgewählt und bewertet, die nach einem Zug entstehen könnten (damit wurde das “Bauchgefühl” eines Menschen simuliert). Ab diesem Zeitpunkt waren Schachprogramme den Menschen weit überlegen. Die aktuell stärksten Schachprogramme benutzen auch neuronale Netze und lernen ständig dazu.

waterborough (https://commons.wikimedia.org/wiki/File:Radioshack16504.jpg), „Radioshack16504“, als gemeinfrei gekennzeichnet, Details auf Wikimedia Commons: https://commons.wikimedia.org/wiki/Template:PD-self

Ausblick: Wie wird sich die Software-Entwicklung verändern

Ein Ausblick in die Zukunft ist natürlich wie Glaskugel-Lesen, ich werde hier aber trotzdem meine Gedanken dazu darlegen.

2 Dinge sind in den letzten Jahren erkennbar:

  1. Die schwache KI nimmt uns schon derzeit immer mehr Arbeit ab. Sie wird in noch mehr Bereiche Einzug finden und auch im Softwarebereich noch mehr Aufgaben erledigen
  2. Die starke KI wird derzeit noch weiterentwickelt, indem die Natur nachgeahmt wird. Noch (und ich denke in der nächsten Jahrzehnten) ist die Kopie dem Original deutlich unterlegen. Diese Aussage mag seltsam wirken, wenn ich gerade im Abschnitt vorher gemeint habe, dass die KI schon deutlich besser Schach spielt als der Mensch. Schachspielen ist aber eine zwar relativ komplizierte, aber doch ein wenig komplexe Aufgabe mit wenig und klaren Regeln und Eingabeparametern

Daraus leite ich ab, dass in Zukunft unsere Aufgaben weniger in der konkreten Umsetzung, sondern noch mehr in der Analyse, Entwurf und Kontrolle liegen werden.

Ich kann mir gut vorstellen, dass bereits in naher Zukunft die KI selbstständig Programme schreibt (diese müssen nicht “menschenlesbar” sein, ein Beispiel dafür sind eben neuronale Netze) um Problemstellungen zu lösen. Ich denke aber nicht, dass die KI diese Problemstellungen selbst herleiten kann, das wird auch in Zukunft Aufgabe von uns sein. Der Programmier wird sich dann mehr in Richtung Requirements-Engineer entwickeln. Seine Aufgabe wird sein, die Bedürfnisse und Anforderung zu sammeln und ein Modell zu bauen, das die KI versteht. Ähnlich werden sich auch die Aufgaben der Tester verändern. Es wird weniger wichtig werden, Flüchtigkeits- oder Logikfehler im Programmcode zu finden als viel mehr zu testen, ob das Programm überhaupt das macht, was es soll.

Ich bin auf jeden Fall gespannt, wie sich unsere Arbeitswelt verändern wird. Ich denke hier bieten sich viele Chancen, man muss aber offen für Veränderung sein und Freude an der Arbeit gemeinsam mit anderen Menschen haben. Softskills wie Konfliktlösekompetenz, Empathie und Kommunikationsfähigkeit werden noch wichtiger. Der einsame Programmier-Nerd im Hinterzimmer hat endgültig ausgedient.

Autor
SEQIS Autor Markus Schwabeneder

Markus Schwabeneder

Senior Consultant und Senior Agile Architect



Newsletter

Um neue Beiträge per E-Mail zu erhalten, hier die E-Mail-Adresse eingeben.

Unsere Autoren

Informieren Sie sich über unsere Autoren und erfahren Sie mehr über unsere Spezialisten und ihre Fachbereiche:

Zu den Autoren

Sie haben eine Frage?

Zurück

Zum Seitenanfang navigieren