Eine Reihe von fĂŒnf Jupyter-Notebooks, die die mathematischen Grundlagen des Maschinellen Lernens in Lehrbuchform entwickeln: Definitionen, SĂ€tze mit vollstĂ€ndigen Beweisen und anschlieĂender numerischer Verifikation der bewiesenen Aussagen.
Der Anspruch der Reihe ist, dass keine Behauptung unbelegt bleibt. Jeder Satz wird entweder bewiesen oder mit Fundstelle zitiert, und jede Aussage ĂŒber das numerische Verhalten eines Verfahrens â Fehlerordnung, Konvergenzrate, StabilitĂ€t â wird im Notebook gemessen und mit dem theoretischen Wert verglichen.
| Nr. | Notebook | Themen | Umfang |
|---|---|---|---|
| 1 | VektorrÀume, Normen und Distanzmetriken | Normaxiome, |
~60 min |
| 2 | Differentialrechnung und Gradientenverfahren | Gradient und Richtungsableitung, numerische Differentiation, Konvergenz des Gradientenverfahrens, |
~75 min |
| 3 | Integralrechnung und numerische Quadratur | Riemann-Integral, Hauptsatz, NewtonâCotes, GauĂâLegendre, adaptive Quadratur, Monte Carlo | ~75 min |
| 4 | Wahrscheinlichkeit und Informationstheorie | Jensen-Ungleichung, Shannon-Entropie, Gibbs-Ungleichung, KL-Divergenz, Maximum-Likelihood, Transinformation | ~75 min |
| 5 | Aktivierungsfunktionen und NichtlinearitÀt | Universelle Approximation, Sigmoid und Tanh, ReLU-Varianten, Softmax-Jacobi-Matrix, Gradientenfluss, Initialisierung | ~70 min |
Alle fĂŒnf Notebooks laufen vollstĂ€ndig in Google Colab â ohne lokale Installation und ohne GUI. Einfach oben im Notebook auf das âOpen in Colab"- Abzeichen klicken oder direkt öffnen:
| Nr. | In Colab öffnen |
|---|---|
| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 |
Die Notebooks sind fĂŒr den Betrieb in Colab vorbereitet: Die Setup-Zelle lĂ€dt automatisch alle
benötigten Pakete (numpy, scipy, matplotlib), die in Colab vorinstalliert sind. Es gibt keine
GUI- oder Streamlit-Komponenten â der gesamte Inhalt ist reines Notebook, das von oben nach unten
lÀuft.
Die Notebooks bauen aufeinander auf und verweisen wechselseitig aufeinander â die CauchyâSchwarz-Ungleichung aus Notebook 1 begrĂŒndet den steilsten Abstieg in Notebook 2, die Konditionszahl aus Notebook 2 erklĂ€rt das Verhalten tiefer Netze in Notebook 5. Sie lassen sich aber auch einzeln bearbeiten.
Alle fĂŒnf folgen derselben Gliederung:
- Kopf â Zusammenfassung, Lernziele, Inhaltsverzeichnis mit Sprungmarken
- Vorbereitung â identische Setup-Zelle: Importe, fester Zufallsseed, einheitliches Abbildungslayout
- Fachteil â nummerierte Abschnitte im Wechsel aus Definition/Satz/Beweis und Codezelle, die die bewiesene Aussage numerisch prĂŒft; jede Abbildung mit nummerierter Bildunterschrift und Interpretation
- Ăbungsaufgaben â fĂŒnf Aufgaben je Notebook, vom Nachrechnen bis zur eigenstĂ€ndigen Erweiterung des Codes
- Literatur â vollstĂ€ndige Angaben zu allen zitierten Quellen
SĂ€tze sind fortlaufend nummeriert (Satz 3.2 = Notebook-Abschnitt 3, zweiter Satz) und werden
notebookĂŒbergreifend referenziert.
Voraussetzung ist Python 3.10 oder neuer.
git clone https://github.com/mark-baumann/mathe-algorithmen.git
cd mathe-algorithmen
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
jupyter labAlternativ laufen alle Notebooks ohne Installation direkt in Google Colab â siehe oben. In
Colab sind numpy, scipy und matplotlib bereits vorinstalliert; die Setup-Zelle benötigt
keinerlei zusÀtzliche Pakete.
Alle Notebooks laufen ohne weitere Konfiguration von oben nach unten durch. SĂ€mtliche stochastischen Experimente verwenden einen festen Seed, die Ausgaben sind daher exakt reproduzierbar.
Der gesamte Bestand lĂ€sst sich nicht-interaktiv ausfĂŒhren und dabei prĂŒfen:
jupyter nbconvert --to notebook --execute --inplace notebooks/*.ipynbDer Befehl bricht bei der ersten fehlschlagenden Zelle ab und eignet sich damit als Regressionstest der Reihe.
- Die Notebooks sind mit Ausgaben eingecheckt, damit Text, Zahlenwerte und Abbildungen direkt auf GitHub lesbar sind, ohne dass eine Laufzeitumgebung nötig wÀre.
- Der gesamte Code steht in den Notebooks selbst; es gibt bewusst kein importierbares Hilfsmodul. Jedes Notebook ist damit fĂŒr sich vollstĂ€ndig und ohne Kenntnis der ĂŒbrigen lesbar.
- Die Abbildungen verwenden durchgehend dieselbe, auf Farbfehlsichtigkeit geprĂŒfte Farbfolge; jede Datenreihe ist zusĂ€tzlich ĂŒber Legende, Linienstil oder Beschriftung identifizierbar.
| Paket | Verwendung |
|---|---|
| NumPy | numerische Kernoperationen |
| SciPy | adaptive Quadratur, Legendre-Knoten, Fehlerfunktion |
| Matplotlib | sÀmtliche Abbildungen |
| JupyterLab | AusfĂŒhrungsumgebung (lokal; in Colab nicht erforderlich) |
Mark Baumann â GitHub