Loading ⌛Loading ⌛
👩🦰 Erinnerst du dich an Sigrún, welche vor Island auf einem Hochseeschiff die beiden Fischsorten Hering und Lodde bei Wind und Wetter von Hand sortieren musste (siehe nebenstehende Abbildung)? Du hattest ihr geholfen, mithilfe eines neuronalen Netzes einen Fischsortierapparat zu entwickeln. Diese Seite fasst das Wichtigste noch einmal zusammen.
⚠️ Solltest du dich nicht mehr daran erinnern (oder dieses Abenteuer noch nicht durchlebt haben) so raten wir dir, die ersten 4 Teile der Story 🐟 Künstliche Intelligenz für echte Fische durchzuarbeiten (ca. 45 Minuten) und anschliessend weiter unten mit Kapitel „4. Spezialfälle“ weiterzufahren.
Der Fischsortierapparat unterscheidet Hering und Lodde aufgrund mehrerer Messgrössen der Fische (z.B. Gewicht, Länge, Lichtreflexivität etc.). Für den Erfolg des Apparats ist die Auswahl dieser Messgrössen entscheidend. Wenn die Messgrössen schlecht gewählt sind, können die Fischsorten nicht oder nur schlecht voneinander getrennt werden und jeder noch so „intelligente“ Apparat wird versagen. Ebenso müssen alle „Varianten“ einer jeden Fischsorte in den Daten berücksichtigt werden (z.B. kleine, mittlere und grosse Fische). Wird der Apparat z.B. nur auf grosse Fische geeicht, so wird dieser bei kleinen Fischen versagen.
📐✏️ Für Sigrún hattest du zwei Messgrössen als Eingangsgrössen verwendet und die Fische gemäss diesen in ein Punktediagramm eingetragen. In der Abbildung rechts entspricht jede Achse einer Eingangsgrösse. Es wurden 12 Heringe und 12 Lodde vermessen und ins Punktediagramm eingetragen - die Heringe als blaue x, die Lodde als grüne ◯.
▶Run
klickst.
Das von uns verwendete neuronale Netz5)
Das von uns verwendete neuronale Netz besitzt zwei Input Neuronen, mehrere Hidden Neuronen und ein Output Neuron. Die beiden Eingangsgrössen der Fische werden links in die beiden Input Neuronen eingegeben, als Resultat wird rechts vom Output Neuron eine Zahl zwischen 0 und 1 ausgegeben.
Bevor das neuronale Netz gebraucht werden kann, muss dieses mit einem Trainingset trainiert werden. Das Trainingset besteht aus mehreren vermessenen Fischen, von welchen wir wissen, zu welcher Fischart sie gehören. Für jede Lodde soll eine 1 vom neuronalen Netz ausgegeben werden, für jeden Hering 0, diese beiden Zahlen werden als „Desired Output“ bezeichnet. Aus der Differenz neuronaler Netz Output und Desired Output wird ein Fehlerwert berechnet. Im Training werden die Gewichte zuerst zufällig gewürfelt. Danach werden sie in mehreren Schritten mithilfe des Trainingssets so eingestellt, dass der Fehlerwert immer kleiner wird. Ein Durchgang des gesamten Trainingsets wird als Epoche bezeichnet. In der Regel umfasst ein Training viele Epochen.
Ist das neuronale Netz trainiert, bleiben die Gewichte fix und das neuronale Netz kann verwendet werden, um unbekannte Fische zu „klassifizieren“. Wir legen dabei fest, dass Output < 0.5 als Hering erkannt wird und ein Output ≥ 0.5 als Lodde. Der Wert 0.5 wird als Threshold (Grenzwert) bezeichnet. Um herauszufinden, wie gut die Klassifikation ist, wird ein zweites Set verwendet, das „Validationset“.
In den vier Abbildungen rechts sind alle Eingangsgrössenpaare, welche den Output 0.5 produzieren, als rote Punkte eingezeichnet. Sie bilden eine Kurve, die sogenannte „Decision Boundary“. Alles oben links davon wird als Lodde, alles unten rechts davon als Hering erkannt. Für die Training- und Validationsets sind jeweils die Anzahl falsch klassifizierter Fische angegeben. In den beiden unteren Abbildungen wird die Decision Boundary von einzelnen Fischen beeinflusst. Sie ist stark gekrümmt und der Fehler für das Validationset ist viel grösser als für das Trainingsset. Dies wird als „Overfitting“ (Auswendiglernen) bezeichnet. In den beiden oberen Abbildungen erfasst die Decision Boundary den groben Unterschied der beiden Fischarten relativ gut, die Fehler für Training- und Validationset sind ähnlich gross, das neuronale Netz „generalisiert“ wie gewünscht.
Je mehr Hidden Neuronen ein neuronales Netz besitzt, desto mehr kann es sich „merken“ und desto anfälliger ist es auf Overfitting.
Du hattest mit dem Fischsortierapparat, der zwischen Hering und Lodde unterscheidet, eine Klassifikationsrate von rund 90% erreicht. Das hört sich nach viel an, jedoch sind 10% falsche Fische für Sigrún unbrauchbar.
Ein Grund für die verbleibenden 10% Fehler besteht darin, dass im orangen Bereich der Abbildung beide Fischarten gleichzeitig auftreten können. Existiert solch ein Bereich, wird von überlappenden Klassen gesprochen. ⚡ Es ist nicht möglich, überlappende Klassen fehlerfrei voneinander zu trennen!
Das konntest du jedoch durch folgende Interpretation der neuronalen Netz Output-Werte lösen:
▶Run
. Der grüne Bereich wird als Lodde erkannt, der blaue als Hering, der weisse Bereich ist der „Keine Ahnung“-Bereich. Das Ziel besteht darin, ausserhalb des „Keine Ahnung“-Bereichs 100% ✔️ Klassifikationsrate zu erreichen und den „Keine Ahnung“-Anteil (die Prozentzahl nach dem 🗑️-Symbol) so klein als möglich zu halten.
⚠️ Nicht nur überlappende Klassen stellen eine Fehlerquelle dar, sondern auch seltene Ereignisse (z.B. die Vorhersage eines Sturm oder Börsencrashs oder das Erkennen einer seltenen Krankheit etc.).
▶Run
und versuche dein Glück!
Es gibt viele verschiedene Verfahren, welche mithilfe von Daten konfiguriert werden (neuronale Netze, statistische Verfahren, andere Verfahren der künstlichen Intelligenz etc.). Bei der Erstellung dieser Verfahren müssen die meisten der nachfolgenden Herausforderungen überwunden werden. Darüber hinaus sind alle diese Verfahren durch die aufgelisteten Punkte limitiert.
Aus den folgenden Gründen werden die genannten Verfahren voraussichtlich (vielleicht selten, aber) immer Fehler produzieren, egal wie viel Rechenpower und wie viele Daten zur Verfügung stehen.
Loading ⌛
Loading ⌛