Auf der Suche nach einem Buch mit einer umfassenden aber kompakten Einführung in Maschinelles Lernen und kleinen Beispielen aus der Praxis bin ich vor ein paar Jahren auf das Buch von Sebastian Raschka: Machine Learning mit Python: Das Praxis-Handbuch für Data Science, Predictive Analytics und Deep Learning gestoßen. Nun kann man 400+ Seiten (Druckversion) wahrscheinlich nicht als kompakt betrachten, aber angesichts des Themenspektrums und Komplexität finde ich es durchaus angemessen.
Grundlagen des Machine Learnings
Direkt nach der Klärung grundlegender Terminologie und Notation widmet sich der Autor dem Thema Klassifikation – einem häufig vorkommenden Anwendungsfall im Bereich Machine Learning. Das zweite Kapitel startet spannend mit Ansätzen um künstlichen Neuronen zu realisieren und veranschaulicht dies durch die Implementierung eines Perzeptron Lernalgorithmus zur binären Klassifikation. Dort werden zu Beginn Prinzipien wie die Aktivierungsfunktion, Straffunktion, Gradientabstiegsverfahren und Konvergenz eingeführt und man bekommt einen ersten Eindruck was einem so an Mathematik um die Ohren fliegt.
Eine ganze Reihe weiterer Algorithmen zur Klassifikation folgen. Deren mögliche Realisierung wird durch Codebeispiele in Python skizziert und weitergehend die jeweiligen Anwendungsfälle mit Hilfe von etablierten Bibliotheken wie scikit-learn und anderen erläutert. Darüberhinaus erfolgt teils eine Abgrenzung der Fähigkeiten und Einsatzmöglichkeiten der Algorithmen anhand von Beispielen.
Datenqualität, Optimierung und Bewertung
Die nicht zu unterschätzenden Themen Datenqualität und Aufbereitung sowie Dimensionsreduktion werden ebenfalls betrachtet und in zwei eigenen Kapiteln gewürdigt.
Inwiefern das Training eines Models zu Klassifizierung nun erfolgreich war muss natürlich gemessen und ggf. Optimierungen vorgenommen werden. Vorgehensweisen und Metriken zur Modellbewertung sowie Verfahren zur Hyperparameterabstimmung und dem Ensemble Learning folgen daher.
Nach einem kleinen Ausflug in die Welt der Dokumentenklassifikation und rudimentären Deployment von Machine Learning Modellen auf einen Web-Server, wird ein weiterer wesentlicher Anwendungsfall des überwachten Lernens, die Regression, beschrieben.
Es schließt sich ein spannender Bereich des Machinellen Lernens an. Das Aufspüren von unbekannten, verborgenen Strukturen in Daten durch die Clusteranalyse wird neben der Dimensionsreduktion als Beispiel des unüberwachten Lernens vorgestellt.
Künstliche Neuronale Netze und Deep Learning
Die letzten Kapitel widmen sich erneut den künstlichen Neuronen bzw. neuronalen Netzen im Kontext von Deep Leerning und der Bilderkennung. Es wird ein mehrschichtiges Perzeptron implementiert und abschließend einige Netzarchitekturen sowie Bibliotheken wie Keras oder Theano zum Trainineren von neuronalen Netzen, allerdings nur kurz, aufgeführt. Das Thema Deep Learning würde den Rahmen des Buches, wie dort im Letzten Kapitel auch erwähnt, wohl sprengen – obwohl der Titel eher etwas anderes verspricht.
Aber es gibt derweil eine zweite Auflage des Buches mit einem etwas abgewandelten Titel. Das Thema Deep Learning wird, zumindest nach dem Inhaltsverzeichnis zu beurteilen, eingehender betrachtet. Die Bildklassifikation mit tiefen konvolutionalen neuronalen Netzen, die Modellierung sequenzieller Daten durch rekurrente neuronale Netze werden thematisiert und ferner die Bibliothek Tensorflow einführt. Somit wird es dem Titel: Machine Learning mit Python und Scikit-Learn und TensorFlow: Das umfassende Praxis-Handbuch für Data Science, Deep Learning und Predictive Analytics bezüglich Deep Learning etwas gerechter, bekommt mit Vahid Mirjalili einen weiteren Autor und wächst um rund 150+ Seiten.
In der Praxis haben oder können sich die verwendeten Bibliotheken mit der Zeit weiter entwicklen und die APIs sich verändern. Das lässt die behandelten Themen und Darstellungen, aber nicht weniger aktuell erscheinen.