Verwenden Sie den integrierten Kern für maschinelles Lernen von intelligenten Sensoren zur Optimierung der immer aktiven Bewegungsverfolgung
Zur Verfügung gestellt von Nordamerikanische Fachredakteure von DigiKey
2019-06-11
Angesichts der wachsenden Verbrauchernachfrage nach immer aktiven („Always-On“) Bewegungsverfolgungsfunktionen in Fitness-Trackern und anderen persönlichen mobilen Geräten mussten Produktentwickler bisher immer eine Abwägung zwischen solchen Funktionen und der Batterielebensdauer vornehmen. Versuche zur Senkung des Stromverbrauches führten zwangsläufig zu Einbußen bei der Auflösung bzw. Genauigkeit der Bewegungsverfolgung und damit zur Beeinträchtigung der Benutzererfahrung.
Erst dank der jüngst eingeführten energiesparenden Sensoren mit integrierten Bewegungserkennungsfunktionen müssen Entwickler keine derartigen Kompromisse mehr eingehen.
Dieser Artikel beschreibt die Verwendung eines intelligenten Bewegungssensors von STMicroelectronics, der komplexe Bewegungsverarbeitungsfunktionen integriert und damit effektivere Lösungen für eine energiesparende immer aktive Bewegungsverfolgung ermöglicht.
Klassische Konzepte des Energiemanagements
In einem typischen energiesparenden mobilen System macht die Energie, die durch den Host-Mikrocontroller während seines normalen aktiven Betriebs verbraucht wird, den Großteil des Gesamtstromverbrauches des Systems aus. Deshalb suchen Entwickler nach jeder sich bietenden Möglichkeit, den Mikrocontroller in einem Energiesparmodus zu betreiben und ihn nur für die Zeiträume „aufzuwecken“, die er für Aufgaben wie die Verarbeitung von Sensordaten oder die Kommunikation benötigt.
Seit einigen Jahren konnten Entwickler dieses Ziel mithilfe von Sensoren erreichen, die in der Lage sind, die Daten unabhängig vom Host-Prozessor zu sammeln. In Anwendungen mit geringen Anforderungen an die Datenausgaberate des Sensors konnte der Sensor seinen On-Chip-Puffer mit einer Reihe von Messungen füllen und sogar DMA-Transaktionen (Direct Memory Access) durchführen, um die Daten zum Systemspeicher zu übertragen, bevor ein Interrupt den Prozessor aufwecken musste, damit dieser seine Verarbeitungsaufgaben erledigen konnte. Da die Aufbereitung, Konvertierung und Filterung der Signale bereits durch die integrierte Signalkette des Sensors durchgeführt werden konnte, war der Prozessor in der Lage, sofort mit bereits aufbereiteten Daten loszulegen und nach für die Anwendung relevanten Ereignissen zu suchen.
Mit der Integration von Schwellenwerterkennungsfunktionen in diesen Sensoren konnten die Entwickler die Zeit noch weiter verlängern, die der Prozessor in seinem Energiesparmodus verbleiben konnte. Jetzt musste der Prozessor keine relevanten Ereignisse mehr erkennen, sondern der Sensor sandte nur dann ein Aufwachsignal aus, wenn er ein Ereignis gemessen hatte, das die vom Entwickler programmierten Schwellenwerte unter- bzw. überstieg. Zum Beispiel konnte ein Entwickler einen derartigen modernen Temperatursensor so programmieren, dass er nur dann ein Aufwachsignal aussendet, wenn die gemessene Temperatur einen bestimmten maximalen Schwellenwert übersteigt oder unter einen bestimmten Schwellenwert abfällt.
Dieses Konzept zur Senkung des Stromverbrauchs war wohl für einfachere Anforderungen praktikabel, stieß aber schnell an seine Grenzen, wenn es darum ging, komplexere Ereignisse zu erkennen. In Kombination mit der Forderung nach einem kontinuierlichen Messvorgang bedeutet die Erkennung solcher komplexen Ereignisse für den Prozessor einen längeren Betrieb im aktiven Modus. Das führte zur schnellen Erschöpfung der ohnehin relativ geringen Kapazität der Akkus, die in der Regel in persönlichen tragbaren Geräten verbaut werden. Daraus folgte, dass die traditionelle Verwendung des Host-Mikrocontrollers zur Durchführung der Erkennung angesichts der steigenden Benutzernachfrage nach kontinuierlicher Messwererfassung bei gleichzeitig längerer Batterielebensdauer mehr und mehr untragbar wurde.
Wenn stattdessen der Sensor in der Lage ist, komplexere Erkennungsalgorithmen selbst durchzuführen, können die Entwickler weiterhin den aktuellen bewährten Methoden zur Reduzierung des Systemstromverbrauchs durch Energiesparmodi des Prozessors folgen. Gleichzeitig muss ein solcher intelligenterer Sensor dem Entwickler ein höheres Maß an Flexibilität bieten. Einfach nur ein paar spezielle Algorithmen in die Sensoren zu integrieren, reicht nicht aus, um der Nachfrage nach neuen und besseren Gerätefunktionen gerecht zu werden. Der Trägheitssensor LSM6DSOX iNEMO (LSM6DSOXTR) von STMicroelectronics erreicht diese Flexibilität dank einer in das Modul integrierten Kombination aus Signalverarbeitungsfunktionen und flexiblen Rechenfähigkeiten.
Sensor-Architektur
Der LSM6DSOX iNEMO ist ein System-in-Package-Modul (SiP), das mikroelektromechanische Systeme (MEMS), Sensoren, dedizierte Signalketten, Filter und spezialisierte Rechen-Engines in einem LGA-Gehäuse (Land Grid Array) mit Abmessungen von nur 2,5 x 3,0 x 0,83 Millimeter (mm) vereint. Mit seinen internen MEMS-Sensoren – ein 3-Achsen-Beschleunigungsmesser und ein 3-Achsen-Gyroskop – kann das Modul als Sensor-Hub konfiguriert werden. Dadurch ist es in der Lage, durch dedizierte Hub-Register den individuellen Betrieb von bis zu vier externen Sensoren aufeinander abzustimmen.
Aufbauend auf derselben Architektur wie der frühere LSM6DSO von STMicroelectronics bietet der LSM6DSOX sämtliche Funktionen und Features dieses früheren Sensormoduls (siehe „IMUs: mehr Ruhezeiten für den Host durch integriertes maschinelles Lernen“). Beim LSM6DSOX ergänzt STMicroelectronics jedoch den endlichen Zustandsautomaten („Finite-State Machine“, FSM) aus dem früheren Modul um einen Kern für maschinelles Lernen (Machine Learning, ML) zur Klassifizierung von Datensätzen mit bis zu acht Entscheidungsbäumen. Dank der fortschrittlichen Signalketten, die zur Vorverarbeitung der Daten von den MEMS-Sensoren verwendet werden, können Entwickler auch schon ohne Einbeziehung der FSM- und ML-Kern-Funktionen erweiterte Bewegungserkennungsfunktionen implementieren.
Wie bei vielen anderen neuartigen Sensoren bietet auch die LSM6DSOX-Architektur mehrstufige Signalketten, die einen Analog/Digital-Wandler (ADC) mit mehreren Filterungsstufen kombinieren. Die Gyroskop-Signalkette ergänzt die ADC-Stufe durch eine Reihe von wählbaren digitalen Filtern, einschließlich eines Hochpassfilters (HPF), eines Tiefpassfilters (LPF1) und eines zweiten Tiefpassfilters (LPF2), die zwar im Hochleistungsmodus des Moduls zum Einsatz kommen, aber in den normalen bzw. Energiesparmodi umgangen werden (Abbildung 1).
Abbildung 1: Wie beim früheren LSM6DSO von STMicroelectronics ist auch beim LSM6DSOX desselben Herstellers jeder Sensor mit einer spezialisierten, dedizierten Signalkette mit mehreren Filterstufen verknüpft, wie das hier für den Gyroskop-Sensor dargestellt ist. (Bildquelle: STMicroelectronics)
Da der Beschleunigungsmesser für viele der integrierten Funktionen benötigt wird, ist die Signalkette des Beschleunigungsmessers in dieser Architektur erheblich weiterentwickelt. Ihre ersten Stufen übernehmen die grundlegenden Signalaufbereitungs- und -wandlungsfunktionen, die in den meisten modernen Sensoren anzutreffen sind. Zum Beispiel sorgt ein analoger Tiefpassfilter mit Antialiasing für die grundlegende Signalaufbereitung, ein 16-Bit-A/D-Wandler digitalisiert die aufbereiteten Signale, und die digitalisierten Ergebnisse werden durch einen digitalen Tiefpassfilter geleitet. Was das Modul so einzigartig macht, ist der ausgereifte zusammengesetzte Filterblock, der dieser ersten Wandlerstufe folgt (Abbildung 2).
Abbildung 2: Sowohl im früheren Bewegungssensor LSM6DSO als auch im neuen LSM6DSOX von STMicroelectronics unterstützt eine umfangreiche Beschleunigungsmesser-Signalkette die Host-unabhängige Erkennung mehrerer komplexer Bewegungsarten, darunter freier Fall, mehrdimensionale Orientierung sowie Einzel-/Doppeltippen. (Bildquelle: STMicroelectronics)
Durch eine Kombination aus Verarbeitungsblöcken und Filtern kann der zusammengesetzte Filterabschnitt des Beschleunigungsmessers selbstständig eine Vielzahl komplexer Ereignisse erkennen, wozu bisher der Prozessor aufgeweckt werden musste, um speziellen Ereigniserkennungscode auszuführen. Stattdessen können Entwickler jetzt die Filterparameter so programmieren, dass automatisch eine breite Palette von komplexen Bewegungsereignissen erkannt und entsprechende Interrupts ausgegeben werden. Solche Ereignisse sind z. B. einzelnes oder doppeltes Tippen, freier Fall, Aktivität/Inaktivität, Orientierung in sechs Freiheitsgraden (6D) oder 4D-Orientierung, die in der Regel zur Erkennung der Gerätebewegung verwendet wird. Zum Beispiel beim Wechsel zwischen Hoch- und Querformat.
Die erweiterten Detektoren des zusammengesetzten Filters kombinieren die Ergebnisse aus den Verarbeitungsblöcken und Filtern, um ihre Detektorfunktion auszuüben. Zum Beispiel wird zur Erkennung von einfachem Tippen der integrierte Neigungsfilter verwendet. Dieser generiert kontinuierlich die Neigung (slope) aus der aktuellen Messung des Beschleunigungsmessers, ACC(tn) anhand folgender Gleichung:
slope(tn) = [ acc(tn) - acc(tn-1) ] / 2 (Gleichung 1)
Bei einem Einzeltipp-Ereignis steigt die Neigung anders als bei einem allgemeinen Schock-Ereignis über einen Schwellenwert an und fällt schnell wieder ab (Abbildung 3). Unter Verwendung der vom Entwickler programmierten Werte für Tipp-Schwelle und Schock-Fensterdauer kann das Modul automatisch das Einzeltipp-Ereignis erkennen und einen Interrupt an den Host-Mikrocontroller senden.
Die Erkennung von doppeltem Tippen baut auf diesem Ansatz auf: Durch einen zusätzlichen Parameter wird die erforderliche Wartezeit zwischen zwei Einzeltipp-Ereignissen spezifiziert.
Abbildung 3: Die Bewegungssensoren LSM6DSO und LSM6DSOX ermöglichen die Host-unabhängige Erkennung von Einzeltipp-Ereignissen durch eine integrierte Neigungsfunktion. Diese erkennt eine schnellere Rückkehr zu den Baseline-Werten bei einem Einzeltipp-Ereignis (a) im Gegensatz zur Kurve bei einem allgemeinen Schock-Ereignis (b). (Bildquelle: STMicroelectronics)
Die Fähigkeit des Moduls zur Erzeugung abgeleiteter Daten, wie etwa für die Neigung, spielt eine zentrale Rolle für die komplexeren Funktionen, die dank der integrierten FSM und des Kerns für maschinelles Lernen (ML) möglich werden. Da die FSM-Funktion bereits in dem zuvor zitierten Artikel beschrieben wurde, soll es im vorliegenden Artikel nun in erster Linie um den ML-Kern des LSM6DSOX gehen und wie dieser zur Erkennung noch komplexerer Bewegungsereignisse eingesetzt werden kann. Beispiele hierfür sind bestimmte Bewegungsabläufe oder noch komplexere Bewegungsvorgänge wie bestimmte sportliche Übungen.
Entscheidungsbäume
Der Kern für maschinelles Lernen (ML) des LSM6DSOX ermöglicht die sensor-basierte Signalverarbeitung auf einem Niveau, das die bekannte Festlegung von Schwellenwerten in Form von Parametern bei Weitem übertrifft, wie sie bereits in vielen modernen intelligenten Sensoren anzutreffen ist. Mit dem ML-Kern können Entwickler komplexe Erkennungsalgorithmen in dem Modul implementieren. Das ermöglicht die Always-On-Erkennung komplexer Bewegungsereignisse, ohne dass dazu der Mikrocontroller aufgeweckt werden muss. Hierzu nutzt der ML-Kern Entscheidungsbäume, um ein Ereignis auf der Grundlage von Mustern der Eingabedaten zu erkennen.
Entscheidungsbäume, die schon seit Jahren in Entscheidungshilfesystemen genutzt werden, zerlegen komplexe Entscheidungen in eine Reihe von Auswahlentscheidungen, die auf der Überprüfung der Eingabedaten – oder Attribute – gegen vordefinierte Bedingungen basieren. Beginnend beim ersten Knoten – oder der Wurzel – wird der Wert eines Attributs überprüft, und anhand der Überprüfungsergebnisse erfolgt die Entscheidung zur Fortsetzung mit einem bestimmten untergeordneten Knoten (Abbildung 4).
Abbildung 4: Ein Entscheidungsbaum generiert ein Ergebnis anhand einer Abfolge von Knoten. Bei jedem dieser Knoten wird ein Eingabewert auf ein bestimmtes Attribut gegen eine Bedingung überprüft, etwa einen konkreten Schwellenwert. Je nach Ergebnis der Überprüfung wird der Entscheidungsprozess mit verschiedenen untergeordneten Knoten fortgesetzt. (Bildquelle: STMicroelectronics)
Zum Beispiel würde der Entscheidungsbaum bei jedem Aktualisierungszyklus aufgerufen, um anhand der Abfolge von Knoten zu ermitteln, ob die verfügbaren Daten – mit dieser Aktualisierung – für keine Bewegung, eine Vorwärtsbewegung oder eine andere Bewegung stehen. Dazu würde wie folgt vorgegangen werden:
- Überprüfen des Werts einer Beschleunigungsmessung
- 1.1. Beenden, wenn der Wert unter einem vorgegebenen Wert liegt (die Bedingung)
- 1.2. Ansonsten: Verzweigen zu einem untergeordneten Knoten zum Überprüfen der Gyroskop-Messungen, die im selben Zeitfenster durchgeführt wurden
- 1.2.1. Beenden, wenn die Gyroskop-Messungen unter einem vorgegebenen Wert liegen, oder
- 1.2.2. Fortsetzen mit einem weiter untergeordneten Knoten zum Überprüfen anderer Attribute, die im selben Zeitfenster gemessen wurden, oder zum Überprüfen desselben Attributs gegen eine andere Bedingung.
Dieser Prozess wird so lange wiederholt, bis die Überprüfung zu einem Endknoten gelangt, der in diesem Kontext einem bestimmten komplexen Bewegungsereignis bzw. einer Bewegungsklasse entspricht. In diesem einfachen Beispiel:
- Endknoten 1.1 könnte bedeuten, dass die Daten oder die Merkmalkombination als „keine Bewegung“ klassifiziert werden
- Endknoten 1.2.1 könnte bedeuten, dass die Merkmalkombination als „Vorwärtsbewegung“ klassifiziert wird
- Endknoten unterhalb von Knoten 1.2.2 könnten auf eine Drehbewegung oder eine noch komplexere Orientierungsänderung hindeuten
Natürlich sind die Problemstellungen in der realen Welt, bei denen Entscheidungsbäume eingesetzt werden müssen, deutlich komplexer und umfassen umfangreiche Merkmalkombinationen mit zahlreichen verschiedenen Attributen und Bedingungen. Dafür bietet das LSM6DSOX-Sensormodul Entwicklern eine breite Palette an möglichen Merkmalen, beginnend mit Sensordaten vom Beschleunigungsmesser, vom Gyroskop und von allen externen Sensoren, die im Sensor-Hub-Verbindungsmodus an das Modul angeschlossen sind (Abbildung 5).
Abbildung 5: Alleinstellungsmerkmal des LSM6DSOX von STMicroelectronics ist ein integrierter Kern für maschinelles Lernen, der Primärdaten von Sensoren, gefilterte Daten und abgeleitete Parameter wie etwa Mittelwert und Varianz als Eingabe für einen von acht Entscheidungsbäumen verwendet, die das Modul unterstützt. (Bildquelle: STMicroelectronics)
Aus diesem Sensorprimärdaten generiert das Modul eine Vielzahl von Merkmalen, die innerhalb eines gleitenden Zeitfensters aus Primärdaten berechnet werden. Dazu zählen:
- norm V = Ö( x2 + y2 + z2) und v2
- Mittelwert
- Varianz
- Energie
- Spitze-zu-Spitze
- Nulldurchgang
- positiver Nulldurchgang
- negativer Nulldurchgang
- Spitzenwertdetektor
- Detektor für positive Spitzenwerte
- Detektor für negative Spitzenwerte
- Minimum
- Maximum
Für bestimmte Merkmale, wie etwa die Nulldurchgangsdetektoren und Spitzenwertdetektoren, legt der Entwickler auch einen Schwellenwert zur Verschiebung der Nulldurchgangsachse bzw. einen Schwellenwert der Spitze fest.
Überwachter Lernprozess
Die Verwendung dieser Merkmale zur Implementierung eines Entscheidungsbaums mit dem ML-Kern des LSM6DSOX folgt einem typischen überwachten Lernprozess, wie er für die meisten Entwicklungsprojekte im Bereich des maschinellen Lernens typisch ist. Im Allgemeinen beginnt dieser Prozess mit der Identifizierung der Aktivitäten von Interesse und dem Sammeln von Datenstichproben, die mit diesen Aktivitäten assoziiert sind.
In diesem Fall verwenden die Entwickler das LSM6DSOX-Modul einfach zum Sammeln von Daten, während die konkrete Gruppe von Bewegungsaktivitäten durchgeführt wird, die von der endgültigen Anwendung erkannt werden müssen. Für diese Phase der Entwicklung können die Entwickler eine Datenerfassungsplattform erstellen, wozu ihnen Karten und Software von STMicroelectronics zur Verfügung stehen. Für die Hardware-Plattform stecken die Entwickler einfach die STEVAL-MKI197V1 LSM6DSOX-Adapterkarte in das STEVAL-MKI109V3-Evaluierungs-Motherboard. Als Software können die Entwickler das von STMicroelectronics kostenlos zur Verfügung gestellte Softwaretool Unico einsetzen, das für Windows, Mac OSX und Linux angeboten wird.
Unico, das speziell für die Nutzung mit dem STEVAL-MKI109V3-Motherboard vorgesehen ist, bietet eine einfache Methode zum Sammeln von Daten, die durch das LSM6DSOX-Modul erzeugt wurden. Zur Datensammlung verwenden die Entwickler das Motherboard in Verbindung mit dem Unico-Tool. Hierbei hält der Entwickler oder ein Assistent das Motherboard fest, während er wiederholt eine der spezifischen Bewegungsaktivitäten von Interesse durchführt, wobei die Unico-Software die LSM6DSOX-Bewegungsdaten erfasst.
Die vom LSM6DSOX während mehrerer Wiederholungen einer einzelnen Aktivität gesammelten Daten bilden das Trainingsset für die entsprechende Klasse (z. B. „Vorwärtsbewegung“ in unserem Beispiel von oben). Da die während dieser Bewegung gesammelten Daten alle der gleichen Klasse entsprechen, entfällt durch diesen aktiven Ansatz zur Datenerfassung die Notwendigkeit einer separaten Datenkennzeichnungsphase, wodurch sich mitunter der überwachte Lern-Workflow verzögern kann.
Nach dem Sammeln von Bewegungsdaten für jede Bewegungsereignisklasse von Interesse setzen die Entwickler Unico ein, um die Daten und die Klassenbezeichnung zu überprüfen. Neben der Verwendung zur Datenüberprüfung kann Unico von den Entwicklern eingesetzt werden, um mehrere Aspekte des gewünschten Entscheidungsbaums zu konfigurieren, um Filter zu definieren, die Dauer des Zeitfensters festzulegen und um die spezifischen Merkmale auszuwählen, die zum Aufbau des Entscheidungsbaums verwendet werden sollen.
In der Praxis grenzen die Entwickler in der Regel die Merkmale, die zur Erkennung eines bestimmten Satzes von Aktivitäten verwendet werden, auf die kleinstmögliche Anzahl ein, wozu sie ihre Erfahrung und Experimente einsetzen. Selbst bei einer minimalen Merkmalkombination hängt der Erfolg der Implementierung eines Entscheidungsbaums davon ab, welche dieser Merkmale oder Attribute nach jedem Knoten des Entscheidungsbaums überprüft werden. Die Auswahl des „besten“ Attributs zur Überprüfung an jedem Knoten ist wichtig, um die Größe des Entscheidungsbaums zu minimieren, was insbesondere bei Geräten mit begrenzten Ressourcen wie einem Sensor von Bedeutung ist.
Hinweis für den Leser: Sie werden sich vielleicht fragen, warum hier manchmal von Merkmal und manchmal von Attribut die Rede ist. Die Schwierigkeit ist, dass wir bei ML-Modellen von „Merkmalen“ sprechen, während diese in der Fachsprache im Zusammenhang mit Entscheidungsbäumen als „Attribute“ bezeichnet werden. Wir haben versucht, in jedem Abschnitt jeweils nur einen der Begriffe zu verwenden, aber hier wechseln wir für die folgende Beschreibung des Entscheidungsbaums von „Merkmal“ zu „Attribut“. Sie werden ganz bestimmt andere Stellen finden, an denen beide Begriffe synonym verwendet werden, aber hier und später im „ARFF“-Abschnitt soll es „Attribut“ sein.
Obwohl das Konzept einfach klingt, kann die Auswahl des besten Attributs zur Verwendung in jedem Entscheidungsknoten bei Entscheidungsbäumen mit einer großen Anzahl von Attributen, die jeweils durch einen breiten Bereich von Datenwerten repräsentiert werden, alles andere als intuitiv sein. Der bevorzugte Ansatz, um das beste Attribut zur Überprüfung an jedem Knoten zu finden, erfordert die Berechnung der Shannon-Entropie an diesem Knoten für jedes Attribut. Dazu wird Gleichung 2 verwendet:
Entropie(p1,p2,...,pn) = - p1log2(p1) - p2log2(p2)... - pnlog2(pn) (Gleichung 2)
Die Wahrscheinlichkeit pn steht für jede der n möglichen Klassen, die mit diesem Attribut assoziiert ist.
Das Ergebnis ist der Informationsgehalt, präsentiert in Bits in einem Wertebereich von 0 bis 1, statt nur als 0 oder 1, wie bei der vertrauten Definition von Bits.
Der „Informationszuwachs“ für jedes Attribut wird dann die Differenz zwischen diesem Informationswert und dem Baseline-Informationswert, die für das Attribut auf der Grundlage einer Wahrscheinlichkeit für eine richtige Entscheidung berechnet wird, die ohne die Verwendung des Entscheidungsknotens erfolgen würde. Obwohl eine detaillierte Betrachtung dieser Berechnung den Rahmen dieses Artikels sprengen würde, umfasst eine intuitive Interpretation den Vergleich, welcher Ansatz mit größerer Wahrscheinlichkeit und effizienter zum gewünschten Ergebnis führt: Ein Ergebnis auf Grundlage eines Brute-Force-Bottom-Up-Schnitts durch die Daten auf der Basis von Werten für dieses Attribut (die „Baseline“) oder ein Ergebnis auf Grundlage einer Top-Down-Auswahl auf der Basis spezifischer Wertebereiche für dieses Attribut. Bei der Top-Down-Auswahl kommt ein „Teile-und-Herrsche-Ansatz“ zum Einsatz, mit dem in der Regel die Anzahl der möglichen Ergebnisse schneller verringert wird als beim Bottom-Up-Ansatz.
Schnelle Bereitstellung
Zum Glück müssen sich die Entwickler nur im Ausnahmefall mit den Details von Informationszuwachs und Optimierung der Attributauswahl befassen. Stattdessen können sie frei verfügbare Machine-Learning-Tools von Drittanbietern wie zum Beispiel Weka nutzen, die automatisch die Berechnungen durchführen, die zur Generierung optimaler Entscheidungsbäume nötig sind.
In unserem Beispiel arbeiten Unico und Weka eng zusammen, um einen Arbeitsablauf für eine schnelle Implementierung von Entscheidungsbäumen bereitzustellen. In der Regel liegen die entscheidenden Schritte beim Entwicklungsprozess für einen konkreten Entscheidungsbaum in den oben beschriebenen Schritten zum Sammeln von Daten. Hier kommt das LSM6DSOX-Modul zum Einsatz. Es sammelt repräsentative Datensätze für jede Aktivitätsklasse von Interesse. Und der Einsatz der Unico-Software verfeinert diese Datensätze und definiert die Konfiguration des Entscheidungsbaums. Danach kommen diese beiden Tools gemeinsam zum Einsatz, um die letzten Stadien des Prozesses zu beschleunigen.
Nach dem Verfeinern der Daten und der Konfiguration des Entscheidungsbaums in Unico setzen die Entwickler das Tool zum Konvertieren der ausgewählten Merkmalkombination in ein standardisiertes Dateiformat ein, das Attribut-Relation-File-Format (ARFF). Eine ARFF-Datei enthält einen Header-Abschnitt, in dem die ausgewählten Attribute (Merkmale) und möglichen Klassen aufgelistet sind, und einen Datenabschnitt, in dem jeder Satz von gesammelten Daten und die zugehörige Klasse aufgelistet sind (Listing 1). In diesem Beispiel werden nur sehr wenige Merkmale verwendet, und es wird nur ein kleiner Satz von Dateninstanzen verwendet, um einen begrenzten Satz von Klassen zu identifizieren. Zu diesen zählen Bizeps-Curls, Seitenhebebewegungen und Kniebeugen.
Listing 1: Die standardmäßige ARFF-Datei (Attribute-Relation File Format) enthält einen Header-Abschnitt, der Attribute und Klassen festlegt, und einen Datenabschnitt, der Dateninstanzen für jedes Attribut und die zugehörige Klasse enthält. (Datenquelle: STMicroelectronics)
Mithilfe von Weka laden die Entwickler die ARFF-Datei in das Fenster „Preprocess“ (Vorverarbeitung) und erhalten eine grafische Zusammenfassung der ganzen Merkmalkombination (Abbildung 6).
Abbildung 6: Nach Einsatz des STMicroelectronics-Tools Unico zur Erzeugung einer ARFF-Datei für ihren Datensatz können Entwickler Weka einsetzen, ein Machine-Learning-Tool von Drittanbietern, um den gesamten Datensatz anzuzeigen, hier dargestellt für die ARFF-Daten aus Listing 1. (Bildquelle: DigiKey)
Zum Aufbau des Entscheidungsbaums wechseln die Entwickler in das Weka-Fenster „Classify“ (Klassifizierung), wählen den Weka-Klassifikator J48 aus (Wekas Entscheidungsbaum-Klassifikator) und klicken auf „Start“. In seinem Ausgabefenster zeigt der Klassifikator eine Zusammenfassung der Eingabedaten und stellt den Entscheidungsbaum sowohl grafisch (Abbildung 7) als auch in Textformat (Abbildung 8) zur Verfügung.
Abbildung 7: Zum Erstellen eines Entscheidungsbaums laden Entwickler einfach eine ARFF-Datei in Weka, wählen den Entscheidungsbaum-Klassifikator J48 von Weka und lassen die endgültige Baumstruktur erstellen. Das in Weka integrierte Visualisierungstool ermöglicht die Anzeige des Ergebnisses mit einer Auflistung der Attribute und Bedingungen für jeden Knoten – in diesem Fall mit den ARFF-Daten aus Listing 1. (Bildquelle: DigiKey)
Abbildung 8: Neben einer visuellen Darstellung des Entscheidungsbaums erzeugt Weka auch die tatsächliche J48-Spezifikation des Entscheidungsbaums – in diesem Fall mit den ARFF-Daten aus Listing 1 zur Erzeugung der J48-Spezifikation aus Listing 2. (Bildquelle: DigiKey)
In diesem Beispiel erfordert die erzeugte J48-Spezifikation des Entscheidungsbaums nur einige wenige Zeilen (Listing 2).
Listing 2: Weka erzeugt eine J48-Spezifikation des Entscheidungsbaums. Hier ist sie für die ARFF-Daten aus Listing 1 dargestellt. Entwickler laden diese Spezifikation in das STMicroelectronics-Tool Unico, um eine Konfigurationsdatei zu erzeugen, und laden diese in das LSM6DSOX-Sensormodul von STMicroelectronics. (Datenquelle: STMicroelectronics)
Nach dem Kopieren und Speichern des J48-Baumtextes in eine Datei laden die Entwickler diese Textdatei in Unico, um eine Register-Konfigurationsdatei zu erzeugen. Schließlich beenden die Entwickler den Arbeitsablauf, indem sie über die Laden/Speichern-Registerkarte von Unico diese Konfigurationsdatei in das LSM6DSOX-Modul laden. An dieser Stelle kann der Entwickler die unterstützenden Bewegungen durchführen, während er das STEVAL-MKI109V3-Motherboard festhält, wie zuvor beschrieben. Dabei liest Unico das Ergebnis der Entscheidungsbaum-Klassifizierung aus dem LSM6DSOX-Ausgaberegister für den konfigurierten Entscheidungsbaum.
In einem benutzerdefinierten Design könnten Entwickler eine Änderung in einem Entscheidungsbaum-Ausgaberegister verwenden, um dem Mikrocontroller zu signalisieren, dass er aufwachen und Code ausführen muss, um den Benutzer zu benachrichtigen, einen Übungszähler zu erhöhen oder um eine andere geeignete Operation höherer Ebene durchzuführen, die von einer Anwendung gefordert wird.
Obwohl dieses Beispiel extrem einfach ist, kann der ML-Kern des LSM6DSOX die Klassifizierung von deutlich komplexeren Bewegungsereignissen unterstützen, wozu mehrere der oben erwähnten verschiedenen Merkmale verwendet werden. So beschreibt STMicroelectronics eine erweiterte Version dieser einfachen Anwendung, bei der deutlich mehr Merkmale verwendet werden, um sportliche Aktivitäten in einer viel breiteren Palette von Übungen zu klassifizieren, wozu Bizeps-Curls, Jumping Jacks, Seithebebewegungen, Push-Ups und Kniebeugen zählen.
Neben den Mittelwert- und Spitze-zu-Spitze-Merkmalen, die in dem einfachen Beispielen verwendet werden, kommen bei dem komplexen Beispiel noch die Merkmale Varianz, Minimum, Maximum und Nulldurchgang hinzu, die für ein Zeitfenster von zwei Sekunden berechnet wurden. Bei der Ausführung im ML-Kern des LSM6DSOX führt diese etwas komplexere Anwendung zu einem Stromverbrauch von ca. 569 μA (bei 1,8 V), wovon nur etwa 13 μA auf den Stromverbrauch durch den ML-Kern zurückzuführen sind. Angesichts eines derart niedrigen Stromverbrauchs können Entwickler problemlos eine immer aktive Bewegungserkennung implementieren – bei nur geringen Auswirkungen auf den Ladezustand des Akkus.
Vorbehalte gegen das maschinelle Lernen
Reale Anwendungen des maschinellen Lernens hängen von überwachten Lernprozessen ab, die unweigerlich eine Form von Verzerrung in das endgültigen Machine-Learning-Modell einfließen lassen. Dabei spielt es keine Rolle, ob es sich bei diesem Modell um ein hochkomplexes neuronales Netz enormen Ausmaßes oder um einen relativ einfachen Entscheidungsbaum handelt. Insbesondere bewegungsbasierte Daten sind so enorm abhängig von der physischen Morphologie und Kinesiologie, dass die von einer Einzelperson erfassten Daten, die eine bestimmte Aktivität durchführt, sich deutlich von den Daten unterscheiden können, die von einer anderen Person erfasst werden.
Deshalb stehen Entwickler, die mit ML-basierter Aktivitätserkennung arbeiten, vor der ständigen Herausforderung, die Balance zwischen Spezifität und Allgemeingültigkeit der Daten zu finden. Zu viel Spezifität grenzt in der Regel die Allgemeingültigkeit ein, während zu viel Allgemeingültigkeit in der Regel die präzise Erkennung der individuellen Variationen derselben Bewegung bei verschiedenen Personen beeinträchtigt. Zwar gelten diese Probleme wohl nicht nur für diese spezifische Implementierung; die Herausforderungen bei der Suche nach diesem Gleichgewicht in personalisierten Bewegungserkennungsgeräten könnten jedoch die Frage nach Entscheidungsbäumen aufkommen lassen, die sich mit benutzerspezifischen Daten aktualisieren lassen. Bei sorgfältiger Beachtung dieser allgemeinen Informatikfragen in Bezug auf das maschinelle Lernen können Entwickler jedoch bereits heute das LSM6DSOX-Modul und den vorhandenen Arbeitsablauf nutzen, um anspruchsvolle immer aktive Bewegungserkennung in ihre stromsparenden Produktkonzepte zu integrieren.
Fazit
Die Nachfrage nach immer aktiver Bewegungsverfolgung und gleichzeitig längerer Akkulaufzeit hat zu einem scheinbar unlösbaren Konflikt bei Entwicklern von Fitness-Geräten und anderen kleinen Wearables geführt. Zwar ermöglichen schon heute viele moderne Sensoren ein gewisses Maß an Bewegungserkennung unabhängig vom Prozessor, doch mit dem Wunsch nach kontinuierlicher Erkennung komplexer Bewegungen für künftige Anwendungen sind neue Konzepte gefragt.
Durch Nutzung der Fähigkeiten zum maschinellen Lernen, die der Bewegungssensor LSM6DSOX von STMicroelectronics bietet, können Entwickler den Konflikt zwischen immer aktiver Bewegungserkennung und längerer Akkulaufzeit lösen. So werden hochmoderne Fitness-Tracker und andere Wearable-Geräte möglich.

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der DigiKey oder offiziellen Politik der DigiKey wider.