© StonePictures/Shutterstock.com
Teil 2: Machine Learning mit Klassifikationsverfahren

Eins, zwei oder drei


In diesem Artikel beschäftigen wir uns mit einer der weitverbreitetsten Problemstellungen des Machine Learnings: der Klassifikation. Bei der Klassifikation geht es darum, aufgrund von Beobachtungen eine Entscheidung darüber zu treffen, in welche Klasse das beobachtete Ereignis fällt.

Klassifikationsentscheidungen treffen wir als Menschen laufend: Wer ist die Person, die vor mir steht? Wie ist das Wetter heute? Was für ein Obst liegt da im Korb? Welches Lied läuft da im Radio? Diese Fragen haben alle eins gemeinsam: Im Gegensatz zu einer klar beschreibbaren Entscheidungsregel wie „Ist die Raumtemperatur höher als 20° C?“ ist hier die Entscheidung nicht so einfach in prozeduralen Code überführbar. Der für die Entscheidung benötigte Input ist vielschichtiger als ein einzelner Sensorwert, und es gibt durchaus Situationen, in denen man nicht so klar entscheiden kann.

Natürlich kann auch bei solchen Fragen versucht werden, die Problemstellung zu durchdringen und prozedurale Entscheidungsbäume abzuleiten. Das ist in den allermeisten Fällen jedoch zu aufwendig und daher nicht praktikabel. Mit Machine Learning kann man diesen Prozess allerdings automatisieren.

Das Experiment

Um uns der Klassifikation zu nähern, verwenden wir in diesem Artikel eine Aufgabenstellung, die wir im Kontext der Entwicklung von docoyo.Trackable (eine Tracking-Lösung, die Nico und Masa für die industrielle Produktion entwickelt haben) untersucht haben. Als eine von mehreren Technologien verwendet docoyo. Trackable Bluetooth-Beacons für das Tracking. Die Bea­cons werden an Werkstücken bzw. Transportbehältern angebracht und ihre Signale von Scannern empfangen, die in der Werkstatt/-halle verteilt sind. Die Signale werden an einen zentralen Server weitergeleitet und dort für die Positionsbestimmung genutzt. Über genau diese Serverkomponente machen wir uns in diesem Artikel Gedanken.

Ein naiver (aber durchaus valider) Ansatz, um die Position von getrackten Elementen zu bestimmen, ist das Platzieren von Scannern an allen interessanten Stellen, z. B. an Arbeitsplätzen, Stellflächen für Kanban-Puffer, an Lagerplätzen oder an Kontrollpunkten – wir nennen solche Stellen „Zonen“. Solange die Scanner günstig platziert sind, darf man annehmen, dass sich ein Beacon jeweils in der Nähe desjenigen Scanners befindet, der den stärksten Signalempfang aufweist. Die Situation in der Realität sieht jedoch oftmals komplizierter aus: Um die Anzahl der Scanner nicht ausufern zu lassen, möchten wir eine höhere Anzahl von Zonen erkennen können, als es Scanner gibt. In dieser Situation ist die Stärkste-Signal-Regel alleine nicht mehr ausreichend. So eine Situation haben wir für diesen Artikel als Experiment bei Masa zu Hause aufgebaut. Der Plan in Abbildung 1 zeigt das Erdgeschoss mit drei Scannern.

fujita_kirchhof_data_analytics_1.tif_fmt1.jpgAbb. 1: Scannerpositionierung

Wir haben die Scanner möglichst weit voneinander entfernt im Dreieck positioniert, damit die Signale der Beacons sich möglichst gut unterscheiden. Würden wir uns im Freifeld ohne Störeinflüsse befinden, würden mit der Stärkste-Signale-Regel die in Abbildung 2 zu sehenden Zonen erkannt werden können.

fujita_kirchhof_data_analytics_2.tif_fmt1.jpgAbb. 2: Scannerbereiche bilden Räume nicht gut ab

Es ist offensichtlich, dass es nicht ausreicht zu erkennen, dass sich ein Beacon in einem dieser Kreise befindet. Vielmehr möchten wir gerne erkennen, in welchem Raum sich ein Beacon befindet. Und diese sind nun einmal nicht kreisförmig.

Unsere Hypothese ist, dass wir die Räume mithilfe von Klassifikationsverfahren trotzdem erkennen können. Wir möchten, dass sich unser Machine-Learning-Modell aufgrund der Beobachtung der jeweils empfangenen Signalstärken eines Beacons an den drei Scannern für einen Raum entscheidet. Machine-Learning-Modelle benötigen Daten, um zu lernen. Um in möglichst kurzer Zeit möglichst viele Daten zu sammeln, haben wir in unserem Experiment 36 Beacons im Erdgeschoss mehr oder weniger gleichmäßig verteilt (Abb. 3).

fujita_kirchhof_data_analytics_3.tif_fmt1.jpgAbb. 3: Beacon-Verteilung im EG

Nun haben wir über Nacht die Signale aufgezeichnet, die von den Scannern aufgefangen und an den zentralen Server weitergeleitet wurden. Über acht Stunden hinweg wurden ca. 1,5 Mio. Zeilen in eine CSV-Datei geloggt, die jeweils die in Listing 1 gezeigte Struktur haben.

Listing 1

Timestamp,BeaconType,ScannerID,RSSI,UUID,Major,Minor,Name,TXPower,Battery 2017-02-02 23:11:08.347756,0,b827eb3f7749,91,f7826da64fa24e988024bc5b71e0893e,4e98,698a,jYGu,12,94 2017-02-02 23:11:08.405497,0,b827eb4f4f2c,91,f7826da64fa24e988024bc5b71e0893e,5aa7,de4e,XEzz,12,64 2017-02-02 23:11:08.406028,0,b827eb4f4f2c,96,f7826da64fa24e988024bc5b71e0893e,4de0,c728,3tPN,12,55 2017-02-02 23:11:08.423392,0,b827eb3f7749,97,f7826da64fa24e988024bc5b71e0893e,c7a5,6c12,t6Eh,12,58 2017-02-02 23:11:08.424777,0,b827eb3f7749,73,f7826da64fa24e988024bc5b71e0893e,8651,80ab,NYjS,12,62

Die Rohdaten können für eigene Experimente auf unserer Website unter [1] heruntergeladen werden. Jede Zeile im Beispiel entspricht einem Beacon-Advertising-Paket, das von einem der drei Scanner aufgefangen wurde. Es gibt also bis zu drei Zeilen pro ausgesendetem Beacon-Advertising-Paket im Logfile. Diese treffen wegen Verzögerungen in der Treiberschicht des Bluetoothempfängers und wegen Latenzzeiten in der Netzwerkkommunikation zwischen den Scannern und dem Server naturgemäß nicht gleichzeitig ein. Doch wie gewinnt man aus einem solchen Strom von Signalereignissen eine geeignete Datenbasis zum Anlernen des Machine-Learning-Modells?

Feature-Engineering

Es hilft, sich vorzustellen, wie man sich dieser Aufgabe als Mensch stellen würde. Unsere Machine-Learning-Aufgabe lautet abstrakt formuliert: „Wie sehen typische RSSIs im Raum X, Raum Y, Raum Z aus?“ Um diese Frage zu beantworten, würde man pro Beacon jeweils die eintreffenden Signalstärken beobachten und sich dazu den Raum notieren, in dem sich der Beacon befindet. Dabei ist zu berücksichtigen, dass die Signalstärken naturgemäß schwanken, die Signale jedoch in etwa gleich bleiben, solange man die Beacons nicht verschiebt oder andere größere Störquellen in die Räume gebracht werden. Das heißt, man würde die RSSIs (Received Signal Strength Indicator) über ein gewisses Zeitfenster – sagen wir über 15 Sekunden – mitteln und weiterverwenden. Genau diese Art von Vorverarbeitung von Rohdaten vor dem eigentlichen Training ...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang