Zum Inhalt springen

~/teaching · machine learning · sitzung 8, freitag, 12. februar 2027

Vom neuronalen Netz zum Modell im Betrieb: Backpropagation, Drift, konforme Vorhersage und eine API

Ein Netz, von Hand gerechnet, dann die Fragen, die sich einem Modell stellen, sobald es das Notebook verlässt.

Zusammenfassung

Dieser Foliensatz schließt den Modellierungsteil des Kurses Machine Learning an der Centrale Méditerranée ab (Schwerpunkt DDEFI, 2026-2027). Der Vormittag eröffnet die letzte Modellfamilie des Kurses, das neuronale Netz: ein Vorwärts- und ein Rückwärtsdurchlauf, Zahl für Zahl gerechnet an Netzen, die klein genug für die Tafel sind, die praktischen Gewohnheiten beim Training (Mini-Batches, Adam, Initialisierung, frühes Stoppen), dann die ehrliche Frage, ob ein Netz auf einer Kredittabelle, auf der Boosting bereits stark ist, überhaupt etwas taugt.

Der Nachmittag verlässt das Notebook. Ein Modell im Betrieb altert, also messen wir die Drift mit dem Populationsstabilitätsindex und der Kolmogorov-Smirnov-Statistik und schreiben einen Überwachungsplan; die konforme Vorhersage (conformal prediction) in ihrer Split-Variante erlaubt dem Modell, „Ich weiß es nicht“ zu sagen; wir rechnen eine Entscheidungsschwelle in Euro pro Jahr um, für einen Leser, der den Bericht nie öffnen wird; wir lesen die KI-Verordnung der EU (AI Act) mit den Augen von Ingenieuren; und wir stellen das Modell hinter einen kleinen FastAPI-Service, mit Tests und gemessener Latenz.

Die Seite richtet sich an Studierende der Ingenieurwissenschaften und der Finanzwirtschaft sowie an Praktiker, die die Mechanik ohne den Hype verstehen wollen. Danach können Sie einen Backpropagation-Schritt auf Papier nachrechnen, einen PSI und eine konforme Marge berechnen, einen A/B-Test für eine Kreditvergabepolitik dimensionieren und auflisten, was eine Aufsichtsbehörde von einem Kreditscore verlangen wird.

Die Folien

Neuronale Netze, Drift, konforme Vorhersage, Inbetriebnahme

Sitzung 8, Freitag, 12. Februar 2027. Machine Learning, Centrale Méditerranée, Schwerpunkt DDEFI, 2026-2027. Die Folien gibt es auf Französisch und Englisch; der Link öffnet die englische Fassung.

Folien öffnen (Passwort vom Dozenten)

Der Foliensatz selbst ist für die Studierenden des Kurses verschlüsselt; diese Seite fasst ihn für alle zusammen.

Die Kursseite · Aufmerksamkeit und Transformer, Schritt für Schritt

Aufbau des Foliensatzes

  1. Das neuronale Netz. Vom Perzeptron Rosenblatts zum 2-2-1-Netz, Aktivierungsfunktionen und ihre Ableitungen, Vorwärtsdurchlauf, Backpropagation und die Trainingsgewohnheiten, mit denen sie funktioniert.
  2. Netze auf Tabellendaten. Warum Bäume auf mittelgroßen Tabellen weiterhin gewinnen, wann ein Netz seinen Platz verdient, Einbettungen, Skalierung und wie das Netz in den bestehenden Vergleich aufgenommen wird.
  3. Drift und Überwachung. Drei Arten von Drift, das Beispiel Bike Sharing, PSI und Kolmogorov-Smirnov, verspätete Labels, Alarme mit einer verantwortlichen Person und Strategien für das Nachtrainieren.
  4. Konforme Vorhersage. Split Conformal in vier Schritten, ein Beispiel mit neun Scores, woher die Überdeckungsgarantie kommt, ihre Grenzen und Vorhersagemengen für die Kreditvergabe.
  5. Das Kundenmemo in Euro. Erwartete Kosten einer Schwelle, Gewinn pro Antrag und pro Jahr, Empfindlichkeit gegenüber den Kostenannahmen und die Größe des A/B-Tests, der das Versprechen überprüft.
  6. Workshop zum AI Act. Warum ein Kreditscore ein Hochrisiko-System ist, welche anderen Texte bereits gelten, und eine Lückenanalyse der Artikel 9 bis 15 gegenüber dem Projekt-Repository.
  7. Der FastAPI-Service. Drei Routen, ein Eingabevertrag, ein eigenschaftsbasierter Test, ein Test, dass das ausgelieferte Modell dem evaluierten entspricht, und Latenz-Perzentile.

Ein Netz ist ein Stapel logistischer Regressionen

Jedes Neuron gewichtet seine Eingaben, summiert sie und formt das Ergebnis nichtlinear um; das letzte Neuron macht aus allem eine Ausfallwahrscheinlichkeit.

Der Foliensatz beginnt mit dem Perzeptron von Rosenblatt (1958): eine gewichtete Summe der Eingaben, ein Bias, eine harte Schwelle und eine Korrekturregel, die die Gewichte nur dann verschiebt, wenn die Vorhersage falsch ist. Seine Entscheidungsgrenze ist immer eine Gerade (eine Hyperebene), weshalb es das „exklusive Oder“ nicht lernen kann, worauf Minsky und Papert 1969 hinwiesen. Eine verborgene Schicht behebt das: Jedes verborgene Neuron bildet eine neue Variable, und das Ausgabeneuron liest diese Variablen statt der Rohspalten.

h=ReLU(W1x+b1),p=σ(w2Th+b2)h = \mathrm{ReLU}(W_1 x + b_1), \qquad p = \sigma(w_2^{\T} h + b_2)
(1)

Die Ausgabeschicht ist nichts Neues: Sie ist die logistische Regression der Maximum-Likelihood-Schätzung, mit demselben Log-Loss. Ohne verborgene Schicht ist eine Sigmoid-Ausgabe, die auf den Log-Loss trainiert wird, eine logistische Regression. Der Foliensatz geht jede gängige Aktivierungsfunktion (activation function) durch (Sigmoid, Tangens hyperbolicus, ReLU und ihre Leaky-Varianten, Softmax für mehrere Klassen), jeweils mit ihrer Ableitung, denn die Ableitung entscheidet, ob der Gradient durchkommt. ReLU wurde zur Standardwahl für verborgene Schichten (Nair und Hinton, 2010), weil ihre Steigung überall dort genau 1 beträgt, wo das Neuron aktiv ist.

L=−[yln⁡p+(1−y)ln⁡(1−p)],∂L∂z2=p−yL = -\big[y \ln p + (1-y)\ln(1-p)\big], \qquad \frac{\partial L}{\partial z_2} = p - y
(2)

Durchgerechnetes Beispiel: ein 1-1-1-Netz

Eine Eingabe, ein verborgenes ReLU-Neuron, eine Sigmoid-Ausgabe, vier Parameter: w1=0.5w_1 = 0.5, b1=0b_1 = 0, w2=1w_2 = 1, b2=−1b_2 = -1. Der Kunde hat x=2x = 2 und ist ausgefallen, y=1y = 1. Der Vorwärtsdurchlauf (forward pass) hält jeden Zwischenwert fest, weil der Rückwärtsdurchlauf sie brauchen wird.

Tabelle 1: Vorwärtsdurchlauf des 1-1-1-Netzes für einen Kunden, der ausgefallen ist.
GrößeRechnungWert
z1z_10.5×2+00.5 \times 2 + 01
hhmax⁡(0,1)\max(0, 1)1
z2z_21×1−11 \times 1 - 10
ppσ(0)\sigma(0)0,5
LL−ln⁡0.5-\ln 0.50,693

Das Netz ist bei einem Kunden, der tatsächlich ausgefallen ist, vollkommen unentschieden: Sein Verlust ist der eines Münzwurfs. Der Foliensatz wiederholt dieselbe Übung an einem 2-2-1-Netz mit neun Parametern, bei dem ein verborgenes Neuron feuert und das andere von der ReLU abgeschaltet wird, und prüft jede Zahl mit PyTorch nach.

Zurück zum Inhalt.

Backpropagation ist die Kettenregel, in der richtigen Reihenfolge angewandt

Wir tragen den Fehler von der Ausgabe zurück zu den Eingaben, multiplizieren ihn mit der Steigung jedes Schritts, und jedes Gewicht erfährt, in welche Richtung es sich bewegen soll.

Die Fehlerrückführung (Backpropagation), für Netze 1986 von Rumelhart, Hinton und Williams bekannt gemacht, beginnt beim Fehler an der Ausgabe, p−yp - y, und geht rückwärts durch das Netz. An jedem Kasten multipliziert sie mit der lokalen Ableitung: mit dem Ausgabegewicht für den Weg hinunter in die verborgene Schicht, dann mit der Steigung der Aktivierung, die bei ReLU 1 beträgt, wenn das Neuron aktiv war, und sonst 0. Der Gradient eines Gewichts ist der Fehler, der seinen Kasten erreicht, mal dem, was in den Kasten hineinging.

δj=(p−y) w2,j 1{z1,j>0},∂L∂W1,jk=δj xk,∂L∂w2,j=(p−y) hj\delta_j = (p - y)\, w_{2,j}\, \mathbf{1}\{z_{1,j} > 0\}, \qquad \frac{\partial L}{\partial W_{1,jk}} = \delta_j\, x_k, \qquad \frac{\partial L}{\partial w_{2,j}} = (p - y)\, h_j
(3)

Das 1-1-1-Beispiel rückwärts, dann ein Schritt mit η=0.1\eta = 0.1

  1. Ausgabe. p−y=0.5−1=−0.5p - y = 0.5 - 1 = -0.5, also ∂L/∂b2=−0.5\partial L/\partial b_2 = -0.5 und ∂L/∂w2=−0.5×h=−0.5\partial L/\partial w_2 = -0.5 \times h = -0.5.
  2. Verborgene Schicht. Die Multiplikation mit w2=1w_2 = 1 und mit der ReLU-Steigung (1, da z1=1>0z_1 = 1 > 0) ergibt ∂L/∂z1=−0.5\partial L/\partial z_1 = -0.5, daher ∂L/∂b1=−0.5\partial L/\partial b_1 = -0.5 und ∂L/∂w1=−0.5×2=−1\partial L/\partial w_1 = -0.5 \times 2 = -1.
  3. Schritt. Von jedem Parameter 0.10.1 mal seinen Gradienten abziehen: w1=0.6w_1 = 0.6, b1=0.05b_1 = 0.05, w2=1.05w_2 = 1.05, b2=−0.95b_2 = -0.95.
  4. Probe. Neuer Vorwärtsdurchlauf: z1=1.25z_1 = 1.25, z2=0.3625z_2 = 0.3625, pp steigt von 0,5 auf 0,590, und der Verlust sinkt von 0,693 auf 0,528.

Warum nicht einfach jedes Gewicht ein wenig verändern und die Wirkung messen? Für das Kreditnetz 23-64-1 des Projekts (1.601 Parameter) brauchen finite Differenzen 1.602 Vorwärtsdurchläufe pro Gradient; die Backpropagation braucht einen Vorwärts- und einen Rückwärtsdurchlauf, unabhängig von der Zahl der Parameter. Dieses Verhältnis macht das Training von Netzen überhaupt erst möglich. Finite Differenzen behalten eine Aufgabe: einen von Hand geschriebenen Gradienten an einigen Gewichten zu überprüfen.

Bemerkung (Trainingsgewohnheiten). Mini-Batches (in scikit-learn standardmäßig 200 Zeilen) und Epochen; Adam als Standard-Solver; zufällige Initialisierung in der Größenordnung nach Glorot oder He, niemals alles auf null, sonst bleibt jedes verborgene Neuron ein Zwilling der anderen; frühes Stoppen (early stopping) auf einem Validierungsdatensatz, der aus den Trainingsdaten abgetrennt wird. Der Verlust eines Netzes ist nicht konvex, daher hängen die Ergebnisse vom Seed ab: Geben Sie Mittelwert und Streuung über mehrere Seeds an, niemals nur den besten Lauf.

Zurück zum Inhalt.

Auf einer Kredittabelle ist das Netz ein Herausforderer, kein Favorit

Auf gewöhnlichen Tabellen mit einigen tausend Zeilen schlagen Baumensembles neuronale Netze meist, also muss sich das Netz seinen Platz im selben Vergleich verdienen wie jedes andere Modell.

Der Foliensatz stützt sich auf Grinsztajn, Oyallon und Varoquaux (NeurIPS 2022): Auf 45 mittelgroßen tabellarischen Datensätzen blieben Random Forests und Gradient Boosting selbst nach großzügigem Tuning vor den Netzen. Ihre drei Begründungen sollte man sich merken. Netze bevorzugen glatte Funktionen, während tabellarische Zielvariablen Stufen haben; sie lassen sich von nutzlosen Spalten stören, die ein Baum einfach ignoriert; und sie vermischen alle Spalten, während in einer Tabelle jede Spalte ihre eigene Bedeutung hat, die ein Baum respektiert, indem er jeweils entlang einer einzigen Achse schneidet. Der Kreditdatensatz des Kurses, 30.000 Zeilen und 23 Spalten, liegt genau in diesem Bereich.

  • Ein Netz hat echte Chancen bei kategorialen Variablen mit Hunderten oder Tausenden von Ausprägungen, dank einer gelernten Einbettung (Embedding) (Guo und Berkhahn, 2016): ein kleiner Vektor pro Ausprägung, der wie jedes andere Gewicht per Backpropagation angepasst wird.
  • Es hilft auch, wenn zu einer Tabelle Texte, Bilder oder Sequenzen gehören, wenn es weit mehr Zeilen gibt, oder als Mitglied eines Ensembles mit Boosting, weil seine Fehler nur schwach mit denen der Bäume korreliert sind.
  • Skalierung ist Pflicht: Einem Baum sind Einheiten gleichgültig, einem Netz nicht. Standardisieren Sie, zähmen Sie Beträge mit schweren Rändern durch Quantile oder einen vorzeichenbehafteten Logarithmus, und passen Sie jeden Transformer innerhalb der Pipeline auf dem Trainingsdatensatz jedes Folds an.

Die Methode ändert sich nicht, nur weil das Modell neu ist. Als weitere Zeile tritt ein mehrschichtiges Perzeptron (multilayer perceptron, MLP) in den bestehenden Vergleich ein, auf denselben Folds und mit denselben Seeds wie Boosting und Random Forests, mit in der inneren Schleife abgestimmten Hyperparametern und einer vorab festgelegten Champion-Regel. Gewinnt das Netz nicht, ist das ein Ergebnis, und zwar genau das, das die Literatur vorhersagt.

Zurück zum Inhalt.

Drift: Die Welt bewegt sich, das Modell bleibt eingefroren

Ein ausgeliefertes Modell hat eine Momentaufnahme der Vergangenheit gelernt; die Überwachung vergleicht die heutigen Daten mit dieser Momentaufnahme und legt fest, wer handelt, wenn sie zu stark abweichen.

Schreibt man die gemeinsame Verteilung als P(X,Y)=P(Y∣X) P(X)P(X, Y) = P(Y \mid X)\,P(X), lassen sich drei Fälle von Datendrift (data drift) unterscheiden. Kovariaten-Drift: Die Zusammensetzung der neuen Kunden ändert sich (jünger nach einer Kampagne), aber das Risiko bei gegebenem Profil bleibt gleich. Ziel-Drift: Die Ausfallrate selbst bewegt sich, zum Beispiel in einer Rezession, was die Kalibrierung und die kostenbasierte Schwelle verschiebt. Konzept-Drift: Der Zusammenhang zwischen Profil und Risiko ändert sich, und keine Statistik auf den Eingaben allein kann das erkennen; dafür braucht man die Labels. Der Foliensatz zeigt die Mechanik an den UCI-Daten Bike Sharing (Washington, 2011 und 2012), wo die Jahreszeiten die Temperatur verschieben und das Wachstum des Dienstes die Zielvariable, und überträgt sie dann auf das Kreditgeschäft.

PSI=∑i=1K(ai−ei) ln⁡aiei=KL(a ∥ e)+KL(e ∥ a)\mathrm{PSI} = \sum_{i=1}^{K} (a_i - e_i)\,\ln\frac{a_i}{e_i} = \mathrm{KL}(a \,\|\, e) + \mathrm{KL}(e \,\|\, a)
(4)

Der Populationsstabilitätsindex (population stability index, PSI) teilt eine Variable anhand der Referenzperiode in Klassen ein, vergleicht den Anteil eie_i jeder Klasse in der Referenz mit ihrem Anteil aia_i im aktuellen Monat und summiert. Jeder Term ist positiv oder null, also ist der Index nur bei identischen Histogrammen null. Die übliche Lesart im Kreditscoring (Siddiqi, 2006): unter 0,1 stabil, 0,1 bis 0,25 beobachten, über 0,25 handeln; das sind Gepflogenheiten der Branche, keine statistischen Ergebnisse, und ein Überwachungsplan sollte seine eigenen Schwellen begründen.

Tabelle 2: PSI mit vier Klassen und gleichverteilter Referenz, ei=0.25e_i = 0.25 in jeder Klasse: Die Masse ist in die oberen Klassen gerutscht.
KlasseMonat aia_iai−eia_i - e_iln⁡(ai/ei)\ln(a_i/e_i)Term
10,10−0,15−0,9160,137
20,20−0,05−0,2230,011
30,30+0,050,1820,009
40,40+0,150,4700,071
PSI0,228

Ein PSI von 0,228 liegt im Beobachtungsbereich, knapp unter der Handlungsgrenze. Eine leere Klasse macht einen Term unendlich, deshalb werden die Anteile nach unten auf einen kleinen Wert begrenzt, und der Plan hält das fest. Die Kolmogorov-Smirnov-Statistik für zwei Stichproben, der größte Abstand zwischen den beiden Verteilungsfunktionen, ergänzt ihn ohne Klassen; bei großen Stichproben ist ihr p-Wert fast immer winzig, daher betrachtet der Foliensatz den Abstand selbst.

  • Indikatoren auf den Eingaben und auf dem Score lassen sich sofort ablesen; die Leistung (AUC, Kalibrierung, Ausfallraten pro Kohorte) muss warten, bis eine Kohorte gereift ist, was bei einem Kredit Monate bedeutet. Zwei Dashboards, zwei Rhythmen.
  • Jeder Indikator bekommt eine Schwelle, eine Maßnahme und eine verantwortliche Person, sonst ist es keine Überwachung.
  • Nachtrainiert wird nach Zeitplan, bei einem Alarm oder mit einem Herausforderer, der neben dem Champion mitläuft; in jedem Fall ist ein nachtrainiertes Modell ein neues Modell, das erneut validiert wird, und das alte bleibt für ein Rollback erhalten.

Zurück zum Inhalt.

Konforme Vorhersage: ein Intervall mit einem Versprechen

Statt einer einzigen Zahl liefert das Modell einen Bereich, der den wahren Wert in mindestens neun von zehn Fällen enthält, gleich welches Modell, solange die Daten von morgen denen von heute ähneln.

Split Conformal in vier Schritten (Papadopoulos et al., 2002; Lei et al., 2018)

  1. Aufteilen. Einen Kalibrierungsteil von nn Zeilen zurückhalten, den das Modell nie sieht.
  2. Trainieren. Das Modell wie gewohnt auf dem Rest anpassen; jedes Modell ist geeignet.
  3. Bewerten. Auf jeder Kalibrierungszeile einen Nichtkonformitätsscore (nonconformity score) berechnen, in der Regression das absolute Residuum: Je größer er ist, desto mehr überrascht die Zeile das Modell.
  4. Quantil. Den ⌈(n+1)(1−α)⌉\lceil (n+1)(1-\alpha) \rceil-ten kleinsten Score als Marge q^\hat q nehmen und die Vorhersage plus oder minus q^\hat q zurückgeben.
C(x)=[y^(x)−q^, y^(x)+q^],1−α≤P(Y∈C(X))<1−α+1n+1C(x) = \big[\hat y(x) - \hat q,\ \hat y(x) + \hat q\big], \qquad 1 - \alpha \le \mathbb{P}\big(Y \in C(X)\big) < 1 - \alpha + \frac{1}{n+1}
(5)

Durchgerechnetes Beispiel. Neun Kalibrierungsresiduen, bereits sortiert: 0,1; 0,3; 0,5; 0,8; 1,2; 1,4; 1,9; 2,5 und 3,0, bei einer angestrebten Überdeckung (coverage) von 80 %, also α=0.2\alpha = 0.2. Der Rang ist ⌈10×0.8⌉=8\lceil 10 \times 0.8 \rceil = 8, und das achtkleinste Residuum ist 2,5, also ist das Intervall die Vorhersage plus oder minus 2,5. Die Garantie folgt allein aus der Austauschbarkeit (exchangeability): Der neue Score nimmt mit gleicher Wahrscheinlichkeit jeden der zehn Ränge unter den zehn Scores ein, und er ist überdeckt, wenn er auf einem der ersten acht landet, daher eine Überdeckung von genau 8/10. Der Foliensatz zeigt auch die Falle: Mit neun Scores und α=0.05\alpha = 0.05 wäre der Rang 10, es gibt keinen zehnten Score, und das Intervall ist unendlich.

Das Versprechen ist marginal: im Mittel über künftige Kunden, nicht für jede Untergruppe. Die Überdeckung kann für Kunden ohne Zahlungsrückstand hoch und für Kunden mit Rückstand niedrig sein und im Mittel trotzdem das Ziel erreichen, was zum Fairness-Audit zurückführt; eine Kalibrierung Gruppe für Gruppe (Mondrian Conformal) hilft, wenn jede Gruppe genug Zeilen hat. Ein schwaches Modell erhält trotzdem eine ehrliche Überdeckung, aber breite Intervalle. Und Drift bricht die Austauschbarkeit, also fällt die Garantie mit ihr.

Bei der Kreditvergabe liefert dieselbe Idee Vorhersagemengen. Der Score ist eins minus die Wahrscheinlichkeit der wahren Klasse; für einen neuen Kunden enthält die Menge jede Klasse, deren Score unter q^\hat q liegt. Eine Menge, die nur „kein Ausfall“ enthält, bedeutet genehmigen, nur „Ausfall“ bedeutet ablehnen, und beide Klassen bedeuten „Ich weiß es nicht“: Der Antrag geht an einen Menschen, und die Enthaltungsquote wird zu einem überwachten Indikator.

Zurück zum Inhalt.

Das Modell in Euro ausdrücken

Eine Schwelle ist so viel wert, wie sie gegenüber dem Nichtstun einspart, umgerechnet in eine Zahl pro Jahr, die ein Entscheidungsträger unterschreiben kann.

C(t)=cFP FP(t)+cFN FN(t),Δ(t)=Cno model−C(t)C(t) = c_{FP}\,FP(t) + c_{FN}\,FN(t), \qquad \Delta(t) = C_{\text{no model}} - C(t)
(6)

Der Foliensatz übernimmt die Beispielkosten aus der Sitzung zur Entscheidungsschwelle: 600 € entgangene Marge für einen abgelehnten guten Kunden, 4.500 € erwarteter Verlust für einen angenommenen Ausfall bei einem Kredit über 10.000 €. Das sind Annahmen des Kurses, und das Memo muss das offenlegen.

Tabelle 3: Zahlen zur Veranschaulichung: 10.000 Anträge, darunter 200 Ausfälle.
StrategieFalsch PositiveFalsch NegativeKosten
Alle annehmen0200900.000 €
Kostenbasierte Schwelle, etwa 0,1280050705.000 €
Gewinn195.000 €

Das sind 19,50 € pro Antrag; bei angenommenen 50.000 Anträgen pro Jahr 975.000 €. Das Memo zeigt dann, was die Zahl bewegt: Kostet ein Ausfall 20 % weniger, sinkt der Gewinn bei derselben Schwelle auf 60.000 € pro 10.000 Anträge, eine ungünstigere Annahme, die das Ergebnis durch mehr als drei teilt. Die Vergleichsbasis zählt so viel wie das Modell: Hat die Bank bereits eine Regel, wird der Gewinn an dieser Regel gemessen, nicht daran, alle anzunehmen.

Eine Zahl in einem Memo ist ein Versprechen, und ein A/B-Test überprüft es. Um einen Rückgang der Ausfallrate der angenommenen Kredite von 10 % auf 8 % (Raten zur Veranschaulichung) mit einem Fehler 1. Art von 5 % und einer Teststärke von 80 % zu erkennen, liefert die Formel für den Vergleich zweier Anteile 3.211 angenommene Anträge pro Arm. Halbiert man den zu erkennenden Abstand, vervierfacht sich der Stichprobenumfang, und weil Ausfälle erst Monate nach der Kreditvergabe auftreten, dauert der Test Monate. Das Memo selbst ist eine Seite in fünf Blöcken: die erbetene Entscheidung, der Gewinn pro Jahr, die Annahmen, wie er überprüft wird und was schiefgehen kann, ohne eine einzige unerklärte Abkürzung.

Zurück zum Inhalt.

Der AI Act, dann das Modell hinter einer API

Ein Kreditscore ist nach EU-Recht ein Hochrisiko-System, und ihn als Service bereitzustellen verlangt einen strengen Eingabevertrag, die Rückverfolgbarkeit jeder Entscheidung und Tests, dass das ausgelieferte Modell das evaluierte ist.

Die Verordnung (EU) 2024/1689 zählt in Anhang III Nummer 5 Buchstabe b jene Systeme zu den Hochrisiko-Systemen, die die Kreditwürdigkeit natürlicher Personen bewerten, mit Ausnahme der Betrugserkennung. Sie trat am 1. August 2024 in Kraft; der Foliensatz hält fest, dass der Geltungsbeginn der Pflichten aus Anhang III durch eine Änderungsverordnung von 2026 verschoben wurde, und besteht darauf, den geltenden Wortlaut auf EUR-Lex nachzulesen, statt ein Datum von einer Folie abzuschreiben. Andere Rechtstexte gelten bereits: Artikel 22 DSGVO zu ausschließlich automatisierten Entscheidungen (das SCHUFA-Urteil des EuGH, C-634/21, Dezember 2023), die Betreiberpflichten der Artikel 26 und 27 des AI Act und die Verbraucherkreditrichtlinie (EU) 2023/2225.

Der Workshop ist eine Lückenanalyse (gap analysis): Für jeden der Artikel 9 bis 15 (Risikomanagement, Daten-Governance, technische Dokumentation, Aufzeichnungspflichten, Transparenz, menschliche Aufsicht, Genauigkeit und Robustheit) wird festgehalten, welche Datei des Projekts darauf antwortet und ob er abgedeckt, teilweise abgedeckt oder nicht abgedeckt ist. Ehrlich „nicht abgedeckt“ zu schreiben, ist für ein Kurs-Repository die erwartete Antwort. Siehe auch die Governance-Sitzung des Kurses Data Analytics.

  • GET /health sagt dem Betrieb, dass der Service läuft; POST /predict gibt die Wahrscheinlichkeit, die konforme Menge und die Entscheidung zurück; GET /model-info sagt dem Auditor, welche Version, welcher Git-Tag, welcher Daten-Hash und welche Schwelle die Entscheidung hervorgebracht haben.
  • Ein pydantic-Schema ist der Eingabevertrag: ein Typ und ein Wertebereich pro Variable, übernommen aus dem Datenblatt. Ein Alter von 250 wird mit dem Statuscode 422 abgewiesen, bevor das Modell es sieht.
  • Ein eigenschaftsbasierter Test (property-based test) mit Hypothesis prüft eine Gesetzmäßigkeit an Hunderten generierter Kunden, hier, dass ein zusätzlicher Monat Zahlungsrückstand das vorhergesagte Risiko niemals senkt; Boosting ist nicht von sich aus monoton, es sei denn, man verlangt es ausdrücklich.
  • Zwei Tests schließen den häufigsten Fehler beim Deployment aus: Das neu geladene Modell liefert genau dieselben Vorhersagen wie das trainierte, und die API gibt dieselbe Wahrscheinlichkeit zurück wie das direkt aufgerufene Modell.
  • Latenz wird gemessen, nicht behauptet: p50 und p95 über tausend Aufrufe, in der Modellkarte festgehalten, zusammen mit der Maschine und den Bibliotheksversionen.

Zurück zum Inhalt.

Das Wichtigste in Kürze

  1. Ein neuronales Netz ist eine logistische Regression auf Variablen, die seine verborgenen Schichten lernen; der Gradient an der Ausgabe ist einfach p−yp - y.
  2. Backpropagation ist die Kettenregel, von der Ausgabe rückwärts angewandt, wobei jedes Produkt wiederverwendet wird; sie kostet etwa zwei Durchläufe, unabhängig von der Zahl der Gewichte.
  3. Auf mittelgroßen Tabellen gewinnt meist das Boosting; ein Netz tritt in denselben Vergleich ein, mit denselben Folds, denselben Seeds und derselben Champion-Regel.
  4. Drift wird auf den Eingaben sofort gemessen und auf der Leistung erst, wenn die Labels reifen; jeder Indikator braucht eine Schwelle, eine Maßnahme und eine verantwortliche Person.
  5. Split Conformal Prediction liefert für jedes Modell eine Überdeckungsgarantie bei endlicher Stichprobe, marginal über die Kunden und hinfällig, sobald die Daten driften.
  6. Der Wert eines Modells ist eine Kostendifferenz gegenüber einer ausdrücklich genannten Vergleichsbasis, umgerechnet in eine Zahl pro Jahr samt ihrer Empfindlichkeit und überprüft durch einen A/B-Test.
  7. Ein ausgeliefertes Modell ist ein Vertrag: validierte Eingaben, eine nachvollziehbare Version, Tests, dass es dem evaluierten Modell entspricht, und gemessene Latenz.

Glossar

Vorwärtsdurchlauf (forward pass)
Die Berechnung eines Netzes Schicht für Schicht von den Eingaben bis zum Verlust, wobei jeder Zwischenwert für den Rückwärtsdurchlauf aufbewahrt wird.
Fehlerrückführung (Backpropagation)
Die Berechnung aller Gradienten des Verlusts durch Anwendung der Kettenregel von der Ausgabe zurück zu den Eingaben.
Aktivierungsfunktion (activation function)
Die nichtlineare Funktion, die auf die gewichtete Summe eines Neurons angewandt wird: Sigmoid, tanh, ReLU, Softmax.
mehrschichtiges Perzeptron (multilayer perceptron, MLP)
Ein Netz aus vollständig verbundenen Schichten; in scikit-learn MLPClassifier.
frühes Stoppen (early stopping)
Das Training beenden, wenn sich der Verlust auf einem Validierungsdatensatz nicht mehr verbessert, und die besten Gewichte behalten.
Einbettung (Embedding)
Ein gelernter Vektor pro Ausprägung einer kategorialen Variable, der mit den übrigen Gewichten per Backpropagation angepasst wird.
Datendrift (data drift)
Eine Veränderung nach dem Deployment in den Eingaben, in der Rate der Zielvariable oder im Zusammenhang zwischen beiden.
Populationsstabilitätsindex (population stability index, PSI)
Eine Divergenz nach Klassen zwischen einer Referenzverteilung und einer aktuellen Verteilung, gleich der Summe zweier Kullback-Leibler-Divergenzen.
konforme Vorhersage (conformal prediction)
Eine Methode, die jeden Prädiktor in Intervalle oder Mengen mit garantierter Überdeckung unter Austauschbarkeit verwandelt.
Überdeckung (coverage)
Die Wahrscheinlichkeit, dass das Intervall oder die Menge den wahren Wert enthält.
Nichtkonformitätsscore (nonconformity score)
Wie sehr ein Beispiel das Modell überrascht, etwa das absolute Residuum oder eins minus die Wahrscheinlichkeit der wahren Klasse.
Austauschbarkeit (exchangeability)
Die Annahme, dass die Reihenfolge der Beobachtungen keine Rolle spielt; Drift bricht sie.
Lückenanalyse (gap analysis)
Eine Tabelle der Anforderungen der Verordnung gegenüber den Dokumenten, die sie beantworten, mit einem Status für jede Anforderung.
eigenschaftsbasierter Test (property-based test)
Ein Test, der eine Gesetzmäßigkeit an vielen generierten Eingaben prüft statt an einem einzelnen Beispiel.

Die anderen Notizen des Kurses

Eine öffentliche Zusammenfassung pro Foliensatz, in der Reihenfolge des Kurses.

  1. EinführungKI-Winter, Arbeitsmarkt und Methode
  2. WerkzeugeKaggle, GitHub, Python: die Werkzeuge
  3. Sitzung 1Projektrahmen und kleinste Quadrate
  4. Sitzung 2Maximum Likelihood und logistische Regression
  5. Sitzung 3Gradientenabstieg, Ridge und Lasso
  6. Sitzung 4Entscheidungsschwelle und reproduzierbares ML
  7. HausaufgabeML-Projekt abstecken: der Projektsteckbrief
  8. Sitzung 5Kernel, SVM und Entscheidungsbäume
  9. Sitzung 6Random Forests, Boosting, ehrlicher Vergleich
  10. Sitzung 7SHAP, Fairness, PCA und Clustering
  11. HausaufgabeEin einfaches Modell mit vollständiger Methode
  12. Sitzung 8Neuronale Netze, Drift, konforme Vorhersage
  13. HausaufgabeEin ausgeliefertes Machine-Learning-Projekt
  14. Sitzung 9Ein Machine-Learning-Projekt verteidigen
  15. ReferenzProjekt zum Kreditausfallscore
  16. ReferenzAktienrenditen: XGBoost und Sentiment
  17. ReferenzPython-Code für jedes ML-Modell
  18. ReferenzDeep Learning, das Wesentliche
  19. ReferenzML-Projekte mit offenen Daten nach Branche
  20. ReferenzHandbuch für Daten- und KI-Fachleute
  21. ReferenzData Engineering, SRE und Cloud
  22. ReferenzPanorama der Machine-Learning-Modelle

Alle Notizen als Leseliste

Aufmerksamkeit und Transformer, Schritt für Schritt

Über diese Notizen

Vom Dozenten auf Grundlage der Folien verfasst, als öffentliche Zusammenfassung: die Kernideen, die Formeln und ein durchgerechnetes Beispiel. Die Übungen, ihre Lösungen, die Tests und die Bewertung bleiben im Foliensatz, für die Studierenden des Kurses.

Stand: .