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.
Shownotes
1943: mathematische Modellierung von Neuronen durch den Neurophysiologen Warren McCulloch und den Logiker Walter Pitts
Bestandteile: mehrere Eingänge x_1 bis x_n und ein Ausgang y mit Logiksignalen (entweder 0 oder 1)Inferenz-Funktion: y = (∑_i w_i * x_i + b) > 0 mit Gewichten w_i und Bias bdamit Teilung des Raumes der Eingabewerte in zwei Hälften entlang einer Gerade bzw. Hyperebene (Beispiel)Berechnung der Gewichte: Präsentation von Eingabewerten mit bekannten erwarteten Ausgabewerten (Supervised Learning, überwachtes Lernen)bei jeder falschen Inferenz (y erwartet, aber y' erhalten) Update der Gewichte gemäß w_i -> w_i + r * (y - y') * x_i mit Lernrate rLernen des Bias wie ein Gewicht w_0 mit x_0 = 1 für alle TrainingsdatensätzePraxisbeispieldamit jede binäre Unterscheidung lernbar, die durch eine lineare Schwelle ausgedrückt werden kannProblem: verrauschte Daten -> nichtbinäre Ausgaben notwendigProblem: andere Arten binärer Funktionen, z.B. y = x_1 XOR x_2 -> Verkettung mehrerer Neuronen notwendig1957: Verschaltung mehrerer "Neuronen" zu einem Perzeptron
mehrstufige Verkettung von Neuronen erlaubt Lernen komplexerer Funktionen, z.B. erst Erkennung spezifischer Teile und dann in Folgeschritten Zusammensetzung zu einem großen GanzenProblem: Wenn während des Trainings fehlerhafte Ausgaben produziert werden, wo muss man dann Gewichte anpassen?Idee: Fehlerrückführung (Backpropagation); wenn am Ende ein Fehler rauskommt, muss dieser anteilig auf frühere Neuronen zurückattributiert und dort zum Training genutzt werdenhierfür Anwendung der Kettenregel (siehe STP089), z.B. in einem 2-Layer-PerzeptronKettenregel geht nur auf ableitbaren Funktionen, deswegen nicht mehr binäres Ausgabesignal, sondern eine geglättete Stufenfunktion wie die Sigmoidfunktionz.B. Signale y3 der dritten Ebene sind eine Funktion der Signale y2 der zweiten Ebene, und so weiterAbleitung z.B. von y3(y2(y1(x))) ist dy3/dx = dy3/dy2 * dy2/dx; ausgehend vom Fehler Δy3 des Ergebnisses Training der Gewichte w3 und Ermittlung eines Fehlers Δy2 für die nächste EbeneAchtung: 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öglichtRandbemerkung 1: hier beginnt das Meme, dass maschinelles Lernen nur ein Haufen Matrixmultiplikationen ist (vgl. XKCD 1838)Randbemerkung 2: geglättete Stufenfunktionen erlauben eine Variation in der Stärke bzw. Breite der Glättung (Temperatur)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)
diverse miteinander kombinierbare Modelle zur Beurteilung der Wahrscheinlichkeit gegebener Sätze in einer einzelnen Sprache (Sprachmodell) bzw. der Wahrscheinlichkeit, dass zwei Sätze in verschiedenen Sprachen Übersetzungen voneinander sind (Übersetzungsmodell)Kombination von Sprachmodell und Übersetzungsmodell gemäß des Noisy-Channel-Modell:z.B. gegeben einem deutschen Satz D Suche nach dem wahrscheinlichsten englischen Satz E: P(E|D) = P(E) * P(D|E) / P(D) (Satz von Bayes), P(E) gemäß Sprachmodell und P(E|D) gemäß Übersetzungsmodell und P(D) irrelevanter konstanter Faktorstochastische 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 OptionenBsp. eines Sprachmodells: Markow-Kettesukzessiver Aufbau eines Satzes durch Raten des nächsten Wortes (vgl. Autocomplete)Training bestimmt aus einem gegebenen Textkorpus die Wahrscheinlichkeiten von bestimmten Wortsequenzeneinfachster Fall: Bigramm-Modell, z.B. P(Ich bin groß) = P(ɛ, Ich) * P(Ich, bin) * P(bin, groß) * P(groß, ɛ)Erweiterung: Hidden Markov Model mit einer versteckten Zustandsmaschine, die Wortarten versteht; z.B. P(Ich bin groß) = P(ɛ, Pronomen) * P(Pronomen, Ich) * P(Pronomen, Verb) * P(Verb, bin) * P(Verb, Adjektiv) * P(Adjektiv, groß) * P(Adjektiv, ɛ)Abwägung: größerer Lookback erhöht die Kohärenz, führt aber schnell zu OverfittingFun Fact: dazu hat Xyrill eine Abschlussarbeit geschriebenBsp. eines Übersetzungsmodells: IBM alignment models, hier der Einfachheit halber nur Modell 1Training resultiert hauptsächlich in einer Wahrscheinlichkeitstabelle von Wortkorrespondenzpaarenz.B. P(Ich bin groß, I am big) = P(Ich, I) * P(bin, am) * P(groß, big) + (andere verschwindende Beiträge)Problem: versteht nicht grammatikalisch korrekte Wortreihenfolge, z.B. P(Ich bin groß, I am big) = P(Ich bin groß, I big am)Problem: versteht nicht Hilfswörter, die in der anderen Sprache keine Entsprechung habenProbleme mitigierbar durch Kombination mit Sprachmodell wie oben beschriebenErweiterung durch Modell 2 bis 61980er: Expertensysteme, beispielhaft an der Programmiersprache Prolog
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"Prolog: Programmiersprache, die nicht primär auf Zahlen oder Speicherbereichen arbeitet, sondern auf Fakten und Ableitungsregeln (siehe Beispiele im verlinkten Artikel)Einschätzung: Prolog-artige Sprachen sind ein nützliches Paradigma für sehr spezifische Anwendungsfälle, aber die explizite Kodierung von Wissen läuft erfahrungsgemäß schnell in ontologische Probleme