Der Autor richtet sich mit diesem Buch sowohl an Anfänger als auch an Fortgeschrittene. Die Grundkonzepte von neuronalen Netzen werden zunächst auf drei verschiedene Arten beschrieben: mathematisch, visuell und mit Python-Code. Dies hilft dabei genau zu verstehen, was beim Training eines solchen Netzwerks vonstattengeht. Im späteren Teil werden CNNs und RNNs detailliert beschrieben und zuletzt wird das Framework PyTorch beschrieben. Ich finde diesen Ansatz durchaus gelungen, da man auf diese Weise ein tieferes Verständnis aufbaut, bevor einem ein Großteil der Arbeit von Frameworks wie PyTorch oder Tensorflow abgenommen wird.Ich habe einen Stern abgezogen, da ich mehrfach vermeidbare Fehler im Buch gefunden habe. An einer Stelle wird z. B. über den Code für die Rückpropagierung gesprochen, aber der Code für die Vorpropagierung aufgeführt. Man kann den Code zwar in den Dateien einsehen, die auf GitHub hochgeladen wurden, jedoch stört dies den Lesefluss.
Das Buch erklärt sehr ausführlich die mathematischen Grundlagen Neuronaler Netze, und ergänzt dies durch Implementierungen in Python. (Der Quellcode ist angenehmerweise bei github verfügbar). Selbst einfache Dinge wie Ableitungen von Funktionen werden beschrieben, bis dann mit der Linearen Regression und dem Gradientenabstieg die wichtigsten Algorithmen präsentiert werden. Daraufhin werden dann die ersten Neuronalen Netze erstellt, und beschrieben, wie man damit arbeitet. Auch CNNs und RNNs (Convolutional und Reccurent NN) werden besprochen und implementiert, bis dann letztlich auch PyTorch präsentiert wird. Insgesamt also ein recht rundes Paket, und der Autor weiß, wovon er schreibt.Der Fokus des Buchs liegt darauf, dass der Leser versteht, was in einem NN eigentlich abläuft. Daher wird die Mathematik beschrieben und auch alles "Zu Fuß" in Python und NumPy implementiert, und nicht einfach nur eines der vielen Frameworks beschrieben. Darin liegt die Stärke des Buchs.Leider finde ich die Darstellung teilweise etwas umständlich, wobei ich erwähnen muss, dass ich einen mathematischen Hintergrund habe (Diplom...). Daher ist es für mich dann schon etwas Seitenverschwendung, wenn erst auf Seite 50 die Lineare Regression beschrieben wird. Außerdem ist der Autor der Meinung, dass die mathematische Notation unanschaulich ist. Diese Notation ist aber seit vielen, vielen Jahrzehnten sehr erfolgreich und m.E. sehr effektiv, um Probleme zu formulieren und auch zu lösen. Statt dessen führt der Autor eine eigene "grafische Notation" ein, die effektiver sein soll, durch die ich aber eher verwirrt wurde. Sehr gewöhnungsbedürftig. Auch die verbreitete grafische Darstellung von NN mit Kreisen und Linien wird von ihm abgelehnt. Das ist wenig hilfreich, Standards habe schon ihre Vorteile. Weiterhin ist der abgedruckte Python-Code mit Assert-Statements u.ä. versehen, und es werden extra Datentypen eingeführt zur stärkeren Typisierung. Das ist zwar ordentliche Programmierung, bläht aber den Code auf und lenkt aber von den entscheidenden Code-Zeilen ab. Hier wäre es besser gewesen, nur die Code-Zeilen, auf die es ankommt, zu zeigen und ansonsten auf github zu verweisen. Ein paar konkrete Beispiele mehr wären auch nicht verkehrt gewesen.Ansonsten gebe ich aber doch 4 Sterne, da es nicht allzu viele Bücher dieser Art gibt. Noch der Hinweis, dass die eBook-Ausgabe im Gegensatz zur gedruckten farbig ist, was schon etwas hübscher ist.
Wer die Grundlagen der NN verstehen will, wird hier weniger fündig. Es steigt direkt in die Implementierung der mathematischen Grundlagen in Python ein. Wer NN kennt und die Grundlagen verstanden hat, der findet hier eine Übersetzung der Funktionen in Python. Die Erläuterungen des Python-Code richten sich an Menschen, die mit der Programmiersprache vertraut sind. Als Einstieg, um einen ersten Überblich über die Funktionsweise und den Aufbau von NNs zu bekommen, eignen sich andere Bücher besser.