Wie Algorithmen lernen und sich anpassen

24. Mai 2018
Sohrob Kazerounian
Distinguished AI Researcher
Wie Algorithmen lernen und sich anpassen

Es gibt zahlreiche Techniken zur Entwicklung von Algorithmen, die in der Lage sind, mit der Zeit zu lernen und sich anzupassen. Grob gesagt können wir diese Algorithmen in drei Kategorien einteilen: überwachtes, unüberwachtes und verstärkendes Lernen.

Überwachtes Lernen bezieht sich auf Situationen, in denen jede Instanz von Eingabedaten von einem gewünschten oder Zielwert für diese Eingabe begleitet wird. Handelt es sich bei den Zielwerten um eine Reihe von endlichen diskreten Kategorien, wird die Lernaufgabe oft als Klassifizierungsproblem bezeichnet. Handelt es sich bei den Zielwerten um eine oder mehrere kontinuierliche Variablen, wird die Aufgabe als Regression bezeichnet.

Zu den Klassifizierungsaufgaben gehört beispielsweise die Vorhersage, ob es sich bei einer bestimmten E-Mail um Spam oder Ham (d. h. Nicht-Spam) handelt oder welcher von N Malware-Familien eine bestimmte Binärdatei zugeordnet werden sollte. Eine Regressionsaufgabe könnte darin bestehen, vorherzusagen, wie viele Sicherheitsvorfälle ein Host in einem Netzwerk in einer bestimmten Zeit verursachen wird. In beiden Fällen besteht das Ziel des überwachten Lernens darin, ein funktionales Mapping zwischen dem Eingaberaum, aus dem die Daten stammen, und einem gewünschten oder Zielraum, der die Daten beschreibt, zu erlernen.

Im Gegensatz dazu bezieht sich unüberwachtes Lernen auf Szenarien, in denen ein Algorithmus oder Agent allein aus Rohdaten lernen muss, ohne Feedback oder Überwachung in Form von Zielwerten. Dies bedeutet oft, dass er lernen muss, ähnliche Beispiele in den Daten zu gruppieren - eine Aufgabe, die als Clusteringbekannt ist - oderetwas über die zugrunde liegenden Verteilungen im Eingaberaum zu lernen, aus dem die Daten gezogen werden.

Mit Hilfe von Clustering können beispielsweise Gruppen von Rechnern in einem Netzwerk ermittelt werden, die sich anhand von Merkmalen wie der Anzahl der internen bzw. externen Hosts, zu denen sie Verbindungen aufbauen, und der Anzahl der Hosts, die Verbindungen zu ihnen aufbauen, ähneln.

Alternativ können unüberwachte Methoden für die Erkennung von Anomalien eingesetzt werden, indem die Eigenschaften und Statistiken des normalen Datenverkehrs in einem Netz erlernt werden, so dass Netzverbindungen, die zu stark von der Norm abweichen, als anomal bezeichnet werden können. Auch wenn es schwierig sein mag, alle möglichen Anwendungsfälle aufzuzählen, besteht das Ziel des unüberwachten Lernens darin, etwas über die zugrunde liegenden Daten zu lernen, ohne dass vorher festgelegte Kennzeichnungen verwendet werden, die sie beschreiben.

Eine der historischen Entwicklungen, die zur Popularität des Deep Learning geführt haben, war das unbeaufsichtigte Vortraining. Es diente zum Erlernen eines anfänglichen Satzes von Gewichten in einem neuronalen Netzwerk, bevor überwachte Methoden zur Feinabstimmung des Lernens für Bildklassen verwendet wurden, die das Netzwerk zu kategorisieren versuchte. Einige gute Beispiele für unbeaufsichtigtes Vortraining finden sich in Fukushimas Neocognitron-Modell von 1975 und in Hintons und Salukhutdinovs tiefer Botlzmann-Maschine.

Schließlich bezieht sich das Verstärkungslernen auf Lernparadigmen, bei denen ein Agent, der mit einer Umgebung interagiert, eine Reihe von Aktionen ausführt. Jede Aktion kann den Zustand der Umgebung verändern, und anstatt explizites Feedback über die richtige Aktion bei jedem Schritt zu erhalten, erhält er nur allgemeine Belohnungssignale darüber, wie gut er abschneidet.

Prototypische Beispiele für das Verstärkungslernen finden sich heute in Videospielen, bei denen ein Agent den Zustand der Umgebung beobachtet. Beim Schachspiel könnte dies der Zustand des Spielbretts oder bei einem Nintendo-Spiel die Menge der Pixel auf dem Bildschirm sein. In jedem Zeitschritt entscheidet er sich für eine geeignete Aktion, z. B. welche Figur als Nächstes gezogen werden soll oder ob er nach links, rechts, oben, unten ziehen oder a/b drücken soll.

Der Agent erhält keine explizite Rückmeldung darüber, welche Aktion er bei jedem Schritt am besten durchführen sollte. Stattdessen erhält er eine Rückmeldung durch ein Belohnungssignal, das möglicherweise erst einige Zeit nach der Aktion kommt. Dabei kann es sich beispielsweise um eine positive Belohnung für das Gewinnen einer Schachpartie oder das Überwinden eines Levels handeln oder aber um eine negative Belohnung für jeden Punkt, den ein Gegner in einem Spiel wie Pong erzielt.

Allein aufgrund des Belohnungssignals sollte der Agent versuchen, die Wahrscheinlichkeit von Aktionen zu erhöhen, die zu positiven Belohnungen führen, und die Wahrscheinlichkeit von Aktionen zu verringern, die zu negativen oder bestrafenden Belohnungen führen. Verstärkungslernen wird wahrscheinlich zu einem immer wichtigeren Aspekt der automatisierten Pen-Tests und der Erkennung von Eindringlingen werden. Es befindet sich jedoch im Hinblick auf den Bereich der Cybersicherheit noch in einem relativ neuen Stadium und wird sich in Produktionsszenarien wahrscheinlich nicht bewähren.

Das KI-Team von Vectra hat bereits mit der Erforschung und Entwicklung von Algorithmen für das Reinforcement Learning begonnen, um Agenten zu entwickeln, die Angriffsverhalten erlernen, mit denen IDS-Systeme umgangen werden können, und damit die automatische Erstellung von Daten ermöglichen, aus denen ein IDS-System lernen kann.