Читать книгу Praxiseinstieg Machine Learning mit Scikit-Learn, Keras und TensorFlow - Aurélien Géron - Страница 20

Warum wird Machine Learning verwendet?

Оглавление

Überlegen Sie einmal, wie Sie mit herkömmlichen Programmiertechniken einen Spamfilter schreiben würden (siehe Abbildung 1-1):

1 Zuerst würden Sie sich ansehen, wie Spam typischerweise aussieht. Sie würden feststellen, dass einige Wörter oder Phrasen (wie »Für Sie«, »Kreditkarte«, »kostenlos«, und »erstaunlich«) in der Betreffzeile gehäuft auftreten. Möglicherweise würden Ihnen auch weitere Muster im Namen des Absenders, dem Text und in anderen Teilen der E-Mail auffallen.

2 Sie würden für jedes der von Ihnen erkannten Muster einen Algorithmus schreiben, der dieses erkennt, und Ihr Programm würde E-Mails als Spam markieren, sobald eine bestimmte Anzahl dieser Muster erkannt wird.

3 Sie würden Ihr Programm testen und die Schritte 1 und 2 wiederholen, bis es gut genug ist.

Abbildung 1-1: Die herkömmliche Herangehensweise

Da diese Aufgabe schwierig ist, wird Ihr Programm vermutlich eine lange Liste komplexer Regeln beinhalten – und ganz schön schwer zu warten sein.

Dagegen lernt ein mit Machine-Learning-Techniken entwickelter Spamfilter automatisch, welche Wörter und Phrasen Spam gut vorhersagen, indem er im Vergleich zu den Ham-Beispielen ungewöhnlich häufige Wortmuster in den Spambeispielen erkennt (siehe Abbildung 1-2). Das Programm wird viel kürzer, leichter zu warten und wahrscheinlich auch treffsicherer.

Abbildung 1-2: Der Machine-Learning-Ansatz

Wenn außerdem die Spammer bemerken, dass alle ihre E-Mails mit »Für Sie« geblockt werden, könnten sie stattdessen auf »4U« umsatteln. Ein mit traditionellen Programmiertechniken entwickelter Spamfilter müsste aktualisiert werden, um die E-Mails mit »4U« zu markieren. Wenn die Spammer sich ständig um Ihren Spamfilter herumarbeiten, werden Sie ewig neue Regeln schreiben müssen.

Ein auf Machine Learning basierender Spamfilter bemerkt dagegen automatisch, dass »4U« auffällig häufig in von Nutzern als Spam markierten Nachrichten vorkommt, und beginnt, diese ohne weitere Intervention auszusortieren (siehe Abbildung 1-3).

Abbildung 1-3: Automatisches Einstellen auf Änderungen

Machine Learning brilliert außerdem bei Aufgaben, die entweder zu komplex für herkömmliche Verfahren sind oder für die kein bekannter Algorithmus existiert. Betrachten Sie z.B. Spracherkennung: Sagen wir, Sie beginnen mit einer einfachen Aufgabe und schreiben ein Programm, das die Wörter »one« und »two« unterscheiden kann. Sie bemerken, dass das Wort »two« mit einem hochfrequenten Ton (»T«) beginnt, und könnten demnach einen Algorithmus hartcodieren, der die Intensität hochfrequenter Töne misst und dadurch »one« und »two« unterscheiden kann. Natürlich skaliert diese Technik nicht auf Tausende Wörter, die von Millionen von Menschen mit Hintergrundgeräuschen und in Dutzenden von Sprachen gesprochen werden. Die (zumindest heutzutage) beste Möglichkeit ist, einen Algorithmus zu schreiben, der eigenständig aus vielen aufgenommenen Beispielen für jedes Wort lernt.

Schließlich kann Machine Learning auch Menschen beim Lernen unterstützen (siehe Abbildung 1-4): ML-Algorithmen lassen sich untersuchen, um zu erkennen, was sie gelernt haben (auch wenn dies bei manchen Algorithmen kompliziert sein kann). Wenn z.B. der Spamfilter erst einmal mit genug Spam trainiert wurde, lässt sich die Liste von Wörtern und Wortkombinationen inspizieren, die als gute Merkmale von Spam erkannt wurden. Manchmal kommen dabei überraschende Korrelationen oder neue Trends ans Tageslicht und führen dadurch zu einem besseren Verständnis der Aufgabe. Das Anwenden von ML-Techniken zum Durchwühlen großer Datenmengen hilft dabei, nicht unmittelbar ersichtliche Muster zu finden. Dies nennt man auch Data Mining.

Zusammengefasst, ist Machine Learning hervorragend geeignet für:

 Aufgaben, bei denen die existierenden Lösungen eine Menge Feinarbeit oder lange Listen von Regeln erfordern: Ein maschineller Lernalgorithmus vereinfacht oft den Code und schneidet besser ab als der klassische Ansatz.

 Komplexe Aufgaben, für die es mit herkömmlichen Methoden überhaupt keine gute Lösung gibt: Die besten Machine-Learning-Techniken können vielleicht eine Lösung finden.

 Fluktuierende Umgebungen: Ein Machine-Learning-System kann sich neuen Daten anpassen.

 Erkenntnisse über komplexe Aufgabenstellungen und große Datenmengen zu gewinnen.

Abbildung 1-4: Machine Learning hilft Menschen beim Lernen.

Praxiseinstieg Machine Learning mit Scikit-Learn, Keras und TensorFlow

Подняться наверх