Wie man einen Algorithmus mithilfe von maschinellem Lernen am besten trainiert

Lernen Sie die wesentlichen Schritte kennen, um einen Algorithmus mithilfe von Techniken des maschinellen Lernens effektiv zu trainieren. Dieser umfassende Leitfaden behandelt die grundlegenden Prinzipien, die Datenaufbereitung, die Modellauswahl und die Bewertungsmethoden, die für eine optimale Leistung erforderlich sind. Entdecken Sie bewährte Verfahren und fortgeschrittene Strategien, um die Genauigkeit und Effizienz Ihrer Modelle für maschinelles Lernen zu verbessern. Vertiefen Sie Ihr Verständnis und Ihre Anwendung des Algorithmus-Trainings in verschiedenen Bereichen.

Einführung in das Trainieren eines Algorithmus

Mit dem technologischen Fortschritt verändert sich auch die Art und Weise, wie wir Dinge tun. Im Großen und Ganzen soll Technologie unser Leben erleichtern. Man denke nur daran, wie sich unsere Smartphones durch Gesichtserkennung entsperren lassen, wie wir die Lieferfahrer unserer Essensbestellungen verfolgen können, wenn sie vor unserer Haustür ankommen, und dass es sogar Apps gibt, die uns helfen, die Blätter und Vögel zu bestimmen, denen wir auf Wanderungen begegnen.

So wie die Technologie unseren Alltag verändert, verändert sie auch die Art und Weise, wie wir forschen. Als Forscher wollen wir jedoch verstehen, was unsere Algorithmen tun, denn es passiert viel mehr, als wir ahnen, wenn unsere einfache Vogelbestimmungs-App einen Treffer liefert oder wenn eine App uns auffordert, vom Sofa aufzustehen, um unsere Pizza in Empfang zu nehmen.

Die meisten von uns haben Begriffe wie „maschinelles Lernen“, „Bildverarbeitung“ und „neuronale Netze“ schon einmal gehört; manche davon mit einem etwas beängstigenden Unterton von „künstlicher Intelligenz“. Dahinter steht die Vorstellung, dass die Maschine irgendwie selbstständig lernt, was Assoziationen mit dem beängstigenden Gedanken weckt, dass sie einen Menschen übertreffen könnte.

Gleichzeitig haben wir alle schon einmal nach einer besonders frustrierenden Erfahrung unser „Smart“-Handy, unseren „Smart“-Fernseher oder unsere „Smart“-Uhr angeschrien und das Gerät als alles andere als „smart“ beschimpft! Wenn wir verstehen, wie Maschinen lernen, können wir diese Technologie effizient nutzen – und genau das ist das Ziel dieses Blogs.

„Dumb Phone“ – Trainingsalgorithmus

In diesem Beitrag befassen wir uns mit den verschiedenen Methoden, einen Algorithmus so zu trainieren, dass er das Konzept des maschinellen Lernens umsetzt. Grob unterteilt gibt es zwei Arten, wie ein Algorithmus lernen kann: überwachtes und unüberwachtes Lernen.

So trainieren Sie Ihren Algorithmus – mit überwachten und unüberwachten Lernmethoden

Stellen wir uns einmal vor, Sie müssten Algorithmen trainieren, um Schokolade zu klassifizieren – und wer würde das nicht gerne tun? Zunächst möchten Sie also einen Algorithmus trainieren, damit er unterscheiden kann, was Schokolade ist und was nicht. Anschließend möchten Sie einen weiteren Algorithmus trainieren, um alle möglichen Varianten einer Tafel Schokolade zu identifizieren.

Was das erste „Problem“ betrifft – nämlich zu unterscheiden, was Schokolade ist und was nicht –, könntest du damit beginnen, dem Algorithmus eine große Menge an Daten zu verschiedenen Lebensmitteln zuzuführen. Du könntest in den nächsten Supermarkt gehen, verschiedene Lebensmittelverpackungen auswählen und deren Inhaltsstoffe in den Algorithmus eingeben. Anschließend könntest du jede Verpackung, die Kakao enthält, als „Schokolade“ kennzeichnen und alles andere als „Nicht-Schokolade“.

Das würde der Algorithmus von dir lernen: Wenn die Zutatenliste Kakao enthält, kann das Produkt als Schokolade klassifiziert werden. Das ist zwar einfach genug, kann aber zu Fehlalarmen führen – was ist, wenn es sich nur um Nüsse mit Schokoladenüberzug handelt? Oder um eine Packung Trinkschokolade? Sie möchten nicht, dass diese als Schokoladentafeln klassifiziert werden. Also versuchen Sie, Ihrem Algorithmus ausgefeiltere Regeln zu geben – zum Beispiel, dass es sich um eine feste Tafel handeln muss, ein bestimmtes Gewicht haben muss, oder vielleicht muss ein menschlicher Programmierer es als „gültige Dessertoption“, „gültige Geschenkoption“ usw. klassifizieren.

Je mehr Kriterien Sie hinzufügen, desto mehr lernt Ihr Algorithmus dazu. Er lernt anhand der Kriterien, die Sie ihm vorgeben, und Sie überwachen, was er lernt. Daher der Name „überwachtes Lernen“. Der Algorithmus wird bald intelligent genug sein, um ein neues Produkt zu erkennen – das nicht auf der Liste der Verpackungen steht, die Sie ihm aus Ihrem örtlichen Supermarkt vorgelegt haben – und zu bestimmen, ob es sich um „Schokolade“ handelt oder nicht. Diese Entscheidung stützt er ausschließlich auf die Kriterien, die er von Ihnen gelernt hat, und auf nichts anderes. Das bedeutet: Wenn Sie ihm keine Ruby-Schokolade zum Lernen gegeben haben, wird er Ruby-Schokolade nicht als Schokolade klassifizieren. Wenn Ihre menschlichen Programmierer weiße Schokolade hassen und sie nicht als gültige Geschenkoption einstufen, wird Ihr Algorithmus dies ebenfalls nicht tun.

Überwachtes maschinelles Lernen

Stellen Sie sich nun das zweite Problem vor: Sie möchten, dass Ihr Algorithmus jede Art von Füllung oder Geschmacksrichtung klassifiziert, die eine Tafel Schokolade haben kann. Sie würden wieder eine Auswahl aus Ihrem örtlichen Supermarkt nehmen – einige mit Nüssen, vielleicht mit Orange, Rosinen, einige mit Likörfüllung –, aber dies wäre keine vollständige Liste. Es wäre äußerst mühsam, einen Algorithmus für überwachtes Lernen zu entwickeln, der jede Schokolade, auf die er stößt, anhand ihrer Füllung klassifizieren könnte.

Ich jedenfalls wäre nicht auf die Idee gekommen, meinem Algorithmus alle verschiedenen Arten von Lakritzfüllungen zu geben, bevor ich nach Dänemark gezogen bin – was bedeutet, dass mein überwachter Algorithmus sie nicht hätte klassifizieren können. In diesem Fall würde ich mich vielleicht dafür entscheiden, einen unüberwachten Lernalgorithmus zu erstellen. Dazu würde ich ihm so viel Vielfalt wie möglich geben – Pralinen aus verschiedenen Ländern, in denen ich gelebt habe, Pralinen aus Ländern, die ich besucht habe, Pralinen aus Ländern, in die meine Freunde gereist sind.

Indem ich den Algorithmus auf all diese Daten trainiere, hoffe ich, dass er Kategorien findet, die alle möglichen Füllungen abdecken, die in eine Schokoladentafel kommen können. Vielleicht entscheidet er sich für Obst, Nüsse und Likör, wie ich es zu Beginn vorgeschlagen habe, oder vielleicht legt er 10 Kategorien fest, die das gesamte Spektrum der Trainingsschokoladen abdecken. So oder so werde ich seinen Lernprozess nicht kennen, sondern nur die Ergebnisklassifizierungen.

Auch wenn diese Art des Lernens wie eine Black Box wirkt, sollte man nicht vergessen, dass sie dennoch auf den Daten basiert, die wir dem Algorithmus zuführen. Wenn ich in diesem Beispiel Zutaten angebe, anhand derer der Algorithmus lernen soll, Schokolade zu kategorisieren, ist das alles, worauf sich der Algorithmus bei seiner Entscheidung stützen kann. Er kann nicht plötzlich danach unterscheiden, welche davon sich gut als Einweihungsgeschenk eignen. Wir erleichtern uns lediglich die Arbeit, indem wir jede mögliche Kategorie – oder Ausnahmen von einer Kategorie – einprogrammieren.

Dieses Wissen auf iMotions übertragen

Wenn wir anfangen, verschiedene Algorithmen zu kombinieren, können wir intelligentere Lösungen für unsere Probleme entwickeln. Stellen Sie sich das Training einer Gruppe von Algorithmen zur Erreichung einer bestimmten Funktionalität (wie wäre es mit einer App zur Auswahl der perfekten Schokolade?) wie einen Trichter vor: Zunächst trainieren Sie einen Algorithmus, der sich mit den großen Fragen befasst, wie zum Beispiel: „Was ist der grundlegende Baustein von Schokolade?“ Dann trainieren Sie einen weiteren Algorithmus, um tiefer in die Zusammensetzung von Schokolade einzutauchen, und so weiter – wodurch Ihre Algorithmen nach und nach immer detaillierter werden, um das sehr komplexe Problem zu lösen: Was ist die perfekte Schokolade, die man jemandem schenken kann?

Bei iMotions beschäftigen wir uns mit einer Reihe kniffliger Fragestellungen, die wir gerne mit ausgeklügelten Algorithmen des maschinellen Lernens lösen. Viele unserer Lösungen basieren auf maschinellem Lernen, beispielsweise einer unserer Klassifizierungsalgorithmen für das webkamerabasierte Eye-Tracking, die sogenannten Markov-Modelle – und sogar einige der Algorithmen unserer Partner im Bereich der Gesichtsausdrucksanalyse. Werfen wir einen Blick auf unsere iMotions-Plattform und insbesondere auf das webkamerabasierte Eye-Tracking, um zu sehen, wie maschinelles Lernen das Eye-Tracking misst und Ihre Datenqualität verbessert.

Wenn Sie in iMotions eine Online-Studie erstellen, haben Sie die Möglichkeit, diese über einen Link an Hunderte Ihrer Teilnehmer zu senden, um deren Blickbewegungen (und Mimik) über deren Webcams zu erfassen. Das klingt unglaublich kompliziert, ist aber nichts anderes als eine Abfolge von Algorithmen des maschinellen Lernens, die Schritt für Schritt angewendet werden.

Schritt eins: Wo befindet sich die Iris?

Als Erstes ermitteln unsere Algorithmen, wo sich das Gesicht eines Teilnehmers befindet. Das bedeutet nicht, dass sie Ihr Gesicht im Einzelnen identifizieren, so wie es Ihr Smartphone vielleicht tut, um sich zu entsperren. Erinnern Sie sich daran, wozu die verschiedenen Algorithmen trainiert wurden? Dieser hier erkennt lediglich menschliche Gesichter – ist es ein Gesicht oder nicht?

Das lässt sich bereits vor Beginn der Studie beobachten, wenn die Online-Plattform eine Gesichtserkennung durchführt, um sicherzustellen, dass Ihre Teilnehmer richtig sitzen. Sobald das Gesicht erkannt wurde, können unsere Algorithmen verschiedene Gesichtspartien identifizieren. Ohne diesen Schritt wüsste der Algorithmus nicht, wo er nach Ihren Augen suchen soll. Das bedeutet, dass der Algorithmus darauf trainiert wurde, Pupillen zu erkennen, wodurch er diese unabhängig davon identifizieren kann, wohin sie auf dem Bildschirm blicken – also auch Pupillen, die von der Kamera aus unterschiedlichen Blickwinkeln erfasst werden.

Auch hier ist es wichtig zu verstehen, dass diese Algorithmen auf recht guten Daten von Personen trainiert wurden, die in der Regel direkt in die Kamera blicken. Liegt Ihr Teilnehmer also auf dem Sofa in einem schwach beleuchteten Raum, den Laptop auf dem Bauch, kann der Algorithmus das Gesicht möglicherweise kaum erkennen, geschweige denn die Position der nur wenige Pixel breiten Iris.

Nahaufnahme eines Auges

Schritt 2: Kalibrierung

Die korrekte Erkennung der Iris ist wichtig, da davon die Genauigkeit des nächsten Schritts – der Kalibrierung – abhängt. Der nächste Algorithmus, den wir verwenden, nutzt Datenpunkte aus den Kalibrierungspunkten und berechnet, wie die Iris dieses Teilnehmers aussieht, wenn er auf verschiedene Stellen auf dem Bildschirm blickt.

Während der Kalibrierung, bei der wir den Teilnehmern Punkte an verschiedenen Stellen auf dem Bildschirm zeigen, lernt der Algorithmus, wie die Augen positioniert sind, wenn sie auf diese Punkte fixieren, die sich über den gesamten Sichtbereich erstrecken. Auf diese Weise kann er die relative Position des Auges zum Bildschirm berechnen, wenn die Teilnehmer Ihre eigentlichen Reize betrachten. Aus diesem Grund ist es wichtig, das empfohlene Kalibrierungsverfahren zu befolgen, damit unser Algorithmus die Informationen erhält, die er benötigt, um die Augenbewegungen Ihrer Teilnehmer zu schätzen.

Schritt 3: Erkennung der Fixation

Auch wenn die Erfassung von Eye-Tracking-Daten allein mithilfe einer Webcam an sich schon eine Meisterleistung ist, dürfen wir nicht außer Acht lassen, dass diese Art von Daten nach wie vor sehr verrauscht ist. Würden wir unsere herkömmlichen Methoden zur Klassifizierung von Fixationen und Sakkaden auf diese Sensordaten anwenden, würden wir den Fehler begehen, Rauschen fälschlicherweise als Fixationen einzustufen. Daher müssen wir uns ein letztes Mal auf maschinelles Lernen stützen, bevor wir unsere Studie analysieren können – und zwar für die Klassifizierung von Fixationen.

Wir verwenden Markov-Modelle, um Fixationen aus Webcam-basierten Eye-Tracking-Daten zu klassifizieren. Dabei teilen wir unserem Algorithmus mit, was Fixationen und Sakkaden sind (langsame, nahe beieinander liegende Datenpunkte auf dem Bildschirm bzw. schnelle Bewegungen über größere Entfernungen), und lassen ihn im vorliegenden Datensatz danach suchen. Das bedeutet, dass der Algorithmus zwar (1) die genaue Definition dessen, was eine Fixation ist, für jeden Teilnehmer anpassen kann (wie langsam, wie nah beieinander), aber (2) Störsignale besser identifizieren kann als jedes Klassifizierungssystem, das nicht aus dem Datensatz „lernen“ darf.

Ein herkömmlicher Filter zur Dauerverteilung, der Fixationen als eine Gruppe benachbarter Punkte definiert, erkennt möglicherweise kein geringfügiges räumliches Rauschen, und der geschwindigkeitsbasierte Filter, der schnelle Bewegungen einfach als Sakkaden klassifiziert, stuft große, schnelle Abweichungen möglicherweise fälschlicherweise als solche ein. Demgegenüber sind Markov-Modelle wesentlich besser darin, diese Anomalien bei jedem einzelnen Teilnehmer zu erkennen, was uns eine höhere Wahrscheinlichkeit für echte positive Fixationen bietet.

Auch wenn unser webcam-basiertes Eye-Tracking wie eine magische Blackbox wirken mag, wissen Sie nun, dass es sich dabei lediglich um eine Reihe verschiedener Algorithmen handelt, von denen jeder einzelne fehleranfällig ist, wenn er nicht mit den erwarteten hochwertigen Daten gefüttert wird – Algorithmen, denen jeder einzelne Schritt des Prozesses von unseren kompetenten Entwicklern beigebracht wurde, die sich mit Eye-Tracking wirklich auskennen.


Get Richer Data

About the author


Erfahren Sie, was als Nächstes in der Verhaltensforschung kommt

Abonnieren Sie unseren Newsletter, um die neuesten Erkenntnisse und Veranstaltungen direkt in Ihr Postfach zu erhalten.