Dies ist eine alte Version des Dokuments!




Loading ⌛Loading ⌛

🐟 Rückschau: Künstliche Intelligenz für echte Fische

Fischsortieren [NOAA Photo Library, CC BY 2.0]1)

👩‍🦰 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.

Hering [Citron, Public Domain]2)
Lodde [Fb78, Public Domain]3)

inlinetoc_2-3

1. Daten zusammenstellen

Vermessene Fische4)

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 ◯.

2. Verfahren konstruieren

✍ Auftrag
  1. Starte um dich an alles besser erinnern zu können, noch einmal ein neuronales Netz Training, indem du auf den Button ▶Run klickst.


Das von uns verwendete neuronale Netz5)

Decision Boundaries6)

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.

3. Resultate einordnen

Überlappende Klassen7)

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:

  • Output < 0.3 → Hering
  • Output > 0.7 → Lodde
  • Output zwischen 0.3 und 0.7: Keine Ahnung (d.h. von Hand sortieren oder als gemischten Fisch verkaufen)
✍ Auftrag
  1. Just for fun, klicke auf den Button ▶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.

4. Spezialfälle

⚠️ Nicht nur überlappende Klassen stellen eine Fehlerquelle dar, sondern auch seltene Ereignisse (Stürme, Börsencrash, seltene Krankheit etc.).

✍ Auftrag
  1. Hier wird angenommen der Fang eines Herings wäre ein seltenes Ereignis. Es gibt daher im Training- und im Validationset zwölf mal mehr Lodde-Beispiele als Hering-Beispiele. Kann das neuronale Netz trotzdem den Hering erkennen? (Alles grün hinterlegte wird als Lodde erkannt, alles blau hinterlegte als Hering.)
    Klicke auf den Button ▶Run und versuche dein Glück!
  2. Wie sieht das Resultat aus? Loading ⌛

5. Einsichten

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.

Herausforderungen

Daten

  • Relevante Eingangsgrössen: Welche und wie viele Eingangsgrössen braucht es? Bei unpassenden Eingangsgrössen versagt jedes Verfahren. Z.B. lassen sich mit den Schweizer-Lottozahlen kaum Fische unterscheiden.
  • Umfassende Daten: Es braucht Daten, welche alle möglichen, relevanten Fälle beinhalten. Wenn Fälle im Training fehlen, so produziert das Verfahren anschliessend für diese Fälle unsinnige Antworten. Z.B. versagt eine Fischklassifikation für kleine Fische, wenn diese nur mit grossen trainiert wurde.
  • Genügend viele Daten: Wenn zu wenige Daten vorhanden sind, so besteht die Gefahr von Overfitting.

Verfahren

  • Geeigneter Fehlerwert: Das zu lösende Problem wird nicht direkt vom Verfahren gelöst. Es wird stattdessen ein Fehlerwert minimiert. Wenn der Fehlerwert zum Problem passt, kann eine brauchbare Lösung erzielt werden. Wenn der Fehlerwert weniger zum Problem passt, dann wird vermutlich ein anderes Problem gelöst. Bei der Fischklassifikation wird aus mathematischen Gründen nicht direkt mit dem Klassifikationsfehler trainiert, sondern mit einem Fehlerwert der auf Summe der Differenzen zwischen tatsächlichen Output und Desired Output basiert.
  • Sinnvolle Anzahl von Gewichten: Je mehr Gewichte eingestellt werden können, desto mehr kann sich das Verfahren merken. Bei zu wenigen Gewichten kann der Zusammenhang nur schlecht gelernt werden, bei zu vielen Gewichten besteht die Gefahr von Overfitting.
  • Blackbox: Die meisten Verfahren der KI speichern ihr Wissen in einer Vielzahl von Gewichten ab. Es ist daher kaum möglich, herauszufinden, warum eine KI etwas macht. Die Resultate einer KI sind nicht nachvollziehbar.

Limitationen

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.

  • Näherungsverfahren: Die genannten Verfahren sind Näherungsverfahren und daher können Sachverhalte nur annähern, jedoch nicht verlässlich exakte Lösungen liefern.
  • Überlappende Muster: Zeigen mehrere zu unterscheidende Datenpunkte dieselben oder genügend ähnliche Eingangsgrössen, dann können diese nicht verlässlich unterschieden werden. Überlappende Muster treten in praktisch allen nicht künstlich erzeugten Datensätzen auf.
  • Seltene Ereignisse: Seltene Ereignisse werden tendenziell von den Verfahren ignoriert. Alle bekannten Gegenmassnahmen führen ihrerseits zu andersartigen Fehlern.

Fazit

✍ Auftrag
  1. Arbeitet zu zweit oder zu dritt.
  2. Haltet im Textfeld fest,
    • welche Möglichkeiten und Grenzen ihr für KI in der Zukunft seht.
    • wo ihr die Verantwortung der Menschen sehr für das, was KI-Systeme produzieren.

Loading ⌛

Unsere Meinung

Eigene Notizen

Loading ⌛

1)
fish0191 by NOAA Photo Library on flickr, CC BY 2.0
2)
Clupea harengus by Citron on wikimedia, Public Domain
3)
Mallotus villosus by Fb78 on wikimedia, Public Domain
4) , 5) , 6) , 7)
eigene Darstellung, CC0 1.0