So gehen Sie Probleme beim maschinellen Lernen an
Veröffentlicht: 2022-03-11Eine der Hauptaufgaben von Computern ist es, menschliche Aufgaben zu automatisieren. Einige dieser Aufgaben sind einfach und wiederholen sich, wie z. B. „Bewege X von A nach B“. Viel interessanter wird es, wenn der Computer Entscheidungen über Probleme treffen muss, die viel schwieriger zu formalisieren sind. Hier stoßen wir auf grundlegende Probleme des maschinellen Lernens.
In der Vergangenheit wurden solche Algorithmen von Wissenschaftlern oder Experten entwickelt, die über genaue Kenntnisse ihres Fachgebiets verfügten und weitgehend auf Regeln basierten. Mit der Explosion der Rechenleistung und der Verfügbarkeit großer und vielfältiger Datensätze hat sich der Fokus auf einen stärker rechnergestützten Ansatz verlagert.
Die meisten populären maschinellen Lernkonzepte haben heutzutage mit neuronalen Netzen zu tun, und meiner Erfahrung nach hat dies bei vielen Menschen den Eindruck erweckt, dass neuronale Netze eine Art Wunderwaffe für alle Inferenzprobleme sind. Eigentlich ist dies ziemlich weit von der Wahrheit entfernt. In den Augen des Statistikers bilden sie eine Klasse von Inferenzansätzen mit ihren jeweiligen Stärken und Schwächen, und es hängt ganz vom Problem ab, ob neuronale Netze die beste Lösung sind oder nicht.
Oftmals gibt es bessere Ansätze.
In diesem Artikel skizzieren wir eine Struktur für den Angriff auf Probleme des maschinellen Lernens. Es ist nicht möglich, zu sehr auf bestimmte Modelle des maschinellen Lernens einzugehen, aber wenn dieser Artikel Interesse weckt, könnten nachfolgende Artikel detaillierte Lösungen für einige interessante Probleme des maschinellen Lernens bieten.
Lassen Sie uns jedoch zunächst einige Anstrengungen unternehmen, um zu zeigen, warum Sie vorsichtiger sein sollten, als automatisch an „neuronale Netze“ zu denken, wenn Sie mit einem Problem des maschinellen Lernens konfrontiert werden.
Vor- und Nachteile von neuronalen Netzen
Bei neuronalen Netzen erfolgt die Inferenz über ein gewichtetes „Netzwerk“. Die Gewichtungen werden während des sogenannten „Lernprozesses“ kalibriert und anschließend angewendet, um Ergebnisse den Eingaben zuzuordnen.
So einfach das auch klingen mag, alle Gewichtungen sind Parameter für das kalibrierte Netzwerk, und normalerweise bedeutet das zu viele Parameter, als dass ein Mensch einen Sinn daraus machen könnte.
Wir können also neuronale Netze genauso gut als eine Art Inferenz-Blackbox betrachten, die die Eingabe mit der Ausgabe verbindet, ohne ein spezifisches Modell dazwischen.
Schauen wir uns die Vor- und Nachteile dieses Ansatzes genauer an.
Vorteile neuronaler Netze
- Die Eingabe sind die Daten selbst. Brauchbare Ergebnisse auch mit wenig oder gar keinem Feature-Engineering.
- Trainierbare Fähigkeit. Ohne Feature-Engineering sind keine so schwer zu entwickelnden Fähigkeiten wie Intuition oder Fachkenntnisse erforderlich. Für generische Inferenzen stehen Standardwerkzeuge zur Verfügung.
- Die Genauigkeit verbessert sich mit der Datenmenge. Je mehr Eingaben es sieht, desto besser arbeitet ein neuronales Netzwerk.
- Kann klassische Modelle übertreffen, wenn keine vollständigen Informationen über das Modell vorliegen. Denken Sie zum Beispiel an die öffentliche Stimmung.
- Offene Inferenz kann unbekannte Muster entdecken. Wenn Sie ein Modell verwenden und eine Betrachtung außen vor lassen, wird es das entsprechende Phänomen nicht erkennen. Neuronale Netze könnten.
Beispiel für ein erfolgreiches neuronales Netzwerk: Die KI von Google fand einen Planeten, der einen fernen Stern umkreist – wo die NASA dies nicht tat –, indem sie angesammelte Teleskopdaten analysierte.
Nachteile neuronaler Netze
- Sie erfordern viele (annotierte!) Daten. Erstens ist diese Datenmenge nicht immer verfügbar. Die Konvergenz ist langsam. Ein solides Modell (z. B. in der Physik) kann nach wenigen Beobachtungen kalibriert werden – bei neuronalen Netzen kommt dies nicht in Frage. Anmerkungen sind eine Menge Arbeit, ganz zu schweigen davon, dass sie an sich nicht narrensicher sind.
- Keine Information über die innere Struktur der Daten. Interessiert es Sie, worauf die Inferenz basiert? Kein Glück hier. Es gibt Situationen, in denen die manuelle Anpassung der Daten die Inferenz um einen Sprung verbessert, aber ein neuronales Netzwerk wird dabei nicht helfen können.
- Überanpassungsprobleme. Es kommt oft vor, dass das Netzwerk mehr Parameter hat, als die Daten rechtfertigen, was zu suboptimalen Schlussfolgerungen führt.
- Leistung hängt von Informationen ab. Wenn vollständige Informationen zu einem Problem vorliegen, ist ein solides Modell tendenziell besser als ein neuronales Netzwerk.
- Es gibt Stichprobenprobleme. Sampling ist immer ein heikles Thema, aber mit einem Modell kann man schnell eine Vorstellung von problematischem Sampling entwickeln. Neuronale Netze lernen nur aus den Daten. Wenn sie also voreingenommene Daten erhalten, werden sie voreingenommene Schlussfolgerungen ziehen.
Ein Beispiel für einen Misserfolg: Ein persönlicher Verwandter erzählte mir von einem großen Unternehmen (das ich nicht nennen kann), das daran arbeitete, Militärfahrzeuge auf Luftbildern zu erkennen. Sie hatten Bilder, wo es solche Fahrzeuge gab und andere, die dies nicht taten. Die meisten Bilder der ersten Klasse wurden an einem regnerischen Tag aufgenommen, während die letzteren bei sonnigem Wetter aufgenommen wurden. Dadurch lernte das System, Licht von Schatten zu unterscheiden.
Zusammenfassend bilden neuronale Netze eine Klasse von Inferenzverfahren, die ihre Vor- und Nachteile haben.
Dass ihre Popularität in den Augen der Öffentlichkeit alle anderen statistischen Methoden in den Schatten stellt, hat wahrscheinlich mehr mit Corporate Governance zu tun als mit irgendetwas anderem.
Die Schulung von Personen zur Verwendung von Standardwerkzeugen und standardisierten neuronalen Netzwerkmethoden ist ein weitaus vorhersehbarerer Prozess als die Suche nach Domänenexperten und Künstlern aus verschiedenen Bereichen. Das ändert jedoch nichts an der Tatsache, dass die Verwendung eines neuronalen Netzes für ein einfaches, genau definiertes Problem eigentlich nur ein Kanonenschuss ist: Es braucht viele Daten, erfordert viel Annotationsarbeit und im Gegenzug möglicherweise im Vergleich zu einem soliden Modell nur unterdurchschnittlich abschneiden. Nicht das beste Paket.
Dennoch liegt eine enorme Kraft in der Tatsache, dass sie statistisches Wissen „demokratisieren“. Sobald eine auf neuronalen Netzwerken basierende Inferenzlösung als reines Programmierwerkzeug angesehen wird, kann sie sogar denjenigen helfen, die sich mit komplexen Algorithmen nicht wohl fühlen. So werden heute zwangsläufig viele Dinge gebaut, die sonst nicht existieren würden, wenn wir nur mit ausgeklügelten Modellen arbeiten könnten.

Annäherung an Probleme des maschinellen Lernens
Wenn Sie sich maschinellen Lernproblemen nähern, müssen Sie die folgenden Schritte ausführen:
- Akzeptanzkriterien festlegen
- Bereinigen Sie Ihre Daten und maximieren Sie deren Informationsgehalt
- Auswahl des optimalen Inferenzansatzes
- Trainieren, testen, wiederholen
Lassen Sie uns diese Artikel im Detail sehen.
Akzeptanzkriterien festlegen
Sie sollten möglichst bald eine Vorstellung von Ihrer Zielgenauigkeit haben. Dies wird das Ziel sein, auf das Sie hinarbeiten.
Bereinigung Ihrer Daten und Maximierung ihres Informationsgehalts
Dies ist der kritischste Schritt. Zunächst einmal sollten Ihre Daten keine (oder wenige) Fehler aufweisen. Die Reinigung davon ist ein wesentlicher erster Schritt. Ersetzen Sie fehlende Werte, versuchen Sie, Muster zu identifizieren, die offensichtlich falsch sind, beseitigen Sie Duplikate und andere Anomalien, die Ihnen auffallen könnten.
Wenn Ihre Daten sehr informativ (im linearen Sinne) sind, liefert Ihnen praktisch jede Inferenzmethode gute Ergebnisse. Wenn die erforderlichen Informationen dort nicht enthalten sind, ist das Ergebnis Rauschen. Die Maximierung der Informationen bedeutet in erster Linie, alle nützlichen nichtlinearen Beziehungen in den Daten zu finden und sie zu linearisieren. Wenn das die Eingaben deutlich verbessert, großartig. Wenn nicht, müssen möglicherweise weitere Variablen hinzugefügt werden. Wenn all dies keine Früchte trägt, kann die Zielgenauigkeit leiden.
Mit etwas Glück gibt es einzelne Variablen, die nützlich sind. Sie können nützliche Variablen identifizieren, wenn Sie sie beispielsweise gegen die Lernzielvariable(n) auftragen und feststellen, dass das Diagramm funktionsähnlich ist (dh ein enger Bereich in der Eingabe entspricht einem engen Bereich in der Ausgabe). Diese Variable kann dann linearisiert werden – wenn sie beispielsweise als Parabel dargestellt wird, subtrahieren Sie einige Werte und ziehen Sie die Quadratwurzel.
Bei Variablen, die verrauscht sind – ein schmaler Bereich in der Eingabe entspricht einem breiten Bereich in der Ausgabe – können wir versuchen, sie mit anderen Variablen zu kombinieren.
Um eine Vorstellung von der Genauigkeit zu bekommen, möchten Sie vielleicht bedingte Klassenwahrscheinlichkeiten für jede Ihrer Variablen messen (für Klassifizierungsprobleme) oder eine sehr einfache Form der Regression anwenden, wie z. B. die lineare Regression (für Vorhersageprobleme). Wenn sich der Informationsgehalt der Eingabe verbessert, verbessert sich auch Ihre Inferenz, und Sie möchten in dieser Phase einfach nicht zu viel Zeit damit verschwenden, ein Modell zu kalibrieren, wenn die Daten noch nicht fertig sind. Testen Sie also so einfach wie möglich.
Auswahl des optimalen Inferenzansatzes
Sobald Ihre Daten in anständiger Form sind, können Sie sich für die Inferenzmethode entscheiden (die Daten können später noch aufpoliert werden, falls erforderlich).
Sollten Sie ein Modell verwenden? Nun, wenn Sie guten Grund zu der Annahme haben, dass Sie ein gutes Modell für die Aufgabe erstellen können, dann sollten Sie das wahrscheinlich tun. Wenn Sie das nicht glauben, aber genügend Daten mit guten Anmerkungen vorhanden sind, können Sie mit einem neuronalen Netzwerk freihändig arbeiten. In praktischen Anwendungen des maschinellen Lernens liegen dafür jedoch oft nicht genügend Daten vor.
Spielgenauigkeit vs. Deckung zahlt sich oft enorm aus. Hybridansätze sind in der Regel völlig in Ordnung. Angenommen, die Daten sind so beschaffen, dass Sie mit einem einfachen Modell eine Genauigkeit von 80 % von nahezu 100 % erzielen können? Das bedeutet, dass Sie schnell Ergebnisse vorweisen können, und wenn Ihr System erkennen kann, wann es auf dem 80 % freundlichen Territorium arbeitet, dann haben Sie im Grunde den größten Teil des Problems abgedeckt. Ihr Kunde ist vielleicht noch nicht ganz zufrieden, aber dadurch gewinnen Sie schnell sein Vertrauen. Und nichts hindert Sie daran, mit den verbleibenden Daten etwas Ähnliches zu tun: Mit vertretbarem Aufwand decken Sie jetzt beispielsweise 92 % der Daten mit einer Genauigkeit von 97 % ab. Stimmt, bei den restlichen Daten ist es ein Münzwurf, aber Sie haben bereits etwas Nützliches produziert.
Für die meisten praktischen Anwendungen ist dies sehr nützlich. Angenommen, Sie sind im Kreditgeschäft tätig und möchten entscheiden, wem Sie einen Kredit gewähren, und alles, was Sie wissen, ist, dass Ihr Algorithmus bei 70 % der Kunden sehr genau ist. Großartig – stimmt, die anderen 30 % Ihrer Bewerber benötigen mehr Bearbeitung, aber 70 % können vollständig automatisiert werden. Oder: Angenommen, Sie versuchen, die Vermittlungsarbeit für Callcenter zu automatisieren, Sie können nur die einfachsten Aufgaben gut (quick and dirty) erledigen, aber diese Aufgaben decken 50 % der Anrufe ab? Super, das Callcenter spart Geld, wenn es 50 % seiner Anrufe zuverlässig automatisieren kann.
Fazit: Wenn die Daten nicht aussagekräftig genug sind oder das Problem zu komplex ist, um es in seiner Gesamtheit zu behandeln, denken Sie über den Tellerrand hinaus. Identifizieren Sie nützliche und einfach zu lösende Teilprobleme, bis Sie eine bessere Idee haben.
Sobald Sie Ihr System bereit haben, lernen, testen und wiederholen Sie es, bis Sie mit den Ergebnissen zufrieden sind.
Trainieren, testen, wiederholen
Nach den vorherigen Schritten bleibt wenig Interessantes übrig. Sie haben die Daten, Sie haben die maschinelle Lernmethode, also ist es an der Zeit, Parameter durch Lernen zu extrahieren und dann die Inferenz auf dem Testset zu testen. Die Literatur legt nahe, dass 70 % der Aufzeichnungen für Schulungen und 30 % für Tests verwendet werden sollten.
Wenn Sie mit den Ergebnissen zufrieden sind, ist die Aufgabe abgeschlossen. Wahrscheinlicher ist jedoch, dass Sie während des Verfahrens einige neue Ideen entwickelt haben, die Ihnen helfen könnten, die Genauigkeit zu verbessern. Vielleicht brauchen Sie mehr Daten? Oder einfach mehr Datenbereinigung? Oder ein anderes Modell? So oder so, die Chancen stehen gut, dass Sie eine ganze Weile beschäftigt sein werden.
Also, viel Glück und viel Spaß bei der bevorstehenden Arbeit!
- Maschinen und Vertrauen: So mindern Sie KI-Voreingenommenheit
- Sterne neu ausgerichtet: Verbesserung des IMDb-Bewertungssystems