Allgemeine Beschreibung


Aktuelle Entwicklungen zeigen ein starkes Anwachsen von Cloud Technologien, bei denen Daten, die z. B. vom Anwender lokal erfasst werden, nach Übermittlung zur Cloud von einer künstlichen Intelligenz (meist auf einem Hochleistungsrechner betrieben) ausgewertet werden. Moderne Spracherkennungssysteme sind wohl eines der bekanntesten Beispiele dafür. Mit zunehmender Leistungsfähigkeit mobiler Geräte wie Smartphones und Controller Boards (z. B. ESP8266 Nachfolger und Erweiterungen) ist allerdings eine gegenläufige Tendenz zu erwarten, lokale künstliche Intelligenzen lernen und werten vor Ort die Daten aus. Sie synchronisieren Ihr erworbenes Wissen von Zeit zu Zeit bzw. nach Bedarf mit einer zentralen Cloud. Dadurch entsteht ein enormes Potenzial zur Einsparung großer Energiemengen, die zur Übertragung der Daten zu einer zentralen KI erforderlich wäre. Unsere lokale Nase liefert ein Beispiel einer solchen Edge-AI, also einer künstlichen Intelligenz (KI, engl. Artificial Intelligence – AI), die am Rande (Edge) der Systems betrieben werden kann.

Teilbereiche

Ebenso wie bei der „künstlichen Nase“, ist Ziel des Versuchs, verschiedene Getränke anhand Ihrer VOC-Emissionen zu unterscheiden. Wir verwenden ebenso Sprudel, Apfelsaft und Wein, nutzen in diesem, lokal lernenden Szenario jedoch einfachere Algorithmen, da der Leistungsfähigkeit des ESP8266 Grenzen gesetzt sind. Konkret nutzen wir den KNN-Algorithmus, der im Rahmen des Versuchs Schallbasierte Ortung bereits erläutert wurde.

 

Pseudocode KNN

Wir beginnen hier mit einem leeren Gedächtnis, das zur Laufzeit befüllt wird. Die „künstlichen Nase“ misst zunächst mehrfach die zu unterscheidenden Getränke. Nach jeder Messung durchsucht der Algorithmus sein Gedächtnis und versucht, die ähnlichsten Messungen per KNN zu finden, deren Label ausgegeben wird. Nach dieser Ausgabe hat der Nutzer die Möglichkeit, mittels eines Wahlschalters anzugeben, welches Getränk tatsächlich gemessen wurde (Supervised Online Learning), also ob der Algorithmus falsch oder richtig klassifiziert hat. Durch diese Eingaben entwickelt der Algorithmus sein Gedächtnis weiter, indem er, ähnlich wie beim Inkrementellen Lernen, die korrekten Prototypen speichert. Sobald der Speicher voll ist werden Randfälle gelöscht, sodass sich das Wissen verfestigt.

Das Besondere an dieser Entwicklung ist, dass sich die Nase sehr vielfältig in verschiedenen Anwendungsszenarien nutzen lässt. Es ist denkbar, die Nase in verschiedenen Umfeldern anzulernen, und Ihre Funktionsweise zu testen. Nachteilhaft ist der Umstand, dass die Nase jedes Mal neu angelernt werden muss. Dazu können jedoch, durch eine gesonderte Funktion, die aktuellen Inhalte des Gedächtnisses per MQTT gespeichert werden, bzw. die so erstellten Dateien im Gegenzug auf die Nase hochgeladen werden.
Bild der lokale Nase im Bilderrahmen der IoT-Werkstatt
Abbildung 1: Lokale Nase im Bilderrahmen der IoT-Werkstatt

In unserem speziellen Anwendungsfall erreichen wir sogar zu ca. 90 % korrekte Klassifizierungen, jedoch ist dies sicher nicht für ungetestete Szenarien zu erwarten. Durch die Nutzung eines hochwertigeren Sensors bzw. leistungsfähigeren Chips könnte auf diesem Prinzip eine praktikable Anwendung entstehen. Für uns ist diese Anwendung daher besonders interessant, da wir so in der Lage sind eine „autarke“ künstliche Nase, ohne großen Aufwand wie Aufspannen eines Netzes und Betrieb eines leistungsstarken Rechners zu demonstrieren.