Das erste Buch demonstriert, wie sich etliche bekannte Algorithmen der Mathematik mit Python implementieren lassen, das zweite verwendet Python und neuronale Netze für die Sprachverarbeitung.
Algorithmen ausprobiert
Nimmt man “Mathematische Algorithmen mit Python” von Veit Steinkamp zur Hand, dann fällt auf den ersten Blick auf, dass die ersten drei Kapitel mit dem eigentlichen Thema des Buchs nur indirekt zu tun haben: Sie bieten nämlich einen Python-Crashkurs. Das mag den Vorteil haben, dass der Leser mit nur einem Buch sowohl die Programmiergrundlagen erlernen als auch später die Algorithmen verstehen kann. Es hat aber auch große Nachteile. So ist ein Schnelleinstieg, selbst wenn man ihm ein Viertel des Buchs opfert, nie so gut wie eine explizite Einführung in Python in Form eines eigenen Werks. Andererseits sind für all jene, die die ersten Schritte mit dieser Programmiersprache hinter sich gebracht haben, volle drei Kapitel nutzlos und redundant. Der Kompromiss wird also niemandem wirklich gerecht, und Anfänger dürfte es eher frustrieren, dass sie am Ende aller späteren Kapitel anspruchsvolle Aufgaben bearbeiten sollen, für die das Buch aber keine Lösungen mitliefert, sollte man sie nicht auf Anhieb bewältigen.
Wer – wie auch immer – das nötige Python-Know-how erworben hat, sollte zudem ein Mathe-Fan sein. Das Buch demonstriert nämlich auf gut verständliche Weise viele interessante Algorithmen nebst Erklärung und Herleitung, das aber immer aus der Perspektive eines Mathematikers, eher abstrakt und selten mit Anwendungsbeispielen aus der Praxis. Wer sich also fragt, wie genau etwa das Sieb des Eratosthenes funktioniert und wie man es in Python programmieren könnte, der kommt voll auf seine Kosten. Wen dagegen interessiert, wo dieser oder andere Algorithmen praktisch zum Einsatz kommen, der findet nur spärliche Hinweise.
Im Einzelnen geht es um die verschiedenen Zahlenbereiche und damit verbundene Algorithmen, etwa zur Primzahlensuche, zur Berechnung von Pi oder der Eulerschen Zahl e. Neben den Rechenschritten wird oft auch demonstriert, wie sich die Lösung unter Zuhilfenahme von Spezialmodulen wie NumPy oder SymPy ermitteln lässt. Das nächste Kapitel wendet sich Gleichungssystemen, dem Gauß-Algorithmus und der Matrizenrechnung zu. Anschließend dreht sich alles um Zahlenfolgen inklusive Divergenz, Konvergenz und Grenzwertbildung. Als Nächstes folgen stetige Funktionen und ihre grafische Darstellung. Weitere Kapitel handeln von Differenzial- und Integralrechnung, Ausgleichsrechnungen oder Statistik.
Wer sich vor Mathe-Sprech, Formeln und Definitionen fürchtet, der wird wenig Freude an diesem Buch haben. Wem jedoch Mathe Spaß macht und wer gern mithilfe kleiner, eigener Programme erkunden möchte, wie bekannte Algorithmen funktionieren, dem wird das vorliegende Werk gut gefallen.
Infos
Veit Steinkamp
Mathematische Algorithmen mit Python
Rheinwerk Verlag, 2022
510 Seiten, 35 Euro
ISBN 978-3-8362-8574-2
Sprachverständnis
Das Buch “Natural Language Processing mit PyTorch” von Delip Rao und Brian McMahan führt in die Sprachverarbeitung (Natural Language Processing, NLP) mit neuronalen Netzen und dem Python-Framework PyTorch ein. Außer Python-Kenntnissen setzt die Lektüre nicht viel fachliches Vorwissen voraus, wohl aber die Bereitschaft, sich auf den anspruchsvollen Inhalt einzulassen, die zahlreichen Beispiele und Übungen gewissenhaft nachzuvollziehen und gegebenenfalls den Literaturhinweisen zu folgen. Alles andere wird erklärt.
Das beginnt in Kapitel 1 mit Erläuterungen zum Konzept des überwachten Lernens im Allgemeinen und den Grundlagen des PyTorch-Frameworks, mit dessen Hilfe später die verschiedenen Deep-Learning-Modelle implementiert werden. In diesem Zusammenhang kommen auch Grundbegriffe wie der des Tensors ausführlich zur Sprache. Das zweite Kapitel liefert einen knappen Abriss der Mittel und Methoden der Sprachverarbeitung ohne neuronale Netze, die nach wie vor von Bedeutung sind. Kapitel drei untersucht dann systematisch die Grundkomponenten neuronaler Netze wie Aktivierungs- und Verlustfunktionen in diversen Spielarten am Beispiel des einfachsten neuronalen Netzes, des Perzeptrons. Ein ausführliches Beispiel noch außerhalb des Sprachkontexts (es geht um die Klassifikation von 2D-Koordinaten) illustriert das Zusammenspiel der Komponenten.
Zwei wichtige Feedforward-Architekturen, nämlich das Multi-layer Perceptron (MLP) und das Convolutional Neural Network (CNN) sind Gegenstand des nächsten Kapitels. Das CNN entstand eigentlich im Umfeld der Bilderkennung, bildet aber inzwischen auch eine Säule der Sprachverarbeitung. Das Folgekapitel untersucht, wie sich Wörter auf Vektoren abbilden lassen, mit denen das maschinelle Lernen rechnet. Dieser Prozess wird Worteinbettung genannt, und das Buch stellt verschiedenen Verfahren dar, deren Resultate man als vortrainierte Worteinbettungen herunterladen und verwenden kann. Der Abstand zweier Vektoren kodiert dann verschiedene linguistische Eigenschaften. Im Anschluss geht es darum, dass Worte in einer Sprache nicht unabhängig und gleichverteilt vorkommen, sondern aufeinander bezogen sind. Sie bilden sogenannte Sequenzen, die es bei der Sprachverarbeitung ebenfalls zu modellieren gilt. Diesem Thema widmen sich die letzten Kapitel des Buchs.
Alles in allem liegt mit dem Titel eine gründliche und gut verständliche, wenn auch anspruchsvolle Einführung in die Sprachverarbeitung mit neuronalen Netzen und den Methoden des maschinellen Lernens vor. Sie eignet sich bestens für alle, die sich in dieses interessante Gebiet einarbeiten wollen.







