Dies ist eine alte Version des Dokuments!
Loading ⌛Loading ⌛
👩🦰 Erinnerst du dich an Sigrun, welche auf einem Hochseeschiff vor Island die beiden Fischsorten Hering und Lodde bei Wind und Wetter von Hand sortieren musste (siehe nebenstehende Abbildung)? Du hattest ihr damals 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 erlebt haben) so raten wir dir, die vierteilige Story 🐟 Künstliche Intelligenz für echte Fische durchzuarbeiten (das dauert ca. 45 Minuten) und anschliessend auf dieser Seite 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 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 können 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 verwendet und die Fische gemäss dieser beiden Messgrössen in ein Punktediagramm eingetragen. In der Abbildung rechts entspricht jede Achse einer Messgrö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 Messwerte 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 vom neuronalen Netz Output zu diesen Desired Outputs wird ein Fehlerwert berechnet. Im Training werden die Gewichte zuerst zufällig gewürfelt. Danach werden die Gewichte in mehreren Schritten mithilfe des Trainingssets so eingestellt, dass der Fehlerwert immer kleiner wird. Ein Trainingsdurchgang des gesamten Trainingset wird als Epoche bezeichnet. In der Regel umfasst ein Training viele Epochen.
Ist das neuronale Netz traniert, bleiben die Gewichte fix und das neuronale Netz kann verwendet werden, um unbekannte Fische zu „klassifizieren“. Wir legen dabei fest, dass ein neuronaler Netz Output < 0.5 als Hering erkannt wird und ein Output ≥ 0.5 als Lodde. Der Wert 0.5 wird dabei als Threshold (Grenzwert) bezeichnet. Um herauszufinden, wie gut die Klassifikation ist, wird ein zweites Set aus Fischen, von welchen wir wissen, zu welcher Fischart sie gehören, verwendet, das „Validationsset“.
In den vier Abbildungen rechts sind alle fiktiven Fische, welche den Output 0.5 produzieren als rote Punkte eingezeichnet. Sie bilden eine Linie, die sogenannte „Decision Boundary“. Alles oben links davon wird als Lodde, alles unten rechts davon als Hering erkannt. Für die Training- und Validationssets sind jeweils die Anzahl falsch klassifizierter Fische angegeben. Die beiden unteren Abbildungen wird die Decision Boundary von einzelnen Fischen beeinfluss. Sie ist stark gekrümmt und der Fehler für das Validationsset ist viel grösser als im Trainingsset. Dies wird als „Overfitting“ d.h. Auswendiglernen einzelner Fische bezeichnet. In den beiden oberen Abbildungen erfasst die Decision Boundary den groben Unterschied der beiden Fischarten relativ gut, die Fehler für Trainings- und Validationsset 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 einen Klassifikationserfolg 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 in 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 Lösen indem du die Output-Werte des neuronalen Netzes wie folgt interpretiert hattest:
▶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 (Stürme, Börsencrash, seltene 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 Dinge limitiert.
Aus den folgenden Gründen werden die genannten Verfahren (vielleicht selten aber) immer Fehler produzieren, egal wie viel Rechenpower und wie viele Daten zur Verfügung stehen.
Loading ⌛
Loading ⌛