Systeme in der Künstlichen Intelligenz oder auch Machine Learning Algorithmen können auf 4 grundlegende Bausteine reduziert werden:
Vereinfacht kann man ein Intelligentes System für das Beispiel der Klassifizierung so darstellen:
Wir fokussieren uns auf den nächsten Seiten auf die Objektive Funktion und den Einfluss der Trainingsdaten. Die Funktionsweise wird anhand von Beispielen und Visualisierungen erklärt. Falls Sie sich für die mathematischen Details der Optimierung und Definition des Objectives interessieren, können Sie sich hierzu weitere Details auf der Bonusseite finden.
Um eine Funktion systematisch zu finden und damit eine Regression zu berechnen, optimierieren wird eine Metrik die 'mean-square error' (MSE) heißt. Der MSE misst den Abstand zwischen der Funktion ($\hat{y}$) und den Datenpunkten ($y$). Die optimierte Regressionsfunktion ist die Funktion, welche den kleinsten MSE hat.
                          Ein $MSE = 0$ bedeuted, dass alle Datenpunkte auf der optimierten Funktion liegen. Funktion 1 hat ein MSE von $MSE(F1,y) =$0.92 und Funktion 2 hat ein MSE von $MSE(F2,y) = $0.06. Entspricht dies Ihrer Vermutung? 
Die optimierte Regressionsfunktion wird oft auch als das 'Model' der Daten bezeichnet.
                        
Der erste Term $a x^0$ wird oft vereinfacht geschrieben als $a$, da $x^0 = 1$ für alle $x$. Da der Term eine Konstante ist, wird sie auch als 'Offset' bezeichnet. Eine Funktion mit 5 Parameter würde uns erlauben einen Term mit der Potenz 4 im Modell zu addieren. Eine Visualisering, wie sich die Funktionen mit der Anzahl der Parametern verändert sehen sie hier:
Im folgenden versuchen wir die Ergebnisse des folgenden (fiktiven) Beispiel mit einer Regression zu beschreiben. Es wurde die Testleistung von Probanden abhängig von der Zeit, die sie zum Lernen hatten gemessen. Die Verbesserung (im 2. Testzeitpunk im Vergleich zum 1. Testzeitpunkt) abhängig von der Lernzeit ist unten visualisiert (Figur: Gesamtdaten). Bei sämtlichen Optimierungsalgorithmus zählt es zum Standardverfahren die Gesamtdaten in ein Trainings- und Testset zu unterteilen. Die Figur 'Trainings-/Testset' zeigt eine solche Aufteilung. Aufgrund der Aufteilung berechnet man auch einen Trainings-MSE und einen Test-MSE. Warum könnte dies wichtig sein? Wie vorhin erwähnt werden die Regressionsfunktion anhand der Anzahl der Parameter definiert. Daher müssen Sie vorher entscheiden, wie viele Parameter die Regression berücksichtigt. Mit dem Slider lassen sich die Anzahl der Parameter verändern. Sind mehr Parameter immer vorteilhaft? Wie verändert sich der Trainigs- und Test-MSE abhängig von der Parameteranzahl?in der Regression einstellen.Clustering-Algorithmen bezeichnen Algorithmen, die die Gesamtdatenmenge in Gruppen einzuteilen. Ein wichtiger Unterschied zur Klassifizierung ist, dass die Datenmenge keine keine Label enthält. Daher zählt Clustering zu den unsupervised Algorithmen .
Anhand der Distanz zwischen den einzelnen Datenpunkten, werden sie einer der n Gruppen zugeteilt. Wie bei der Regression ist die Anzahl der Cluster/Gruppen ein Hyperparameter, welcher vorher festgelegt werden muss. Clustering kann vereinfacht zusammengefasst werden: Datenpunkte, die nah beiander liegen, sind in dem selben Cluster. Datenpunkte, die weit entfernt voneinander sind, sind in unterschiedlichen Clustern.
Die Abbildung visulisiert dieses Prinzip:Um die Auswirkungen der Hyperparameterwahl zu explorieren, beschäftigen wir uns im Folgenden mit einem (fiktiven) Datensatz zum Zusammenhang von Husten- und Sportfrequenz. Probanden haben über 4 Wochen dokumentiert, wie häufig sie Sport machen und wie häufig sie Hustenanfälle haben. Die Daten sind Frequnzen, die die durschnittliche Häufigkeit pro Woche angeben. Fällt Ihnen bei den Datenpunkten etwas auf?
Der Datensatz ist normalisiert und es gibt negative Frequenzen. Normalisieren der Daten ist ein Standardverfahren, damit alle Merkmale in einem Wertebereich liegen, der optimal ist, um zu optimieren. Um die Daten zu normaliseren, berechnen wir den Mittelwert $\mu = \frac{1}{n}\sum_i{x_i}$ und die Standardabweichung $\sigma = \frac{1}{n} \sum_i{(x_i - \mu)^2}$ und sklaieren alle Datenpunkte $x_i$ mit den Werten: $$ x_{normalised} = \frac{x_i - \mu}{\sigma}$$ Daraus folgt, dass $\mu_{normalised} = 0$ und $\sigma_{normalised} = 1$. Mit dem Toggler können Sie zwischen der Visualisierung der Rohdaten und dem normalisierten Datensatz wechseln.
Mit den normalisierten Daten führen wir ein Clustering durch. Der Algorithmus wird $K$-Means Clustering genannt. $K$ bezeichnet hier auch die Anzahl der Cluster, die benutzt wird. Mit dem Slider können Sie $K$ verändern.
Dadurch das Clustering keine Labels verwendet und diese generell unbekannt sind, gibt es kein korrektes Clustering. In unseren Beispiel sehen wir, dass der große Überlapp zwischen Gruppe 1 und 3 dazu führt, dass der K-Mean Algorithmus Cluster berechnet, die weniger Überlapp haben. Können Sie erklären warum dies so ist?
Im Gegensatz zu Clustering, benötigen Klassifikations-Algorithmen Labels, um zu predizieren welcher Datenpunk zu welcher Klasse gehört. Daher zählen Klassifizierungs-Algorithmen zu den supervised KI-Techniken. Die Funktionsweise kann vereinfacht beschrieben werden als: Klassifizierungsalgorithmen optimieren Funktionen, die den (hochdimensionalen) Merkmalsraum so unterteilen, dass die höchste Anzahl an Datenpunkte korrekt klassifiziert werden.
Dies bedeuted wir berechnen die Accuracy hinsichtlich des Klassenlabels und optimieren unser System basierend auf den Fehlern. Daher müssen wir auch wieder unsere Gesamtdatenmenge in ein Trainings- und Testset unterteilen. Das Trainingsset werden während der Optimierung verwendet, um das System zu trainieren und die Testdaten dienen der objektiven Bestimmung der Güte des trainierten Algorithmus.
Im folgenden benutzen wir den fiktiven Datensatz des Clusterings, um die Funktionsweise der Klassifizierung zu visualisieren. Allerdings haben unsere Daten ein weiteres Merkmal neben der Husten- und Sportfrequenz: die Gruppe. Die Entscheidungsfunktion des Algorithmus ist dargestellt durch die eingefärbte Fläche im Merkmalsraum. Alle Punkte, die im blauen Bereich sind, werden als Gruppe 1 zugehörig klassifiziert.
Wie auch zuvor besitzen Klassifizierung Hyperparameter, die wir zuvor festlegen müssen. In diesem Fall ist es die Anzahl der Parameter. Eine nähere Erläuterung finden Sie weiter unten im 30-dimensionalen Klassifizierungsproblem. Die Auswahl ermöglicht Ihnen die Parameter im oberen Beispiel zu varriieren. Was fällt Ihnen auf? Gibt es Punkte, die immer falsch klassifiziert werden? Woran könnte dies liegen?
Echte Datensätze sind häufig hochdimensional. Das heißt, es werden mehrere Merkmale pro Datenpunkt erfasst. Zudem sind die grundlenden Beziehung zwischen den Merkmalen und Gruppen unbekannt. KI (und Maschinelles Lernen) kann uns helfen die komplexen Beziehungen zwischen den Merkmalen und Klassenlabel zu approximieren. Im Folgenden beschäftigen wir uns mit dem Breast Cancer Wisconsin Datensatz.
Der Datensatz erfasst die Messungen von 569 Tumorschnitten für die jeweils 30 Merkmale errechnet wurden, wie z.B. der durchschnittliche Radius oder die durchschnittliche Textur. Die Gutartigkeit der Gewebeschnitte wurde bestimmt und dient als Klassenlabel: 'malignant' and 'benign'. Die Tabelle zeigt Ihnen alle Merkmale der ersten 5 Proben an.
                        
Da wir 2 Klassen haben, lassen sich die Prediktionen in 4 Kategoriern aufteilen und bewerten:
Diese Begriffen sollten Ihnen aus der Statistik und Testtheorie bereits bekannt sein. Auf unseren Datensatz angewendet mit dem Ziel korrekt bösartige (malignant) Tumore zu identifizieren ergibt sich folgende Tabelle:
Welche Werten würden Sie als akzeptabel empfinden?Im folgenden trainieren wir ein Multi-Layer-Perceptron (MLP) mit dem Datensatz, den wir zuvor wieder in ein Test- und ein Trainingsset aufgeteilt haben. Ein MLP besteht aus mehreren Schichten von Neuronen. Die Anzahl der Schichten, wie auch die Anzahl der Neurone und deren Verbindungen in jeder Schicht wird zusammen als Architektur des Netzwerkes bezeichnet. Die Architektur mit all seinen Eigenschaften ist wieder ein Hyperparameter, den wir selber apriori (also vorher) bestimmen müssen. Um Ihnen eine bessere Vorstellung von einem MLP zu geben, zeigt die Architektur eines (100,15)-MLP. Die zahlen bedeuten, dass das MLP 100 Neurone in der 2. Schicht und 15 Neurone in der 3. Schicht hat. Der Output sind 2 Neurone: Je eins per Klasse.
Neurone sind als Kreise dargestellt. Die Abbildung zeigt nicht alle Gewichte des Netzwerkes. Jedes Neuron im Input ist mit jedem Neuron in der 1. Schicht verbunden. Jedes Neuron in der 1. Schicht ist mit jedem Neuron in der 2. Schicht verbunden usw.. Die Anzahl der 
Erinnern Sie sich an den Zusammenhang zwischen der Anzahl der Parameter und der Performance der Regression? Denken Sie der Zusammenhang hier ist auch zo gegeben? Woran merkt man, dass das trainierte Netzwerk zu groß ist?
Das folgende Menu erlaubt Ihnen verschiedene Architekturen auszuwählen und zu trainieren. Die Ergbenisse werden Ihnen in der Tabelle darunter angezeigt. Was fällt Ihnen auf? Welche Performance empfinden Sie als akzeptabel?
Wie die Beispiele der Regressions, des Clusterings und der Klassifikation gezeigt haben ist das Ziel von KI Systemen statische Zusammenhänge im Datensatz zu identifizieren. Daher ist die Güte und Neutralität des Datensatzes zentral.
Wenn die Daten selber Korrelationen beinhalten, die z.B. durch die Messungstechnik entstehen, also 3. Quellen können KI-Systeme diese identifizieren bzw. ausnutzen. Das heißt es können Zusammenhänge erlernt werden, die die Performance des Systems erhöhen, es aber weniger robust machen. Diese unbeabsichtigen oder versteckten Korrelationen nennt man Bias.
Bias kann durch verschiedene Quellen entstehen. Wie oben genannt, kann es ein systemischer Einfluss im Datensatz selber sein, z.B. durch unsaubere Datenerhebung. Bei der Klassifizierung kann es imbesonderen zum Bias kommen, wenn Klassen unterrepräsentiert sind.
In kurz: Bias ist eine Verzerrung der zugrundlegenden statistischen Zusammenhänge im Datensatz durch externe Einflüsse.
Bevor Sie sich durch die beiden folgende Beispiele durcharbeiten: Welche Biasquellen können in medizinischen Datensätzen auftreten? Welche Biases sind insbesondere im Gesundheitsmanagement zu beachten?
Um die Effekte von Bias in den Trainingsdaten zu explorieren, nutzen wir ein Standardproblem im Bereich des Maschinellen Lernens: Die Klassifizierung von CIFAR-10 Bildern . CIFAR-10 ist ein Datenset mit natürlichen Bildern und ihren dazugehörigen Klassen. Es enthält 10 Klassen: Airplane, Car, Bird, Cat, Deer, Dog, Frog, Horse, Ship und Truck . Der Standard-Trainings- und Testset besteht aus 50000 und 10000 Bilder. Jedes Bild ist 32x32 Pixel groß. Hier können Sie 25 Beispielbilder sehen inklusive ihrer Klassen.
Wie schätzen Sie diese Menge an Trainingsdaten ein? Ist das viel oder wenig für die 10 Klassen von natürlichen Bildern?
Wie Sie sehen können sind die Bilder sehr divers und es sind viele verschiedene Aufnahmewinkel und Positionen innerhalb der ersten 25 Bilder in der Datenmenge zu sehen. Das macht die Klassifizierung ein komplexes Problem.
Im Folgenden benutzen wir wieder ein Neuronale Netzwerk um dieses Problem zu lösen. Allerdings müssen wir die Größe des Netzwerkes unserem Problem anpassen: Das Netzwerk, was wir im trainieren hat 7 Layers und insgesamt 62006 trainierbare Parameter. Die Architektur ist die eines Convolutional Neural Network (CNN), und basiert auf dem LeNet (LeCun et al., 1998).
Hinweis: Je größer ein Netzwerk, desto mehr Zeit und Energie wird benötigt, um es zu trainieren. Wir benutzen eine kleinere und inzwischen veraltete Architektur, da die Probleme durch inadäquate Trainingsdaten unabhängig von der Architektur sind.
Wir trainieren zuerst unser CNN mit den Standard-Datesatz, um einen Vergleichswert neben dem Zufallslevel von 10% zu haben. Die nachfolgende Grafik zeigt Ihnen die generelle Accuracy (Titel) und eine Confusion-Matrix. Die Confusion-Matrix zeigt die Aufteilung pro Klasse der Prediktionen. Daher können Sie klassenweise einsehen, mit welcher anderen Klasse die Testbilder am häufigsten verwechselt (also confused) werden.
Wie schätzen Sie diese Performance ein (z.B. im Vergleich zum Zufallsniveau)? Woran könnte es liegen, dass Hunde zu 26 % als Katzen misklassifiziert werden?
Die Trainingsdaten enthalten die gleiche Anzahl an Bildern von jeder Klasse. Wie beeinflusst es die Performance, wenn wir die Anzahl der Katzen bilder auf 20% der Anzahl jeder anderen Klassenbeispiele reduzieren?Mit dem Schieber trainieren Sie ein Netzwerk mit der selben Architektur wie unser Standard-CNN. Allerdings ist die Anzahl der Katenbilder auf 20% reduziert in unseren Traininsdaten. Vergleichen Sie die Performance und Confusionmatrix von diesem Red-CNN zum Standard-CNN.
Denken Sie an den Leitspruch 'Wenn Sie Hufgeräusche hören, denken Sie an Pferde nicht Zebras.' Was bedeuten Zebras für die Trainings- und Testdatenverteilung?
Denken Sie an die Misklassifizierung im Standard-CNN zurück. Denken Sie diese Fälle können auch bei der Klassifizierung von psychologischen Krankheiten auftreten? Warum?
Das Standard-CIFAR-10 Datenset ist frei von 'Messfehlern' oder Verunreinigungen, daher fügen wir künstlich eine systemische Verunreinigung in unsere Trainingsdatensatz ein. Hier können Sie 25 Beispielbilder inklusive ihrer Klassen sehen. Können Sie die Verunreinigung identifizieren?
Nutzen Sie den Schieber um sich 5 weitere Beispielbilder einer bestimmten Klasse anzeigen zu lassen. Finden Sie eine nichtkausale Korrelation zwischen den Bildern?
Wie wird sich diese Manipulation auf die Performance und die Confusion-Matrix auswirken? Was erwarten Sie?
Da wir jetzt 2 Test-sets zur Verfügung haben, das Standard-Testset und das verunreinigte Testset, sollten sie sich die Performance auch auf beiden Sets anschauen. Mit dem Auswahlmenü können Sie zwieschen den Ergebnissen wechseln.
Im folgenden wollen wir unser neues neu-trainiertes Netzwerk weiter testen und geben ihm folgende Bilder:
Schreiben Sie sich ihre Vermutungen zu den predizierten Klassen auf. Benutzen Sie den Schieber um sich die Klassifizierung von unseren 'Adversarial'-CNN anzeigen zu lassen.
Info: Adversarial attacks, randomisierte (oder auch systemische) Manipulationen von den Testdaten werden genutzt, um die Robustheit von KI-Systeme wie CNNs oder Transformer zu testen. Warum ist es wichtig, dass Systeme gegen Adversarialattacks robust sind?
Unter der Trainingsmethode versteht man generell die Adaption der Parameter hinsichtlich der objektiven Funktion. Oft wird von optimalen Updates gesprochen. Alledings gibt es 3 verschiede Klassen von Trainingsalgorithmen:
Note:Da Reinforcement learning seine eigene Theorie und Updatestrategie besitzt, werden wir dies hier nicht weiter besprechen. Falls Sie doch daran interessiert sind empfehle ich Ihnen Resourcen zu Reinforcement-Learning/TD-Learning zu lesen.
Im Folgenden beschäftigen wir uns mit der optimalen Strategie die Parameter eines Systems zuadaptieren. Diese heißt Gradient-descent.
Gradient descent berechnet die Richtung in dem der Fehler reduziert wird. Das heißt wir suchen nach dem (globalen) Minima der Fehler-funktion. Die Abbildung unten visualisert dies:
Wie Sie sehen, hat sich der Fehler von Punkt I zu Punkt II durch das Parameterupdate um 1 verringert.
Mathematisch ist dies wie folgt zu beschreiben:
Das Parameterupdate $\Delta w_{ij}$ ist proportional zu der negativen Gradienten des Fehlers $E$ abhängig zu dem Parameter $w_{ij}$:
$$\Delta w_{ij} = - \eta \frac{\partial E}{\partial w_{ij}}$$$\eta$ ist ein multiplikativer Faktor, der die Schrittgröße bestimmt. Er wird auch Lernrate genannt. Je größer $\eta$, desto größer sind die Parameter updates. Zu große Lernraten kann zu einer schlechten Performance führen, weil die gesuchten Minima übersprungen werden.
Unsere Fehlerfunktion $E$ (auch Loss genannt) wird hierbei durch unser Objective bestimmt. Im folgenden nutzen wir eine kontinuierliche Fehlerfunktion, den MSE zwischen den Output und dem Zielwert $t$, die wir schon in der Regression kennen gelernt haben. Damit ist unseren Fehlerfunktion definiert als:
$$E = \frac{1}{n}\sum_i(t - o_i)^2$$$o_i$ ist der Output unseres Neuron $i$. Dieser ist abhängig von dem Input $net_i$ , der wiederum vom Gewicht/Parameter $w_{ij}$ und dem Output von Neuron $j$:
$$ net_i = \sum_j w_{ij}o_i$$ $$o_i = f(net_i)$$f(net_i) wird die Aktivierungsfuntion eines Neurons genannt. Es gibt verschieden Möglichkeiten für die Aktivierungsfunktion und diese kann auch neuronspezifisch sein in einen großen Netzwerk. Wichtig ist, dass die Aktivierungsfunktion differenzierbar ist.
Mit diesen Definition können wir uns jetzt die Differentialgleichung der Fehlerfunktion genauer anschauen:$$\frac{\partial E}{\partial w_{ij}} = \frac{\partial E}{\partial net_i}\frac{\partial net_i}{\partial w_{ij}}$$
Aus der Definition des Input und Outputs und deren Zusamenhang, gilt:
$$ \frac{\partial net_i}{\partial w_{ij}} = \frac{\partial}{\partial w_{ij}}\sum_k o_k w_{ik} = o_j $$Wir definieren das Fehlersignal $\delta_i$ als:
$$\delta_i = - \frac{\partial E}{net_i}$$Hierdurch können wir unser Parameterupdate umformulieren zu:
$$\Delta w_{ij} = \eta o_j \delta_i$$Das heißt, dass das Parameterupdate ist das Produkt des Output des presynaptischen Neurons $j$ und dem Fehler des postsynaptischen Neurons $i$.
Um das Parameterupdate errechnen zukönnen, muss auch $\delta_i$ hergeleitet werden: $$\delta_i = - \frac{\partial E}{\partial net_i} = - \frac{\partial E}{\partial o_i}\frac{\partial o_i}{\partial net_i}$$
Aus der Definition des Outputs und Inputs folgt:
$$\frac{\partial o_i}{\partial net_i} = f'(net_i)$$Bei dem Differential des Fehlers nach dem Output des Neurons ist es wichtig im allgemeinen 2 Fälle zu unterscheiden:
Das heißt, der Fehler der Output-Neurone muss zuerst berechnet werden, weil der Fehler aller nicht-Output-Neurone die Summe aller Fehler ihrer postsynaptische Neurone gewichtet mit dem Gewicht/Parameter der Verbindung ist. Während die Aktivität vorwärts durch das Netzwerk propagiert wird: Die Aktivierung der Neurone in den späteren Schichten ist abhängig von der Summe ihrer presynaptischen Neurone; werden die Fehler rückwärts durch das Netzwerk propagiert. Deswegen wird diese Art des Lernens mittels Gradient-descent auch Backpropagation genannt.
Hier finden Sie die Referenzen zu den verwendeten Datensätzen, Büchern aus dem Bereich des Maschinellen Lernens und den erwähnten Papern.
Datensätze: