Anmelden

Schlüsseltechnologie· Staffel 1· Folge 90

STP090: Maschinelles Lernen vor der Jahrtausendwende

Donnerstag, 21. Mai 2026 · 1 h 36

MP3

Shownotes

<p>Bevor wir dann wirklich zu dem kommen, was wir heute unter KI verstehen, geht es heut noch mal um die nun nicht mehr ganz so graue Vorzeit. Immerhin beginnen wir jetzt damit, Neuronen zu kitzeln und Liegestütze machen zu lassen. Nebenbei steuert Xyrill noch wertvolle Erziehungstipps bei.</p><h2>Shownotes</h2><ul>
<li>
<p>1943: mathematische Modellierung von Neuronen durch den Neurophysiologen Warren McCulloch und den Logiker Walter Pitts</p>
<ul>
<li>Bestandteile: mehrere Eingänge <code>x_1</code> bis <code>x_n</code> und ein Ausgang <code>y</code> mit Logiksignalen (entweder 0 oder 1)</li>
<li>Inferenz-Funktion: <code>y = (∑_i w_i * x_i + b) > 0</code> mit Gewichten <code>w_i</code> und Bias <code>b</code>
<ul>
<li>damit Teilung des Raumes der Eingabewerte in zwei Hälften entlang einer Gerade bzw. Hyperebene (<a href="commons.wikimedia.org/w/index.php?title=File:P…;)</li>
</ul>
</li>
<li>Berechnung der Gewichte: Präsentation von Eingabewerten mit bekannten erwarteten Ausgabewerten (<em>Supervised Learning</em>, überwachtes Lernen)
<ul>
<li>bei jeder falschen Inferenz (<code>y</code> erwartet, aber <code>y'</code> erhalten) Update der Gewichte gemäß <code>w_i -> w_i + r * (y - y') * x_i</code> mit Lernrate <code>r</code></li>
<li>Lernen des Bias wie ein Gewicht <code>w_0</code> mit <code>x_0 = 1</code> für alle Trainingsdatensätze</li>
<li><a href="playground.tensorflow.org/#activation=tanh&…;
</ul>
</li>
<li>damit jede binäre Unterscheidung lernbar, die durch eine lineare Schwelle ausgedrückt werden kann
<ul>
<li>Problem: verrauschte Daten -> nichtbinäre Ausgaben notwendig</li>
<li>Problem: andere Arten binärer Funktionen, z.B. <code>y = x_1 XOR x_2</code> -> Verkettung mehrerer Neuronen notwendig</li>
</ul>
</li>
</ul>
</li>
<li>
<p>1957: Verschaltung mehrerer "Neuronen" zu einem <a href="de.wikipedia.org/w/index.php?title=Perzeptron&…;
<ul>
<li>mehrstufige Verkettung von Neuronen erlaubt Lernen komplexerer Funktionen, z.B. erst Erkennung spezifischer Teile und dann in Folgeschritten Zusammensetzung zu einem großen Ganzen</li>
<li>Problem: Wenn während des Trainings fehlerhafte Ausgaben produziert werden, wo muss man dann Gewichte anpassen?</li>
<li>Idee: <a href="de.wikipedia.org/w/index.php?title=Backpropaga… (Backpropagation)</a>; wenn am Ende ein Fehler rauskommt, muss dieser anteilig auf frühere Neuronen zurückattributiert und dort zum Training genutzt werden
<ul>
<li>hierfür Anwendung der Kettenregel (siehe STP089), z.B. in einem 2-Layer-Perzeptron</li>
<li>Kettenregel geht nur auf ableitbaren Funktionen, deswegen nicht mehr binäres Ausgabesignal, sondern eine geglättete Stufenfunktion wie die <a href="de.wikipedia.org/w/index.php?title=Sigmoidfunk…;
<li>z.B. Signale <code>y3</code> der dritten Ebene sind eine Funktion der Signale <code>y2</code> der zweiten Ebene, und so weiter</li>
<li>Ableitung z.B. von <code>y3(y2(y1(x)))</code> ist <code>dy3/dx = dy3/dy2 * dy2/dx</code>; ausgehend vom Fehler <code>Δy3</code> des Ergebnisses Training der Gewichte <code>w3</code> und Ermittlung eines Fehlers <code>Δy2</code> für die nächste Ebene</li>
<li>Achtung: das ist eine extreme Verkürzung aus didaktischen Gründen; tatsächlich wird nicht dividiert, sondern das Anwenden des Gradient-Operators auf die Loss-Funktion führt zu einer Vertauschung der Multiplikationsreihenfolge, was partielle Rückwärtsevaluierung ermöglicht</li>
</ul>
</li>
<li>Randbemerkung 1: hier beginnt das Meme, dass maschinelles Lernen nur ein Haufen Matrixmultiplikationen ist (vgl. <a href="xkcd.com/1838/">XKCD 1838</a>)</li>
<li>Randbemerkung 2: geglättete Stufenfunktionen erlauben eine Variation in der Stärke bzw. Breite der Glättung (<strong>Temperatur</strong>)</li>
</ul>
</li>
<li>
<p>1990er-2010er: maschinelle Übersetzung natürlicher Sprache mit statistischen Modellen, die keine neuralen Netzwerke sind (Quelle: Xyrills Vorlesungsnotizen von 2016; passenderweise dasselbe Jahr, indem Google Translate auf neurale Netzwerke umstieg)</p>
<ul>
<li>diverse miteinander kombinierbare Modelle zur Beurteilung der Wahrscheinlichkeit gegebener Sätze in einer einzelnen Sprache (<strong>Sprachmodell</strong>) bzw. der Wahrscheinlichkeit, dass zwei Sätze in verschiedenen Sprachen Übersetzungen voneinander sind (<strong>Übersetzungsmodell</strong>)</li>
<li>Kombination von Sprachmodell und Übersetzungsmodell gemäß des <a href="en.wikipedia.org/w/index.php?title=Noisy_chann…;:
<ul>
<li>z.B. gegeben einem deutschen Satz <code>D</code> Suche nach dem wahrscheinlichsten englischen Satz <code>E</code>: <code>P(E|D) = P(E) * P(D|E) / P(D)</code> (Satz von Bayes), <code>P(E)</code> gemäß Sprachmodell und <code>P(E|D)</code> gemäß Übersetzungsmodell und <code>P(D)</code> irrelevanter konstanter Faktor</li>
<li>stochastische Suche nach E: z.B. Start mit leerem Satz, schrittweise Erweiterung um je ein Wort aus allen möglichen englischen Wörtern, Verwerfen der schlechtestbewerteten Optionen</li>
</ul>
</li>
<li>Bsp. eines Sprachmodells: <a href="de.wikipedia.org/w/index.php?title=Markow-Kett…;
<ul>
<li>sukzessiver Aufbau eines Satzes durch Raten des nächsten Wortes (vgl. Autocomplete)</li>
<li>Training bestimmt aus einem gegebenen Textkorpus die Wahrscheinlichkeiten von bestimmten Wortsequenzen</li>
<li>einfachster Fall: Bigramm-Modell, z.B. <code>P(Ich bin groß) = P(ɛ, Ich) * P(Ich, bin) * P(bin, groß) * P(groß, ɛ)</code></li>
<li>Erweiterung: <a href="de.wikipedia.org/w/index.php?title=Hidden_Mark… Markov Model</a> mit einer versteckten Zustandsmaschine, die Wortarten versteht; z.B. <code>P(Ich bin groß) = P(ɛ, Pronomen) * P(Pronomen, Ich) * P(Pronomen, Verb) * P(Verb, bin) * P(Verb, Adjektiv) * P(Adjektiv, groß) * P(Adjektiv, ɛ)</code></li>
<li>Abwägung: größerer Lookback erhöht die Kohärenz, führt aber schnell zu Overfitting</li>
<li>Fun Fact: dazu hat Xyrill <a href="github.com/majewsky/bachelor-thesis">e… Abschlussarbeit geschrieben</a></li>
</ul>
</li>
<li>Bsp. eines Übersetzungsmodells: <a href="en.wikipedia.org/w/index.php?title=IBM_alignme… alignment models</a>, hier der Einfachheit halber nur Modell 1
<ul>
<li>Training resultiert hauptsächlich in einer Wahrscheinlichkeitstabelle von Wortkorrespondenzpaaren</li>
<li>z.B. <code>P(Ich bin groß, I am big) = P(Ich, I) * P(bin, am) * P(groß, big) + (andere verschwindende Beiträge)</code></li>
<li>Problem: versteht nicht grammatikalisch korrekte Wortreihenfolge, z.B. <code>P(Ich bin groß, I am big) = P(Ich bin groß, I big am)</code></li>
<li>Problem: versteht nicht Hilfswörter, die in der anderen Sprache keine Entsprechung haben</li>
<li>Probleme mitigierbar durch Kombination mit Sprachmodell wie oben beschrieben</li>
<li>Erweiterung durch Modell 2 bis 6</li>
</ul>
</li>
</ul>
</li>
<li>
<p>1980er: <a href="de.wikipedia.org/w/index.php?title=Expertensys…;, beispielhaft an der Programmiersprache <a href="de.wikipedia.org/w/index.php?title=Prolog_(Pro…)&oldid=258454365">Prolog</a></p>
<ul>
<li>Expertensystem: "ein Programm, das Menschen bei der Lösung komplexer Probleme wie ein Experte unterstützen kann, indem es Handlungsempfehlungen aus einer Wissensbasis ableitet", bzw. kürzer "eine logische Entscheidungsmaschine"</li> …

Anmelden oder registrieren

Jetzt

0:00 / 0:00