Kompression ist Lernen: Ein Nachmittag mit scikit-learn auf der eigenen Maschine
Komprimiere Bilder mit k-means in scikit-learn, verstehe die Äquivalenz von Vorhersage und Kompression, und halte deine Daten in der Schweiz.
Beginne mit einem Resultat, das jeden verunsichern sollte, der ein Machine-Learning-Modell für eine Black Box hält, die nur rät: Vorhersage und Kompression sind dieselbe Handlung. Ein System, das die Wahrscheinlichkeit des nächsten Symbols, gegeben allem vorher Gesehenen, berechnet, kann einen arithmetischen Coder zu optimaler Kompression führen; ein optimaler Kompressor lässt sich rückwärts betreiben und vorhersagen. DeepMind machte das konkret, als es sein Chinchilla 70B Sprachmodell als verlustlosen Kompressor loslies und es Bilddaten auf 43,4% und Audio auf 16,4% der Originalgrösse komprimierte — PNG bei Bildern und FLAC bei Audio geschlagen auf deren eigenem Spielfeld. (Der ehrliche Vorbehalt, den die Forscher selbst nennen: einige Testdaten haben sich wahrscheinlich mit dem Trainingssatz überschnitten, also lies die Zahlen als Obergrenze, nicht als Versprechen.)
Diese Äquivalenz — klar dargelegt im Wikipedia-Eintrag Machine learning, neben dem AIXI- und Hutter-Prize-Framing, dass das kleinste Programm, das einen String erzeugt, seine beste Kompression ist — ist die saubere Tür, durch die ein Architekt ins ML einsteigt. Derselbe Eintrag untersucht drei repräsentative verlustlose Kompressoren — LZW, LZ77 und PPM — als Abbildungen von Strings in implizite Feature-Räume, genau das, was ein gelerntes Modell macht. Du brauchst kein 70-Milliarden-Parameter-Modell dafür. Du brauchst eine europäische Open-Source-Bibliothek und ein Foto von deiner Baustelle.
←HEUTE: 2026: ein Laptop läuft k-means über ein Fassaden-Foto in Sekunden — kein Pixel verlässt das Gebäude, kein API-Schlüssel wechselt Hände. →3012: Das Zürich-3012-Büro, das seine Modelle besitzt, besitzt seine Aufzeichnungen; wer Kognition mietete, erbte die Bedingungen anderer. Fulcrum: Kompression und Lernen sind dieselbe Operation — und beide können genau da laufen, wo deine Daten bereits liegen.
Das Tool: scikit-learn ist Pythons Standard-ML-Bibliothek — Klassifizierer, Regressoren, Clustering, alles — unter permissiver BSD-Lizenz. Sie zählt für einen PAZ-Leser aus einem Grund, der ebenso bürgerpolitisch wie technisch ist: sie ist 2007 aus David Courneapeaus Google-Summer-of-Code-Projekt bei INRIA, dem französischen öffentlichen Forschungsinstitut, hervorgegangen, und wird immer noch als Code geliefert, den du selbst klonst und auf deiner Hardware laufen lässt. Keine Inferenz geht nach aussen. Für ein Schweizer Büro bedeutet das: die ganze Pipeline sitzt standardmässig in deinem Datenresidenz-Perimeter — das Gegenteil einer gehosteten Modell-API.
Setup:
git clone https://github.com/scikit-learn/scikit-learn.git # die Quelle, zum Lesen
python -m venv .venv && source .venv/bin/activate # Windows: .venvScriptsactivate
pip install scikit-learn pillow numpy
python -c "import sklearn; print(sklearn.__version__)" # gibt 1.x ausErste Schritte:
- Lege ein Foto neben dein Skript als
facade.jpg. - Starte den Block unten. Er konvertiert das Bild zu einer Liste RGB-Pixel und führt k-means Clustering durch — denselben unüberwachten Algorithmus, den die Quelle als Datenkompression-Methode nennt — um 16 repräsentative Farben zu finden, und ersetzt jeden Pixel mit seinem nächsten Zentroid.
- Öffne
facade_16.png. Du hast gerade ein Foto komprimiert, indem du Tausende unterschiedliche Farben durch 16 ersetzt hast, und du kannst sehen, was das Modell für wichtig hielt — die Schattenlinie, die Sprosse, der Himmelsgradient, den es flachte.
import numpy as np
from PIL import Image
from sklearn.cluster import KMeans
img = np.asarray(Image.open("facade.jpg")) / 255.0
w, h, d = img.shape
pixels = img.reshape(-1, d)
km = KMeans(n_clusters=16, n_init=4).fit(pixels)
out = km.cluster_centers_[km.labels_].reshape(w, h, d)
Image.fromarray((out * 255).astype("uint8")).save("facade_16.png")Das ist kein Spielzeug. Die Genealogie unter diesen zwei Importen ist die ganze Geschichte, die das Feld über sich selbst erzählt — von Arthur Samuel, der 1959 bei IBM “machine learning” prägte, während er ein Damespiel-Programm schrieb, das jeder Seite ihre Gewinnchancen bewertete, über Donald Hebbs 1949 The Organization of Behavior, das uns die Intuition der Neuron-Gewichtung gab, bis zu Tom Mitchells operationaler Definition (ein Programm lernt von Erfahrung E bei Aufgabe T gemessen nach P, wenn sich P mit E verbessert). Der moderne Anstieg hat auch Daten: AlexNet 2012, als Krizhevsky, Sutskever und Hinton ImageNet mit einer Marge gewannen, die tiefe Netzwerke unübersehbar machte, und word2vec 2013, als Tomáš Mikolovs Team Wort-Vektoren aus Rohdaten im grossen Massstab lernten. k-means ist das demütige, transparente Ende dieses Regals — und es ist das richtige Ende zum Anfangen, weil du jede Entscheidung inspizieren kannst, die es trifft.
Atelier: Für ein Architektur- oder Computational-Design-Büro ist der Schritt hier nicht “KI adoptieren” — es ist KI verlagern. Eine lokale scikit-learn-Pipeline, die dein eigenes Zeichnungsarchiv klassifiziert, Material-Muster clustert oder Baustellen-Bilder quantisiert, hält jedes Byte im Büronetz und in Schweizer Jurisdiktion — genau die Eigenschaft, die eine gehostete API dir zu keinem Preis geben kann. Dein Montag-Schritt: nimm eine kleine, echte Aufgabe, die dein Atelier derzeit in ein Cloud-Tool sendet — Fotos taggen, eine Komponenten-Bibliothek deduplizieren — und prototypisiere sie mit scikit-learn auf einer Maschine, dann prüfe, ob das lokale Resultat gut genug ist, bevor du das Abo verlängerst.
Hack: Miss genau, was sechzehn Zentroide weggeworfen haben, bevor du der komprimierten Fassade vertraust. k-means gibt dir den Rekonstruktionsfehler kostenlos — die mittlere Distanz von jedem echten Pixel zu der Farbe, auf die es gerundet wurde — damit du niemals blind ein verlustbehaftetes Artefakt versendet. Führe dies direkt nach dem Fitting von km oben aus:
from sklearn.metrics import pairwise_distances_argmin_min
_, dist = pairwise_distances_argmin_min(pixels, km.cluster_centers_)
print(f"16 colours · mean error {dist.mean():.4f} · {len(pixels):,} px → 16 centroids")Erhöhe n_clusters auf 8, dann 32, und beobachte, wie der Fehler sinkt — du liest den Kompression–Treue-Kompromiss mit deinen eigenen Augen, dieselbe Kurve, auf der das Chinchilla-Resultat am teuren, weit entfernten Ende sitzt.
Der Kompromiss, klar gesagt: ein lokales Modell, das du besitzt, ist begrenzt durch deine eigene Hardware und deine eigenen getaggten Daten, und es wird nicht mithalten mit einem hochmodernen, gehosteten Modell in Rechenleistung — diese Lücke ist real und wert benannt zu werden. Was du zurückgewinnst, ist Souveränität über deine Daten und die Fähigkeit, jeden Schritt zu überprüfen. Die Schweiz, in der es lebenswert ist, behielt ihre digitale Unabhängigkeit, weil einige Kantone, spät und fast zufällig, auf lokale Datenresidenz bestanden, während niemand die Beschaffungsklausel überwachte. Föderalismus ist ein Vorteil durch Verlangsamung; nutze ihn. Wenn deine Gemeinde oder dein Atelier dieses Jahr Software beschafft, lies die Datenresidenz-Zeile selbst — und wenn sie fehlt, schreib an denjenigen, der unterzeichnet. Ein pip install, das deine Daten zu Hause hält, ist ein kleiner, gegenwärtiger Weg, die Zukunft zu bauen, in der du lieber leben möchtest.
Learn-it:
- Repo: github.com/scikit-learn/scikit-learn — die BSD-lizenzierte Quelle, INRIA-Ursprünge.
- Praktisches Tutorial: Google Machine Learning Crash Course.
- Verständliche Grundlagen: IBM — What is machine learning?
- Strukturierter Weg: GeeksforGeeks Machine Learning Tutorial.
- Wurzel-Konzept: Machine learning — Wikipedia (lies den Kompression-Abschnitt).
- Der nächste Schritt: Google DeepMind — Science, für ML, das über den Chatbot hinausgeht.
QUELLE · ↗
PAZ Kaffi · interdisziplinäre Redaktionsarbeit, geleitet von der PAZ Academy