Machine Learning im Bereich AIOps: Teil 1

„ML ist so weitverbreitet, dass es Anwendungen gibt, bei denen wir gar nicht realisieren, dass es dabei eine Rolle spielt."

Mehr als reine „Buzzwords“: künstliche Intelligenz (KI), Machine Learning und Deep Learning – und wie diese Bereiche miteinander in Beziehung stehen.
Algorithmic IT Operations (AIOps) ist eine neue Kategorie, die ursprünglich von Gartner ins Leben gerufen wurde. Sie steht für Lösungsmodelle, die das Ziel haben, vor allem die Herausforderungen zu bewältigen, die mit dem Betrieb von Infrastrukturen der nächsten Generation verbunden sind. Gartner schätzt sogar, dass die Hälfte aller globalen Unternehmen bis 2020 AIOps aktiv einsetzen wird.

Der Kernpunkt von AIOps ist die „Algorithmik“. Diese impliziert den Einsatz von maschinellem Lernen zur Automatisierung von Aufgaben und Prozessen, die bisher menschliches Eingreifen erforderten. Echtes maschinelles Lernen für das IT Incident Management ist heute leicht verfügbar, aber es existiert nicht in jeder Herstellerlösung, die für sich beansprucht, eine AIOps-Lösung zu sein.

In einer Reihe von Blogbeiträgen werden wir im Folgenden versuchen, das Thema maschinelles Lernen im Kontext von IT Incident Management zu „entmystifizieren“.

Was sich hinter den „Buzzwords“ verbirgt

Zwei der größten „Buzzwords“, die in den letzten Jahren aus der Welt der Informatik und der Technologie-Start-ups in die Mainstream-Medien übernommen wurden, sind „Machine Learning“ und „künstliche Intelligenz“ (KI). Nehmen wir nun noch „Deep Learning“ dazu und es beginnt ein großartiges „Buzzword-Bingo“. Die drei Begriffe sind generell eng miteinander verknüpft und werden deshalb oft synonym verwendet, aber sie meinen nicht dasselbe. Wo liegt also der Unterschied?

In vielen Bereichen sind Definitionen nicht immer so klar, wie wir sie gerne hätten – sie haben unscharfe Grenzen und können sich im Laufe der Zeit ändern, je nachdem, wie sich unser Verständnis des Bereichs und unsere Fähigkeiten in diesem Bereich entwickeln. KI fällt in diese Kategorie. Die Beziehung zwischen künstlicher Intelligenz, maschinellem Lernen und Deep Learning besteht darin, dass jeder der drei Begriffe eine Spezialisierung innerhalb des anderen bezeichnet. KI deckt das breiteste Spektrum an Technologien ab, das maschinelle Lernen bezeichnet eine Reihe von Technologien innerhalb der KI und Deep Learning wiederum ist eine Spezialisierung innerhalb des maschinellen Lernens.

KI: eher künstlich oder eher intelligent

Eine der allgemeinsten Definitionen von KI, die dem Merriam-Webster-Wörterbuch entnommen wurde, lautet „die Fähigkeit einer Maschine, intelligentes menschliches Verhalten nachzuahmen“. Der Begriff „Maschine“ ist dabei wichtig, da KI nicht auf Computer beschränkt sein muss.
Eine wirklich KI-fähige Maschine erfordert eine Vielzahl von Technologien aus den verschiedensten Bereichen, wie z. B. Spracherkennung und Natural Language Processing, Computer-Bildverarbeitung, Robotik, Sensorik und natürlich eines unserer anderen „Buzzwords“, „Machine Learning“. In vielen Fällen ist das maschinelle Lernen nämlich ein Werkzeug, das von diesen anderen Technologien genutzt wird.

Schon in den Anfängen der KI stützte sie sich auf präskriptive Expertensysteme, um herauszufinden, welche Maßnahmen zu ergreifen sind, also „Wenn dies geschieht, dann tue das“. Und obwohl in einigen Bereichen präskriptive Expertensysteme noch immer ihren Platz haben, hat ihr Einfluss stark nachgelassen, denn diese Funktion wurde mittlerweile weitgehend durch maschinelles Lernen ersetzt. Die meisten Beobachter sind sich einig, dass das maschinelle Lernen heute der wichtigste Wegbereiter für leistungsfähige KI-Systeme ist.

Ein Paradebeispiel für moderne KI sind autonome Fahrzeuge. Sie verlassen sich maßgeblich auf viele verschiedene Technologien, die harmonisch ineinandergreifen müssen. Einige davon wiederum verlassen sich maßgeblich auf maschinelles Lernen und zwar insbesondere diejenigen, die es dem Auto ermöglichen, seine Umgebung zu erfassen und zu verstehen. Die heute gängigen Sprachassistenten wie Siri, Cortana, Alexa etc. verwenden eine Vielzahl von Technologien, die es ihnen ermöglichen, eine menschliche Stimme zu „hören“, um zu verstehen, welche Klänge welchen Wörtern und Phrasen entsprechen, die Bedeutung aus der Reihe von Wörtern abzuleiten, die sie gehört haben, und eine Antwort zu formulieren und entsprechend zu reagieren: alles Systeme, die mehrere Technologien – einschließlich maschinelles Lernen – erfordern.

Was ist also nun maschinelles Lernen?

Maschinelles Lernen ist ein Bereich innerhalb der Computerwissenschaften für Anwendungsformen unter dem Oberbegriff KI. Eine sehr treffende Definition stammt aus einem Kurs für maschinelles Lernen der Stanford University: „Maschinelles Lernen ist die Wissenschaft, Computer zum Handeln zu bringen, ohne explizit programmiert zu werden. Anstatt ein System mit einem ‚Wenn dies, dann jenes‘-Ansatz zu programmieren, werden in der Welt des maschinellen Lernens die Entscheidungen, die das System trifft, aus den Daten abgeleitet, die ihm übermittelt wurden.“ Manche bezeichnen dies als „Learn by example“-Ansatz, aber es steckt noch mehr dahinter.

Maschinelles Lernen ist mittlerweile so weitverbreitet, dass es zahllose Anwendungen gibt, bei denen wir vielleicht gar nicht realisieren, dass es dabei eine Rolle spielt. Automatische Systeme zur Postsortierung oder zur Geschwindigkeitsüberwachung beruhen auf unglaublich präzisen Implementierungen einer Technologie, die als „Optical Character Recognition (OCR) bekannt ist, d. h. auf dem Erkennen von Text in Bildern. Diese Technologie ermöglicht es, Adressen auf Briefumschlägen und Paketen zu erkennen oder das Nummernschild eines Fahrzeugs, das eine rote Ampel überfährt oder vor einer Schule zu schnell fährt. OCR würde aber ohne maschinelles Lernen nicht existieren (Strafzettel leider schon).

Die „Meinten Sie vielleicht …?“ oder „Ähnliche suchen“-Funktion in Suchmaschinen sowie Spam-Filtern, Gesichtserkennungssysteme und Empfehlungssysteme im E-Commerce, Video- und Musik-Streaming-Dienste – die Liste ist endlos und nicht alle dieser Anwendungen schaffen es aufgrund ihrer Öffentlichkeitswirksamkeit in die Schlagzeilen.

Überwacht und nicht überwacht

Wie in den nächsten Beiträgen dieser Reihe noch detaillierter besprochen wird, enthält maschinelles Lernen eine Vielzahl unterschiedlicher Bereiche. Dies ergänzt unsere „Buzzword“-Sammlung um zwei weitere Einträge: „Supervised (überwachtes/betreutes) Machine Learning“ und „Unsupervised (nicht überwachtes/nicht betreutes) Machine Learning“. Obwohl die beiden Begriffe fast gleich sind, unterscheiden sich die zugrunde liegenden Algorithmen und deren Anwendung doch deutlich.
Unüberwachte Techniken sind im Allgemeinen einfacher und versuchen, Muster innerhalb einer Reihe von gegebenen Beobachtungen zu finden – Muster, von denen Sie bisher überhaupt nicht wussten, dass sie existierten. Empfehlungssysteme beruhen maßgeblich auf diesen Techniken.
Dagegen verfolgt überwachtes Lernen den „Learn by example“-Ansatz. Überwachte Lernsysteme benötigen Beispiele dafür, was „gut” ist und was „schlecht“ – diese E-Mail ist Spam, diese E-Mail nicht.
Im OCR-Bereich würde das System mehrere Bilder unterschiedlicher Buchstaben zusammen mit der Information erhalten, welchen Buchstaben das jeweilige Bild repräsentiert. Da das System immer mehr Beispiele erhält, „lernt“ es, wie es zwischen einer Spam-E-Mail und einer Nicht-Spam-E-Mail unterscheiden kann, es lernt die verschiedenen Anordnungen von Pixeln, die denselben Buchstaben und Zahlen entsprechen. Als Folge kann das System dann, wenn ihm ein neues Beispiel, insbesondere ein noch nicht bekanntes Beispiel, gezeigt wird, richtig erkennen, ob die E-Mail Spam ist oder nicht. Oder es erkennt die Adresse, an die der Brief geschickt werden muss, oder das Kennzeichen des zu schnell fahrenden Autos.

Neuronale Netze

Im Bereich des betreuten Lernens gibt es zahlreiche Techniken, darunter eine Technik namens „neuronale Netze“. Neuronale Netze sind Softwaresysteme, die versuchen, – wenn auch sehr grob – die Funktionsweise eines menschlichen Gehirns nachzuahmen. Das Konzept des neuronalen Netzes gibt es schon seit mehreren Jahrzehnten, seine wahre Stärke wurde aber erst vor relativ kurzer Zeit erkannt. Ein neuronales Netz besteht aus künstlichen Neuronen, die alle miteinander verbunden sind. Werden dem Netz verschiedene Trainingsbeispiele (z. B. ein Bild oder eine E-Mail) gemeinsam mit dem erwarteten Ergebnis des Systems (z. B. ein Buchstabe auf dem Bild oder ob es sich um eine Spam-E-Mail oder nicht handelt) gezeigt, ermittelt das Netzwerk, welche Neuronen es aktivieren muss, um unter verschiedenen Umständen die gewünschte Ausgabe zu erzielen. Das Netz weiß also, wie es sich konfigurieren muss, damit andere Neuronen aktiviert werden, wenn eine Spam-E-Mail gezeigt wird, im Gegensatz zum Fall, dass keine Spam-E-Mail gezeigt wird. Der Rest des Systems kann dann eine Entscheidung treffen, wie mit dieser E-Mail umzugehen ist.

Kommen wir nun zu unserem letzten „Buzzword“ (zumindest vorläufig) – dem „Deep Learning“. Deep Learning ist ein sehr spezifischer und äußerst spannender Bereich innerhalb neuronaler Netze.
Am einfachsten stellt man sich ein Deep-Learning-Netzwerk als ein größeres und komplexeres Netzwerk mit komplexeren und ausgeklügelteren Interaktionen zwischen den einzelnen Knoten vor. Der Begriff „Schichten“ wird häufig im Bereich der neuronalen Netze verwendet und erstaunliche Ergebnisse lassen sich bereits mit Netzwerken erzielen, die nur aus einer einzigen Schicht bestehen. Deep Learning verwendet mehrere „Schichten“ mit komplexen Wechselwirkungen innerhalb jeder Schicht und zwischen den Schichten. Folglich sind die Muster, die es identifizieren kann, und die Probleme, auf die es angewendet werden kann, auch komplexer.
Deep Learning steht an der Spitze der Forschung zum maschinellen Lernen und einige der Fortschritte in diesem Bereich haben zu Technologien wie automatischer Übersetzung, automatischer Generierung von Bildunterschriften und automatischer Textgenerierung (z. B. automatische Textgenerierung im Stil von Shakespeare) geführt. Und so wie das maschinelle Lernen der Hauptmotor der künstlichen Intelligenz ist, ist das Deep Learning im Moment der Hauptmotor für Fortschritte im maschinellen Lernen.

Coming up next …
Der nächste Beitrag liefert eine Einführung in die verschiedenen maschinellen Lerntechniken, APIs und Frameworks, die heute für das IT Incident Management verfügbar sind.