Brandneues Live-Webinar für Testmanager & Testautomatisierer: Verbessern Sie Ihre Lasttests und Website Performance mit Cloud-Lösungen und DevOps!

Brandneues Live-Webinar für Testmanager & Testautomatisierer: Verbessern Sie Ihre Lasttests und Website Performance mit Cloud-Lösungen und DevOps!

Mehr erfahren

Grundlegende Begriffe zum Thema künstliche Intelligenz

Grundlegende Begriffe zum Thema künstliche Intelligenz

Grundlegende Begriffe zum Thema künstliche Intelligenz

Wie funktioniert Künstliche Intelligenz?

Im vorherigen Artikel "KI-Serie: Einstieg in das Thema Künstliche Intelligenz" haben wir uns noch sehr grob mit dem Thema künstliche Intelligenz (KI) auseinandergesetzt, indem wir zuerst den Begriff erklärt, State of the Art vorgestellt und die verschiedenen Arten der KI gezeigt haben. 

Wir möchten nun tiefer in das Thema einsteigen, indem wir die grundlegenden Begriffe Agenten, Lernen und Neuronale Netze erklären. 

Agenten 

Um unsere künstliche Intelligenz zu erstellen, benötigen wir eine Umgebung. Die Umgebung kann dabei eine Simulation, eine Webseite oder die reale Welt sein. Der Agent befindet sich in der Umgebung. 

Dieser kann die Umgebung in ihrem momentanen Zustand wahrnehmen. Das funktioniert über Sensoren des Agenten. Außerdem kann der Agent Aktionen ausführen, die eine Auswirkung auf die Umgebung haben. Dabei versucht er, ein bestimmtes Ziel zu erreichen. 

Dieser noch abstrakte Begriff des Agenten lässt sich deutlich einfacher mit Beispielen verdeutlichen: 

Staubsaugroboter

Nehmen wir an, wir haben eine Wohnung mit zwei Zimmern, A und B. Das ist unsere Umgebung. In der Umgebung befindet sich ein Saugroboter, unser Agent. Er kann über seine Sensoren wahrnehmen, in welchem Raum er sich befindet (A oder B) und, ob der Raum dreckig ist. 

Er hat nun die Möglichkeit, verschiedene Aktionen auszuführen. Zu seinen Aktionen gehört der Wechsel in den anderen Raum, die Säuberung des jetzigen Raumes und die Aktion "nichts tun". 

Das Ziel des Roboters soll sein, alle Räume sauber zu bekommen. Dies könnte er zum Beispiel erreichen, indem er in dem Raum putzt, wenn dieser dreckig ist. Wenn der Raum sauber ist, geht der Roboter in den anderen Raum.  

Für die Umsetzung von so einem Roboter gibt es verschiedene Möglichkeiten, da dies von der Modellierung der Umgebung abhängt. In einer Implementierung muss somit mehr ins Detail gegangen werden, um klar die Wahrnehmung, Aktionen und Ziel des Roboters zu definieren. 

Mögliche Anwendung: Testautomatisierung

Da wir uns mit der Verbindung von Testautomatisierung und künstlicher Intelligenz beschäftigen wollen, möchten wir hier nun die Grundstruktur eines Agenten vorstellen, der als Assistent in der Testautomatisierung genutzt werden könnte. 

Als Umgebung nutzen wir die Webseite, die wir testen wollen. Zusätzlich kann der Agent auf die Server Logs und verschiedene Monitoringtools zugreifen, die dem Agenten zusätzliche Informationen geben. Wahrnehmen kann der Agent zum einen die Testergebnisse, die auf der Webseite ausgeführt werden, zum anderen die Log- und Serverdaten, die während der Ausführung der Tests generiert werden. Die Aktionen des Agenten beschränken sich auf die Durchführung von Tests und die Erstellung von Hinweisen für den Nutzer. Der Nutzer soll dann mit diesen Hinweisen die Unregelmäßigkeiten im System schnell finden und beheben können. 

Ziel soll es sein, dass der Agent als Assistent für den Tester sicherstellt, dass die Webseite richtig getestet wird und ohne Fehler laufen kann. 

Die Aufgaben eines Agenten sind in der Realität oft deutlich komplexer, sollten mit diesem einfachen Beispiel aber veranschaulicht werden. 

Lernen

Damit der Agent auch weiß, welche Aktionen er als nächstes Ausführen soll, müssen wir ihm dieses Wissen beibringen. Das geht durch den Prozess des Lernens. Beim Lernen geht es darum, zukünftige Aufgaben besser zu lösen. Um dem Agenten dieses neue Wissen beizubringen, gibt es drei verschiedene Lernformen: 

Supervised Learning: Vor dem Lernen werden Trainingsdaten erstellt, die mit Hilfe von Expertenwissen mit Labeln versehen werden. Diese Label enthalten Informationen über das Bild. Beispielsweise könnte es sich auf dem Bild um eine Katze oder einen Hund handeln, was dann in dem Label vermerkt ist. Die Daten zusammen mit den Labeln werden dem Agenten gegeben. Dieser muss nun erkennen, wieso die Labeln diesen Daten gegeben wurden, damit der Agent bei neuen unbekannten Bildern sagen kann, welches Tier auf dem Bild zu sehen ist. 

Unsupervised Learning: Auch hier müssen vor dem Lernen Trainingsdaten erstellt werden. Diese werden allerdings ohne Label an den Agenten gegeben. Dieser soll die Daten in verschiedene Kategorien einteilen und zwar auf Grund von Gemeinsamkeiten und Unterschieden. Dabei können die gleichen Gruppen entstehen (z.B. Katze und Hund), die auch mit dem Expertenwissen entstanden wären, allerdings weiß der Agent nicht, wie die Gruppen heißen. 

Reinforcement Learning: Hier soll der Agent selbstständig mit der Umgebung interagieren und ein vorgegebenes Ziel erreichen. Um dem Agenten dieses Ziel zu vermitteln, wird ihm zu bestimmten Zeitpunkten gesagt, ob er etwas gut oder schlecht gemacht hat. Dies könnte zum Beispiel am Ende eines Spiels sein, wobei dem Agenten das Gewinnen des Spieles als Erfolg gewertet wird. Der Agent muss das Spiel sehr oft spielen, bis er eine optimale Gewinnstrategie gefunden hat. 

Neuronale Netze 

Von Neuronalen Netzen hat man im Zusammenhang mit künstlicher Intelligenz schon oft gehört. Dabei ist meist nicht klar, was das ist und wieso das genutzt wird. Das möchten wir im Folgenden erklären. 

Ein Neuronales Netz soll das menschliche Gehirn möglichst genau modellieren. Dies geschieht mit künstlichen Neuronen, die wie die Neuronen im menschlichen Gehirn arbeiten: Wird an den Eingängen eines Neurons ein Eingangssignal gegeben, wird an anderen Ausgängen ein bestimmtes Ausgangssignal ausgegeben. Dieser Aufbau ermöglicht auch eine parallele Ausführung. Für sich betrachtet, hat jedes (künstliche) Neuron die einfache Aufgabe, die Eingangssignale mit einfacher Addition und Multiplikation zu verrechnen und ein Ergebnis an die nächsten Neuronen weiterzugeben. Durch die Vernetzung mehrerer Neuronen kann allerdings ein sehr komplexes Verhalten erzeugt werden, das dann als künstliche Intelligenz bezeichnet wird. 

Dieses Netz soll auf bestimmte Eingaben eine bestimmte Ausgabe generieren. Die Ausgabe sollte immer so sein, dass man dem Ziel ein Stück näher kommt. Der Agent nimmt dabei zuerst die Umgebung wahr und muss danach eine Aktion ausführen. Welche Aktion er als nächstes ausführt, entscheidet er aufgrund seiner Strategie, auch Policy genannt. Die Policy gibt vor, welche Aktion in einer bestimmten Situation ausgeführt werden soll. Hier kommen die Neuronalen Netze ins Spiel: Diese eignen sich sehr gut, um die Policy zu speichern und schnell wiederzugeben. Übertragen auf den Staubsaugroboter wäre die Eingabe in die Policy (und damit in das Neuronale Netz), dass der Raum dreckig ist. Die Ausgabe sollte dann bei einem guten Roboter sein, dass die Aktion Putzen ist. Natürlich kann die Policy auch ausgeben, dass der Raum gewechselt werden soll. Dies würden wir als Mensch allerdings nicht als optimale Aktion ansehen, um den Raum möglichst sauber zu bekommen. 

Um die Policy an die Umgebung anzupassen, muss das Neuronale Netz erst lernen, was sein Ziel ist und welche Aktionen zu bestimmten Situationen ausgegeben werden müssen. Diesen Prozess bezeichnet man als Lernen. 

Einsatzgebiete von neuronalen Netzen

Neuronale Netze erfreuen sich großere Beliebtheit in neuester Forschung. Vorne dabei ist dabei die Bilderkennung. Hier kann man mittlerweile relativ zuverlässig analysieren, was für Objekte sich in einem Bild befinden oder auch Personen Namen zuordnen. Auch bei der Spracherkennung und -generierung werden neuronale Netze eingesetzt, wie es bei Amazon Alexa, Apples Siri oder Google Assistent der Fall ist. In der medizinischen Diagnose können neuronale Netze aus Röntgenbildern die Krankheit zuverlässig bestimmen und auch selbstfahrende Autos bauen auf dem System auf. Alpha Go und Alpha Zero, die wir schon im letzten Teil dieser Serie angesprochen haben, nutzen ebenfalls neuronale Netze, um die momentane Spielsituation zu bewerten um daraus die optimalste Entscheidung zu treffen. 

Fazit - Grundlegende Begriffe zum Thema künstliche Intelligenz

Das Thema künstliche Intelligenz ist im Moment ein großes Thema. Viele neue Technologien bauen darauf auf und entwickeln sich schnell weiter. Um zu verdeutlichen, wie wichtig dieses Thema auch in Verbindung mit der Testautomatisierung ist, haben wir uns ersten wichtigen Grundbegriffen angenähert: 

  • Der Agent, der sich in der Umgebung bewegt
  • Die verschiedenen Formen des Lernens und 
  • Die Bedeutung von neuronalen Netzen und von Policys (Strategien) in diesem Zusammenhang. 

Quellen:

10. August 2021

Über den Autor

Bild des Benutzers Wilson Campero
Geschäftsführer, Senior Testmanager
Wilson Campero ist IT-Unternehmer und Experte für Softwarequalität sowie ISTQB Certified Full Advanced Tester. Seit 13 Jahren ist das Testen von Software sein Spezialgebiet.

Finden Sie weitere interessante Artikel zum Thema: