Ein Buch führt reich bebildert in Methoden des Machine Learning ein, das zweite erläutert Best Practices für C++-Programmierer.
Bilder statt Worte
Das Besondere an der vorliegenden Einführung in Methoden des maschinellen Lernens ist die Erklärmethode. Der Autor nutzt durchgängig Comic-artige Bildchen, oft Diagramme, aber auch plakative Abbildungen. Zwei Fantasiefiguren, Normalsaurus und StatSquatch, äußern sich mittels Sprechblasen. Alle Themenkomplexe gliedern sich in überschaubare Einheiten, meist nicht länger als eine Seite. Dabei umfasst jede Einheit wiederum meist drei oder vier prägnante Punkte, zu denen jeweils eine Illustration gehört. Oft setzen die Erklärungen bei einer Grundidee an und hangeln sich dann weiter zu den Details. Auf diese Weise kann der Leser den dargebotenen Stoff in leicht verdaulichen Häppchen aufnehmen und muss sich erst dann tiefer in die Materie wagen, wenn er die bis dahin gebotenen Erklärungen wirklich verstanden hat. Die Beispiele sind instruktiv und ähneln sich über weite Strecken, sodass der Leser an Bekanntem anknüpfen kann. Kurze Zusammenfassungen und FAQs festigen das Gelernte. Die Methode funktioniert ausgezeichnet, wenn man sich an “Bäm!!!” und ähnlichen kindlichen Stilelementen nicht allzu sehr stört.
Das Buch behandelt einführend die Grundideen des Machine Learning – Klassifizierung und Regression – und einige grundlegende Begriffe wie diskrete und kontinuierliche Daten, abhängige und unabhängige Variable, Test- und Trainingsdaten, und so weiter. Weiter geht es mit dem nötigen Fundament aus Statistik: Histogramme, Wahrscheinlichkeitsverteilungen und Modelle kommen zur Sprache. Dann folgen konkreten Techniken, darunter die lineare Regression, das Gradientenabstiegsverfahren und die logistische Regression. Daran schließt sich mit Naive Bayes ein bekanntes Klassifikationsverfahren an, dem noch Entscheidungsbäume und Support-Vektor-Klassifikatoren folgen. Das Buch endet schließlich mit einer Vorstellung neuronaler Netze. Insgesamt liegt mit dem Titel ein Werk vor, das sich ausgezeichnet auch für das Selbststudium eignet und auf didaktisch geschickte Weise in das weite Feld des maschinellen Lernens einführt. Es ist durchweg sehr gut verständlich und liest sich angenehm.
Infos
Josh Starmer
Machine Learning visuell lernen
mitp-Verlag 2022
300 Seiten, 35 Euro
ISBN: 978-3-7475-0071-2
C++ für Profis
Bei den C++ Core Guidelines handelt es sich um eine Sammlung von Regeln, Richtlinien und Empfehlungen, erarbeitet von der C++-Community und herausgegeben unter einer Open-Source-Lizenz. Sie sollen alle C++-Programmierer dazu befähigen, effizienteren Code zu schreiben, der statisch typsicher ist, keine Ressourcen-Leaks aufweist, keine Logik-Fehler aufweist und zügig läuft. Die Regeln sind allerdings sehr kurz und prägnant formuliert. Wer sie anwenden will, profitiert daher sicher von dem Projekt, das der freie Consultant, Trainer und Linux-Magazin-Autor Rainer Grimm nun in Buchform vorlegt. Sein Werk versammelt Hinweise und Erklärungen inklusive Codebeispielen zu jeder der zahlreichen Regeln.
Das englischsprachige Buch lehnt sich dabei eng an die Guidelines an und übernimmt deren Einteilung in 16 Sektionen samt deren Reihenfolge und Nummerierung. Zu jeder Regel wird konkret erläutert, was sie bedeutet und wie sie anzuwenden ist. Sehr häufig illustrieren kurze Code-Snippets die Verwendung, viele Screenshots von Terminalfenstern illustrieren die Effekte auf der Kommandozeile. Wichtige Aussagen eines jeden Abschnitts fasst ein mit Distilled überschriebener Kasten noch einmal kurz zusammen.
Nach einer Einführung geht es um die C++-Philosophie. Dabei geben 13 Regeln allgemeinere Grundsätze vor. Dazu gehören das Ziel, Ideen direkt in Code auszudrücken, die Regel, Zeit und Platz nicht zu verschwenden und die Maßgabe, Bibliotheken und unterstützende Tools zu nutzen, wo immer das angebracht ist. Das nächste Kapitel dreht sich um Interfaces als den “wahrscheinlich wichtigsten Einzelaspekt der Codeorganisation”. Es folgen eine ganze Anzahl Regeln zum Umgang mit Funktionen. Anschließend widmet sich eine umfangreiche Sektion den Klassen und Klassenhierarchien. Weiter geht es mit Enumerations und dann dem wichtigen Kapitel Ressourcenmanagement. Es folgt eine mit 65 Regeln recht umfangreiche Sektion zu Expressions und Statements. Die Best Practices reichen hier von einfachen Empfehlungen, wie der, ähnlich klingende Namen zu vermeiden, bis hin zu Ratschlägen wie dem, komplexe Initialisierungsschritte in Lambda-Funktionen zu kleiden. Die nächste Gruppe von Regeln widmet sich Performance-Problemen, dann geht es um die Konkurrenz in Umgebungen mit Multithreading. Weiter geht es mit Fehlerbehandlung, Konstanten, Templates, Programmierung im C-Stil, Source Files und der Standard-Library.
Das Buch bietet sich vor allem als übersichtliches Nachschlagewerk an, das zu einer Vielzahl Fragen der C++-Programmierung verständliche Erklärungen zu den Best-Practice-Regeln liefert.







