Zwei Bücher helfen beim Verstehen: Im einen geht es um die Möglichkeiten maschinellen Lernens, im anderen um das Programmieren mit Node.js.
Lernende Maschinen verstehen
Maschinelles Lernen, oft als Teildisziplin der KI betrachtet, ist derzeit ein Hype und entsprechendes Know-how entsprechend gefragt. Die Aneignung solcher Kenntnisse gelingt häufig dann besonders gut und effektiv, wenn sie nicht nur auf Literaturstudium beruht, sondern mit eigenem Zutun verbunden ist, mit eigenen Experimenten und Programmierübungen. Mit “Maschinelles Lernen – Grundlagen und Algorithmen in Python” liegt jetzt ein Titel vor, der Lernwillige bei diesem Ansatz ideal unterstützt. Allerdings setzt das Buch solide Grundkenntnisse in Mathematik und die Motivation voraus, sich ernsthaft mit dem Stoff auseinandersetzen zu wollen. Wer das aufbringt, wird aber mit Verständnis belohnt, das dadurch noch besonders vertieft wird, dass in der Regel die Erklärung der Algorithmen als Ausgangspunkt der Darstellung dient.
An ein Überblickskapitel schließt sich eine knappe Einführung in Python und dessen in diesem Zusammenhang regelmäßig verwendete Bibliotheken NumPy, SciPy und Matplotlib an. Weiter geht es mit einer Statistiklektion, die sich dem Satz von Bayes und dem Bayes-Klassifikator widmet. Das nächste Kapitel dreht sich um Vektorräume und die Methode der kleinsten Quadrate in der Regressionsrechnung. Im Anschluss gibt es zunächst eine kleine Auffrischung zum Thema binäre Bäume und darauf aufbauend dann eine Erläuterung der Funktionsweise von Entscheidungsbäumen für Klassifikationsprobleme.
Neuronale Netze als Werkzeuge für maschinelles Lernen sind Gegenstand zweier weiterer Kapitel. In diesem Zusammenhang wird die darauf spezialisierte Python-Bibliothek Keras eingeführt, mit der man Deep Neural Networks erstellen kann. Weiter hinten in dem Buch dient Keras dann noch dazu, Convolutional Neural Networks zu studieren.
Eigene Kapitel widmen sich Support Vector Machines und einer Auswahl von Clustering-Verfahren. Auch das verstärkende Lernen in verschiedenen Spielarten kommt ausführlich zur Sprache. All das illustrieren zahlreiche Codebeispiele, anhand derer man die Funktionsweise der Algorithmen nachvollziehen kann. Wer sich die Mühe macht, den Quelltexten auf den Grund zu gehen, erwirbt ein grundlegendes Verständnis dafür, wie maschinelles Lernen funktioniert und was damit heute möglich ist.
Infos
Jörg Frochte
Maschinelles Lernen
Hanser Verlag, 2021
600 Seiten, 40 Euro
ISBN: 978-3-446-46144-4
Programmieren mit Node.js
Node.js, die Entwicklungsumgebung für serverseitiges Javascript, ist nach wie vor sehr beliebt. Entsprechend hat der Rheinwerk Verlag das umfassende Handbuch zum Thema in diesem Jahr zum vierten Mal in erweiterter Fassung aufgelegt. Der Titel bietet keine Javascript-Einführung, konzentriert sich ganz auf Node.js und bringt es dennoch auf knapp 900 Seiten, weswegen das Attribut “umfassend” in der Unterzeile in diesem Fall nicht übertrieben ist.
An ein Einführungskapitel, das auch die Node.js-Historie beleuchtet, schließt sich ein Abschnitt an, der die Installation unter Linux, Windows und MacOS erklärt. Schon das nächste Kapitel macht dann praktischen Gebrauch von der eben installierten Plattform und führt mit einfachen Beispielen in die Arbeit mit Node.js ein. Im Anschluss wird das Modulsystem der Plattform vorgestellt. Weiter geht es mit einem der wichtigsten Module, das für HTTP zuständig ist und die Implementierung eines Webservers ermöglicht. Daran schließt sich die Vorstellung des populärsten Web-Application-Frameworks namens Express an, das dem Programmierer viele Standardaufgaben bei der Entwicklung von Webserverapplikationen abnimmt.
Die nächsten Kapitel nehmen Template-Engines und die Anbindung von Datenbanken ins Visier. Ein ebenfalls häufiges Problem, die Authentifizierung und das Session-Handling, bildet den Gegenstand des folgenden Kapitels. Danach geht es um die Kommunikation zwischen Rechnern mittels HTTP über eine REST-Schnittstelle. Es folgen Erläuterungen zu einer zweiten oft gebrauchten Schnittstelle für die Abfrage eines Servers im Web, GraphQL. Nicht selten ist auch eine bidirektionale Kommunikation zwischen Client und Server nötig, wie sie sich beispielsweise mit Websockets implementieren lässt, die im Anschluss besprochen werden.
Ein Konkurrent des zuvor behandelten Frameworks Express ist Nest, dem sich ebenfalls ein Kapitel widmet. Weniger typisch, aber ebenfalls möglich sind Kommandozeilenapplikationen mit Node.js, die das nächste Kapitel vorstellt. Darauf folgen unter anderem Kapitel zu generellen Fragen wie asynchroner Programmierung, Streaming, Umgang mit Dateien und Sockets, dem Package Manager, der Qualitätskontrolle unter Node.js oder der Sicherheit. Alles in allem liegt damit ein gut verständliches und sehr umfangreiches Buch vor, das kaum eine Frage zu Node.js offen lässt.






