Skip to content

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mathematische Grundlagen des Maschinellen Lernens

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.

Inhalt

Nr. Notebook Themen Umfang
1 VektorrĂ€ume, Normen und Distanzmetriken Normaxiome, $p$-Normen, Metriken, Cauchy–Schwarz, Winkelgeometrie, Distanzkonzentration, Merkmalsskalierung ~60 min
2 Differentialrechnung und Gradientenverfahren Gradient und Richtungsableitung, numerische Differentiation, Konvergenz des Gradientenverfahrens, $L$-Glattheit, Konditionszahl, Impulsverfahren ~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

In Google Colab ausfĂŒhren

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 Open In Colab
2 Open In Colab
3 Open In Colab
4 Open In Colab
5 Open In Colab

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.

Aufbau eines Notebooks

Alle fĂŒnf folgen derselben Gliederung:

  1. Kopf — Zusammenfassung, Lernziele, Inhaltsverzeichnis mit Sprungmarken
  2. Vorbereitung — identische Setup-Zelle: Importe, fester Zufallsseed, einheitliches Abbildungslayout
  3. 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
  4. Übungsaufgaben — fĂŒnf Aufgaben je Notebook, vom Nachrechnen bis zur eigenstĂ€ndigen Erweiterung des Codes
  5. 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.

Reproduktion

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 lab

Alternativ 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/*.ipynb

Der Befehl bricht bei der ersten fehlschlagenden Zelle ab und eignet sich damit als Regressionstest der Reihe.

Hinweise zur Fassung im Repository

  • 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.

AbhÀngigkeiten

Paket Verwendung
NumPy numerische Kernoperationen
SciPy adaptive Quadratur, Legendre-Knoten, Fehlerfunktion
Matplotlib sÀmtliche Abbildungen
JupyterLab AusfĂŒhrungsumgebung (lokal; in Colab nicht erforderlich)

Autor

Mark Baumann — GitHub

About

📐 Mathe fĂŒr Machine Learning: Gradient Descent, Entropie, Distanzmetriken

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages