8 Algorithmen des maschinellen Lernens, die in menschlicher Sprache erklärt werden.

Machine Learning explained in human language

 

Was wir “Machine Learning” nennen, ist nichts anderes als das Treffen von Statistiken und der heute verfügbaren unglaublichen Rechenleistung (in Bezug auf Speicher, CPUs, GPUs). Dieser Bereich hat durch die digitale Revolution der Unternehmen, die zur Produktion massiver Daten unterschiedlicher Formen und Typen mit immer höheren Geschwindigkeiten führte, an Bedeutung gewonnen: Große Daten. Auf rein mathematischer Ebene sind die meisten der heute verwendeten Algorithmen bereits mehrere Jahrzehnte alt. In diesem Artikel werde ich die zugrundeliegende Logik von 8 maschinellen Lernalgorithmen auf einfachste Weise erklären.

I. Einige globale Konzepte, bevor die Algorithmen beschrieben werden.

1. Klassifizierung und Vorhersage / Regression

Klassifizierung

Die Zuordnung einer Klasse / Kategorie zu jeder der Beobachtungen in einem Dataset wird als Klassifizierung bezeichnet. Es wird a posteriori gemacht, sobald die Daten wiederhergestellt sind.

Beispiel: Klassifizierung der Gründe für den Besuch des Verbrauchers im Geschäft, um ihm eine personalisierte Kampagne zu schicken.

Vorhersage

Eine Vorhersage wird für eine neue Beobachtung gemacht. Wenn es um eine numerische Variable (kontinuierlich) geht, spricht man von Regression.

Beispiel: Vorhersage eines Herzinfarkts basierend auf Daten aus einem Elektrokardiogramm.

2. Beaufsichtigtes und unbeaufsichtigtes Lernen

Überwacht

Sie haben bereits Tags für historische Daten und möchten neue Daten anhand dieser Tags klassifizieren. Die Anzahl der Klassen ist bekannt.

Beispiel: In der Botanik haben Sie Messungen (Länge des Stammes, der Blütenblätter,….) an 100 Pflanzen von 3 verschiedenen Arten durchgeführt. Jede der Messungen ist mit der Art der Pflanze gekennzeichnet. Sie wollen ein Modell bauen, das anhand der gleichen Messungen automatisch erkennt, zu welcher Art eine neue Pflanze gehört.

Unbeaufsichtigt

Im Gegenteil, beim unbeaufsichtigten Lernen gibt es keine Bezeichnungen, keine vordefinierten Klassen. Sie wollen gemeinsame Muster identifizieren, um auf der Grundlage Ihrer Beobachtungen homogene Gruppen zu bilden.

Beispiele: Sie möchten Ihre Kunden anhand ihres Browserverlaufs auf Ihrer Website klassifizieren, aber Sie haben keine Gruppen gebildet und sind in einem explorativen Ansatz, um zu sehen, was die gemeinsamen Punkte zwischen ihnen sein würden. In diesem Fall wird ein Clustering-Algorithmus angepasst.

Einige neuronale Netzwerkalgorithmen werden in der Lage sein, ohne vorherige Kennzeichnung zwischen menschlichen und tierischen Bildern zu unterscheiden.

II. Algorithmen des maschinellen Lernens

Wir werden 8 Algorithmen beschreiben, die im Machine Learning verwendet werden. Dabei geht es nicht darum, auf die Details der Modelle einzugehen, sondern dem Leser Elemente des Verständnisses für jedes einzelne von ihnen zu vermitteln.

1. ” Der Entscheidungsbaum”

Ein Entscheidungsbaum wird verwendet, um zukünftige Beobachtungen zu klassifizieren, da eine Reihe von bereits gekennzeichneten Beobachtungen vorliegt. Dies ist der Fall bei unserem botanischen Beispiel, wo wir bereits 100 Sichtungen haben, die in den Arten A, B und C klassifiziert sind.

Der Baum beginnt mit einer Wurzel (wo wir noch alle unsere Beobachtungen haben), dann kommt eine Reihe von Zweigen, deren Schnittpunkte Knoten und Enden Blätter genannt werden, die jeweils einer der vorherzusagenden Klassen entsprechen. Die Tiefe des Baumes bezieht sich auf die maximale Anzahl von Knoten, bevor sie ein Blatt erreicht. Jeder Knoten des Baumes stellt eine Regel dar (Beispiel: Länge des Blütenblattes größer als 2,5 cm). Um den Baum zu durchsuchen, müssen Sie eine Reihe von Regeln überprüfen. Der Baum ist so konstruiert, dass jeder Knoten der Regel entspricht, die den Satz der ersten Beobachtungen (Variable und Schwellenwert) am besten teilt.

Beispiel:

 

Decsion tree data

Decision Tree

 

Der Baum hat eine Tiefe von 2 (ein Knoten plus die Wurzel). Die Länge des Blütenblattes ist das erste Maß, das verwendet wird, weil es die 4 Beobachtungen nach Klassenzugehörigkeit (hier Klasse B) am besten trennt.

2. ” Zufallswälder”

Wie der Name schon sagt, basiert der Zufallswaldalgorithmus auf einer Vielzahl von Entscheidungsbäumen.

Um die Vorteile und die Logik dieses Algorithmus besser zu verstehen, beginnen wir mit einem Beispiel:

Sie sind auf der Suche nach einem guten Reiseziel für Ihren nächsten Urlaub. Du fragst deinen besten Freund nach seiner Meinung. Er stellt Ihnen Fragen zu Ihren bisherigen Reisen und gibt Ihnen eine Empfehlung.

Du beschließt, eine Gruppe von Freunden zu fragen, die dir zufällig Fragen stellen. Sie alle geben eine Empfehlung ab. Das gewählte Ziel ist dasjenige, das von deinen Freunden am meisten empfohlen wurde.

Die Empfehlungen deines besten Freundes und der Gruppe werden beide gute Entscheidungen über das Ziel treffen. Aber wenn die erste Empfehlungsmethode für Sie sehr gut funktioniert, wird die zweite für andere Menschen zuverlässiger sein.

Dies kommt daher, dass dein bester Freund, der einen Entscheidungsbaum erstellt, um dir eine Zielempfehlung zu geben, dich sehr gut kennt, was es bedeutet, wenn der Entscheidungsbaum überlernt wird (wir sprechen von Overfitting).

Ihre Freundesgruppe repräsentiert den zufälligen Wald mehrerer Entscheidungsbäume, und es ist ein Modell, das bei richtiger Verwendung die Fallstricke der Überfindung vermeidet. Wie wird dieser Wald gebaut?

Hier sind die wichtigsten Schritte:

1. Wir nehmen eine Anzahl X von Beobachtungen aus dem Ausgangsdatensatz (mit Rabatt).

2. Wir nehmen eine Zahl K der verfügbaren M-Variablen (Merkmale), zum Beispiel: nur Temperatur und Bevölkerungsdichte.

3. Auf diesem Datensatz erstellen wir einen Entscheidungsbaum.

4. Die Schritte 1. bis 4. werden N-mal wiederholt, um N Bäume zu erhalten.

Um die Klasse einer neuen Beobachtung zu erhalten, gehen wir die N-Bäume hinunter. Jeder Baum wird eine andere Klasse vorhersagen. Die gewählte Klasse ist diejenige, die unter allen Bäumen im Wald am meisten vertreten ist. (Mehrheitsabstimmung /’Ensemble’).

3. Die “Gradientenverstärkung” / “XG-Boost”.

Die Boosting Gradient Methode wird verwendet, um ein Modell zu verstärken, das schwache Vorhersagen liefert, wie beispielsweise einen Entscheidungsbaum (siehe unten, wie beurteilen wir die Qualität eines Modells).

Wir werden das Prinzip der Erhöhung des Gradienten mit dem Entscheidungsbaum erklären, aber dies könnte mit einem anderen Modell geschehen.

Sie haben eine individuelle Datenbank mit demographischen Informationen und vergangenen Aktivitäten. Du hast 50% der Individuen in ihrem Alter, aber die andere Hälfte ist unbekannt.

Du willst das Alter einer Person entsprechend ihrer Aktivitäten erreichen: Lebensmitteleinkauf, Fernsehen, Gartenarbeit, Videospiele…. Sie wählen als Modell einen Entscheidungsbaum, in diesem Fall einen Regressionsbaum, da der vorherzusagende Wert numerisch ist.

Ihr erster Regressionsbaum ist zufriedenstellend, kann aber verbessert werden: Er sagt zum Beispiel voraus, dass ein Individuum 19 Jahre alt ist, obwohl er tatsächlich 13 Jahre alt ist, und für weitere 55 Jahre statt 68 Jahre alt.

Das Prinzip der Gradientenanhebung besteht darin, dass Sie ein Modell über die Differenz zwischen dem vorhergesagten Wert und dem wahren Wert, der vorhergesagt werden soll, erneut erstellen.

Age Prediction Tree 1 Difference Prediction Tree 2
13 19 -6 15
68 55 +13 63

 

Dieser Schritt N wird wiederholt, wobei N durch sukzessives Minimieren des Fehlers zwischen der Vorhersage und dem wahren Wert bestimmt wird.

Die zu optimierende Methode ist die Gradientenabstiegsmethode, die wir hier nicht erklären werden. Das XG Boost (eXtreme Gradient Boosting) Modell ist eine der Implementierungen des von Tianqi Chen gegründeten Boosting Gradient und hat die Kaggle Datascientist Community mit seiner Effizienz und Leistung verführt. Die Publikation, die den Algorithmus erklärt, ist hier.

4. ” Genetische Algorithmen”

Wie ihr Name schon sagt, basieren genetische Algorithmen auf dem Prozess der genetischen Evolution, der uns zu dem gemacht hat, was wir sind….

Prosaischer ausgedrückt werden sie hauptsächlich dann eingesetzt, wenn es keine Abflugbeobachtungen gibt und man hofft, dass eine Maschine lernen wird, wie und wann sie testet.

Diese Algorithmen sind nicht für ein bestimmtes Problem am effektivsten, sondern für eine Reihe von Teilproblemen (z.B. Erlernen der Balance und Gehen in der Robotik).

Nehmen wir ein einfaches Beispiel: Wir wollen den Code eines Tresors finden, der aus 15 Buchstaben besteht: ” MASCHINENLERNEN”

Der Ansatz des genetischen Algorithmus sieht wie folgt aus:

Wir gehen von einer Population von 10.000 “Chromosomen” mit je 15 Buchstaben aus. Wir sagen, dass der Code ein Wort oder eine Menge von Wörtern ist.

” TIEFES LERNEN”

” STATISTISCHE SCHLUSSFOLGERUNG….”

“HUMAN MACHINE INTERFACE” etc.

Wir werden eine Art der Reproduktion definieren: zum Beispiel, um den Anfang eines Chromosoms mit dem Ende eines anderen zu kombinieren.

Bspw.: “DEEP-LEARNING” + “STATISTICAL-INFERENCE” = “DEEP-INFERENCE”.

Dann werden wir eine Mutationsmethode definieren, die es erlaubt, eine Nachkommenschaft zu ändern, die blockiert ist. In unserem Fall könnte es sein, einen der Buchstaben zufällig zu variieren. Schließlich definieren wir eine Punktzahl, die diese oder jene Nachkommen von Chromosomen belohnt. In unserem Fall, in dem der Code versteckt ist, können wir uns ein Geräusch vorstellen, das der Stamm machen würde, wenn 80% der Buchstaben ähnlich sind, und das stärker werden würde, wenn wir uns dem richtigen Code nähern.

Unser genetischer Algorithmus beginnt bei der Grundgesamtheit und bildet Chromosomen, bis die Lösung gefunden ist.

5. “Unterstützung von Vektor-Maschinen”

Auch bekannt als “SVM”, wird dieser Algorithmus hauptsächlich für Klassifizierungsprobleme verwendet, obwohl er auf Regressionsprobleme erweitert wurde (Drucker et al., 96).

Nehmen wir unser Beispiel für ideale Urlaubsziele. Für die Einfachheit unseres Beispiels betrachten Sie nur 2 Variablen, um jede Stadt zu beschreiben: die Temperatur und die Bevölkerungsdichte. So können wir Städte in 2 Dimensionen darstellen.

Wir vertreten durch Kreise Städte, die du sehr geschätzt hast, und durch Plätze, die du am wenigsten geschätzt hast. Wenn Sie neue Städte in Betracht ziehen, möchten Sie wissen, welcher Gruppe diese neue Stadt am nächsten ist.

SVM Optimal Plane

SVM ExampleWie wir in der Grafik rechts sehen, gibt es viele Pläne (gerade Linien, wenn Sie nur 2 Dimensionen haben), die die beiden Gruppen trennen.

Wir werden die Linie wählen, die sich im maximalen Abstand zwischen den beiden Gruppen befindet. Um es aufzubauen, sehen wir bereits, dass wir nicht alle Punkte brauchen, es genügt, die Punkte zu nehmen, die sich am Rand ihrer Gruppe befinden, die wir diese Punkte oder Vektoren, die Stützvektoren nennen. Die Ebenen, die durch diese Stützvektoren verlaufen, werden als Unterstützungsebenen bezeichnet. Der Trennungsplan wird derjenige sein, der äquidistant zu den beiden Stützebenen ist.

Was tun, wenn die Gruppen nicht so leicht trennbar sind, z.B. wenn durch eine der Dimensionen Kreise mit Quadraten vermischt werden oder umgekehrt?

Wir werden zu einer Transformation dieser Punkte durch eine Funktion übergehen, um sie trennen zu können. Wie im folgenden Beispiel:

SVM transformation example

SVM transformation example 

Der SVM-Algorithmus besteht daher darin, sowohl nach der optimalen Hyperebene zu suchen als auch Klassifizierungsfehler zu minimieren.

6. Die “K nächsten Nachbarn”.

Pause. Nach 5 relativ technischen Modellen erscheint Ihnen der Algorithmus der K nächsten Nachbarn als eine Formalität. So funktioniert es:

Einer Beobachtung wird die Klasse ihrer nächstgelegenen K-Nachbarn zugeordnet.

“Das ist es ?!”, könntest du mich fragen.

Ja, das ist alles. Nur wie das folgende Beispiel zeigt: Ks Wahl kann eine Menge bedeuten.

K nearest neighbours
K nearest neighbours

 

Wir werden typischerweise verschiedene Werte von K ausprobieren, um die bestmögliche Trennung zu erreichen.

7. ” Logistische Regression”

Beginnen wir mit einer Erinnerung an die lineare Regression. Die lineare Regression wird verwendet, um eine numerische Variable vorherzusagen, z.B. den Baumwollpreis im Vergleich zu anderen numerischen oder binären Variablen: die Anzahl der kultivierbaren Hektar, die Nachfrage nach Baumwolle aus verschiedenen Branchen usw.

Es geht darum, die Koeffizienten a1, a2, a2, …. zu finden, um die beste Schätzung zu erhalten:

Baumwollpreis = a1 * Hektarzahl + a2 * Nachfrage nach Baumwolle + …..

Die logistische Regression wird bei der Klassifizierung in gleicher Weise verwendet wie die bisher exponierten Algorithmen. Nehmen wir noch einmal das Beispiel von Reisen, die nur zwei Klassen berücksichtigen: gutes Ziel (Y = 1) und schlechtes Ziel (Y = 0).

P (1): Wahrscheinlichkeit, dass die Stadt ein gutes Ziel ist.

P (0): Wahrscheinlichkeit, dass die Stadt ein schlechtes Ziel ist.

Die Stadt wird durch eine Reihe von Variablen dargestellt, wir werden nur zwei betrachten: die Temperatur und die Bevölkerungsdichte.

X = (X1: Temperatur, X2: Bevölkerungsdichte)
Wir sind daher daran interessiert, eine Funktion aufzubauen, die uns für eine Stadt X gibt:

P (1 | X): Wahrscheinlichkeit, dass das Ziel gut ist und X kennt, d.h. Wahrscheinlichkeit, dass die Stadt, die X überprüft, ein gutes Ziel ist.
Wir möchten diese Wahrscheinlichkeit auf eine lineare Kombination als lineare Regression beziehen. Nur die Wahrscheinlichkeit P (1 | X) variiert zwischen 0 und 1, außer wir wollen eine Funktion, die die gesamte Domäne der reellen Zahlen durchläuft (von -unendlich bis + unendlich).

Dazu betrachten wir zunächst P (1 | X) / (1 – P (1 | X)), das ist das Verhältnis zwischen der Wahrscheinlichkeit, dass das Ziel gut ist und dass das Ziel schlecht ist.

Für starke Wahrscheinlichkeiten nähert sich dieses Verhältnis + Unendlichkeit (z.B. eine Wahrscheinlichkeit von 0,99 ergibt 0,99 / 0,01 = 99) und für niedrige Wahrscheinlichkeiten nähert es sich 0: (eine Wahrscheinlichkeit von 0,01 ergibt 0,01 / 0,99 = 0,0101).

Wir sind von [0,1] auf [0, + unendlich [… Um den’Umfang’ der möglichen Werte auf] -unendlich, 0] zu erweitern, nehmen wir den natürlichen Logarithmus dieses Verhältnisses.

Daraus folgt, dass wir nach b0, b1, b2, b2, …. suchen, wie zum Beispiel:

ln (P (1 | X) / (1-P (1 | X)) = b0 + b1X1 + b2X2 + b2X2
Der rechte Teil stellt die Regression dar und der Logarithmus des Neperischen bezeichnet den logistischen Teil.

Der logistische Regressionsalgorithmus findet daher die besten Koeffizienten, um den Fehler zwischen der Vorhersage für besuchte Ziele und dem tatsächlichen Label (gut, schlecht) zu minimieren.

8. ” Clustering”

Beaufsichtigtes vs. unbeaufsichtigtes Lernen. Erinnerst du dich?

Bisher haben wir überwachte Lernalgorithmen beschrieben. Die Klassen sind bekannt und wir wollen eine neue Beobachtung klassifizieren oder vorhersagen. Aber wie geht man vor, wenn es keine vordefinierte Gruppe gibt? Wenn Sie nach Mustern suchen, die von Personengruppen geteilt werden?

Hier kommen unbeaufsichtigte Lern- und Clusteralgorithmen.

Nehmen wir das Beispiel eines Unternehmens, das seine digitale Transformation begonnen hat. Es verfügt über neue Vertriebs- und Kommunikationskanäle über seine Website und eine oder mehrere zugehörige mobile Anwendungen. In der Vergangenheit wurden die Kunden auf der Grundlage der demographischen Daten und ihrer Kaufhistorie angesprochen. Aber wie kann man die Navigationsdaten seiner Kunden nutzen? Entspricht das Online-Verhalten den klassischen Kundensegmenten?

Diese Fragen können den Einsatz von Clustering motivieren, um zu sehen, ob sich wichtige Trends abzeichnen. Dadurch werden Ihre Geschäftsideen, die Sie möglicherweise haben, ungültig oder bestätigt.

Es gibt viele Clustering-Algorithmen (hierarchisches Clustering, k-means, DBSCAN,….). Einer der am häufigsten verwendeten ist der k-means Algorithmus. Wir werden die Bedienung einfach erklären:

Selbst wenn wir nicht wissen, wie die Cluster gebildet werden, zwingt der k-means-Algorithmus dazu, die erwartete Anzahl von Clustern anzugeben. Es gibt Techniken, um die optimale Anzahl von Clustern zu finden.

Betrachten wir das Beispiel der Städte. Unser Datensatz hat 2 Variablen, also haben wir 2 Dimensionen. Nach einer ersten Studie erwarten wir 2 Cluster. Wir beginnen mit einer zufälligen Platzierung von zwei Punkten, die unseren Starter “Mittel” darstellen. Wir assoziieren mit den gleichen Clustern die Beobachtungen, die diesen Mitteln am nächsten sind. Dann berechnen wir den Durchschnitt der Beobachtungen jedes Clusters und verschieben die Mittel auf die berechnete Position. Wir ordnen die Beobachtungen den nächstgelegenen Mitteln neu zu und so weiter.

 

Clustering K means

 

Um die Stabilität der gefundenen Gruppen zu gewährleisten, wird empfohlen, die Ziehung der ersten “Mittel” mehrmals zu wiederholen, da einige der ersten Ziehungen eine andere Konfiguration ergeben können als in den meisten Fällen.

Faktoren der Relevanz und Qualität von Algorithmen des maschinellen Lernens

Algorithmen des maschinellen Lernens werden auf der Grundlage ihrer Fähigkeit bewertet, sowohl die Beobachtungen, die zur Ausbildung des Modells verwendet wurden (Trainings- und Testspiel), als auch und vor allem Beobachtungen, deren Bezeichnung oder Wert bekannt ist und die bei der Entwicklung des Modells nicht verwendet wurden (Validierungssatz), korrekt zu klassifizieren oder vorherzusagen.

Eine korrekte Klassifizierung bedeutet, dass die Beobachtungen sowohl in die richtige Gruppe eingeordnet werden als auch nicht in die falschen Gruppen.

Die gewählte Metrik kann je nach Absicht des Algorithmus und seiner geschäftlichen Nutzung variieren.

Mehrere Datenfaktoren können eine große Rolle bei der Qualität der Algorithmen spielen. Hier sind die wichtigsten:

1. Die Anzahl der Beobachtungen:

Je weniger Beobachtungen es gibt, desto schwieriger ist die Analyse,
aber je mehr es gibt, desto größer ist der Bedarf an Computerspeicher und desto länger ist die Analyse.)
2. Die Anzahl und Qualität der Attribute, die diese Beobachtungen beschreiben.

So ist beispielsweise der Abstand zwischen zwei numerischen Variablen (Preis, Größe, Gewicht, Lichtintensität, Rauschintensität, etc.) leicht festzustellen, dass zwischen zwei kategorischen Attributen (Farbe, Schönheit, Nutzen…) empfindlicher ist;

3. Der Prozentsatz der ausgefüllten und fehlenden Daten

4. “Rauschen”: Die Anzahl und der “Standort” von zweifelhaften Werten (potenzielle Fehler, Ausreißer…) oder natürlich nicht dem Muster der allgemeinen Verteilung von “Beispielen” auf ihrem Verteilungsraum entsprechend, wird sich auf die Qualität der “Analyse” auswirken.

Fazit

Wir haben gesehen, dass maschinelle Lernalgorithmen zwei Zwecken dienen: der Klassifizierung und Vorhersage und werden in überwachte und unbeaufsichtigte Algorithmen unterteilt. Es gibt viele mögliche Algorithmen, wir haben 8 davon abgedeckt, einschließlich logistischer Regression und zufälliger Wälder, um eine Beobachtung und ein Clustering zu klassifizieren, um homogene Gruppen aus den Daten hervorzubringen. Wir haben auch gesehen, dass der Wert eines Algorithmus von der damit verbundenen Kosten- oder Verlustfunktion abhängt, aber dass seine Vorhersagekraft von mehreren Faktoren abhängt, die mit der Qualität und dem Volumen der Daten zusammenhängen.

Ich hoffe, dass dieser Artikel Ihnen einen Einblick in das, was als Machine Learning bezeichnet wird, gegeben hat. Zögern Sie nicht, den Kommentarbereich zu nutzen, um sich mit mir über Aspekte zu unterhalten, die Sie klären oder vertiefen möchten.

Gaël Bonnardot,

Cofounder and CTO at Datakeen

At Datakeen we seek to simplify the use and understanding of new machine learning paradigms by the business functions of all industries.

Contact us for more information: contact@datakeen.co

Upcoming articles:

  • 3 Deep Learning Architectures explained in Human Language
  • Key Successes of Deep Learning and Machine Learning in production

Sources

3 Gedanken zu „8 Algorithmen des maschinellen Lernens, die in menschlicher Sprache erklärt werden.

  1. Pingback: What is Artificial Intelligence ? - Datakeen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.