Answer to Question 1-1
1. Herausforderungen bei der Modellierung der Perzeption von Text:

   1.1. Sprachliche Mehrdeutigkeit: Ein Wort oder Satz kann mehrere Bedeutungen haben, was für ein Modell schwierig zu interpretieren ist. 
   
   Beispiel: Das Wort "Bank" kann eine finanzielle Institution bezeichnen oder eine Sitzgelegenheit im Park.
   
   1.2. Kontextabhängigkeit: Der Kontext, in dem Text auftritt, kann entscheidend für das Verständnis seiner Bedeutung sein. 
   
   Beispiel: "Ich habe das Spiel verloren." Ohne Kontext könnte das bedeuten, dass jemand ein Sportspiel, ein Videospiel oder sogar eine Wette verloren hat. Nur der umgebende Text kann die spezifische Bedeutung klären.





****************************************************************************************
****************************************************************************************




Answer to Question 1-2
a: Die Annahme des N-Gramm-Sprachmodells besteht darin, dass die Wahrscheinlichkeit eines Wortes in einem Satz hauptsächlich von den vorhergehenden N-1 Wörtern abhängt. Bei einem Tri-Gramm-Modell würde also die Wahrscheinlichkeit eines Wortes in erster Linie von den beiden direkt davorstehenden Wörtern beeinflusst werden.

b: Die Wahrscheinlichkeitsgleichung für den Satz "This is the exam of Advanced AI." in einem Tri-Gramm-Sprachmodell wäre:
P(This) * P(is | This) * P(the | This is) * P(exam | is the) * P(of | the exam) * P(Advanced | exam of) * P(AI | of Advanced).





****************************************************************************************
****************************************************************************************




Answer to Question 1-3
a) Um ein BPE-Vokabular mit einer Größe von 15 aus den gegebenen Sätzen zu erstellen, führen wir die folgenden Schritte aus:

1. Zuerst normalisieren wir den Text, indem wir alle Buchstaben zu Kleinbuchstaben konvertieren und am Ende jedes Wortes das Token /w hinzufügen:
   "i/w study/w in/w kit/w. i/w like/w ai/w and/w nlp/w."

2. Dann zählen wir die Häufigkeit aller Bigramme:
   "i/w": 2, "study/w": 1, "in/w": 1, "kit/w": 1, "like/w": 1, "ai/w": 1, "and/w": 1, "nlp/w": 1, "i study": 1, "study in": 1, "in kit": 1, "kit. i": 1, "i like": 1, "like ai": 1, "ai and": 1, "and nlp": 1

3. Als Nächstes fügen wir das häufigste Bigramm als einzelnes Token in unser Vokabular ein. Das häufigste Bigramm ist "i/w" mit einer Häufigkeit von 2.
   BPE-Vokabular: ["i/w"]

4. Wir aktualisieren die Häufigkeiten der Bigramme und wiederholen den Prozess, bis wir 15 Token in unserem Vokabular haben.
   Nehmen wir an, die nächsten häufigsten Bigramme sind "study/w", "in/w", "kit/w", "like/w", "ai/w", "and/w", "nlp/w". Wir fügen sie unserem Vokabular nach und nach hinzu.
   BPE-Vokabular: ["i/w", "study/w", "in/w", "kit/w", "like/w", "ai/w", "and/w", "nlp/w"]

5. Da unsere Sätze begrenzt sind und keine weiteren eindeutigen häufigen Bigramme existieren, füllen wir den Rest des Vokabulars mit den verbleibenden einzelnen Bigrammen auf.
   BPE-Vokabular: ["i/w", "study/w", "in/w", "kit/w", "like/w", "ai/w", "and/w", "nlp/w", "i study", "study in", "in kit", "kit. i", "i like", "like ai", "ai and"]

6. Wir haben nun ein BPE-Vokabular mit 15 Einträgen erstellt.

b) Verwendung des generierten BPE-Vokabulars, um den Satz "I like KIT." zu tokenisieren:

1. Normalisieren des Satzes: "i/w like/w kit/w."

2. Tokenisieren des Satzes mit dem BPE-Vokabular:
   - "i/w": ist im Vokabular vorhanden, also verwenden wir es als Token.
   - "like/w": ist ebenfalls im Vokabular vorhanden, also verwenden wir es als Token.
   - "kit/w": ist im Vokabular vorhanden, also verwenden wir auch dies als Token.

3. Der tokenisierte Satz lautet: "i/w like/w kit/w."





****************************************************************************************
****************************************************************************************




Answer to Question 1-4
a: Die BILOU-Kennzeichnungssequenz für den gegebenen Satz wäre:
- "When" -> O (keine Entität)
- "I" -> O
- "study" -> O
- "at" -> O
- "Karlsruhe" -> B-University
- "Institute" -> I-University
- "of" -> I-University
- "Technology," -> L-University
- "my" -> O
- "favorite" -> O
- "course" -> O
- "was" -> O
- "Advanced" -> B-Course
- "Artificial" -> I-Course
- "Intelligence" -> L-Course
- "organized" -> O
- "by" -> O
- "ISL," -> U-Lab
- "AI4LT," -> U-Lab
- und "H2T" -> U-Lab
- "labs." -> O

b: Es gibt insgesamt sieben verschiedene Klassen für die Ausgabe des Sequenzkennzeichnungsmodells:
- O (keine Entität)
- B-University
- I-University
- L-University
- B-Course
- I-Course
- L-Course
- U-Lab





****************************************************************************************
****************************************************************************************




Answer to Question 2-1
a: Um ein Trainingsbeispiel für das CBOW-Modell aus dem gegebenen Satz zu generieren, wählen wir ein Zielwort und verwenden die Wörter in seinem Kontext als Eingabe. Die Fenstergröße gibt an, wie viele Wörter links und rechts vom Zielwort betrachtet werden sollen. Bei einer Fenstergröße von 2 würde ein Beispiel für das Wort "smarter" wie folgt aussehen: 
Eingabe (Kontextwörter): ["Human", "is", "than", "large"]
Ausgabe (Zielwort): "smarter"

Für das Skip-Gram-Modell ist es umgekehrt; hier wird das Zielwort als Eingabe verwendet, um die Kontextwörter vorherzusagen. Ein Beispiel für das Wort "smarter" mit derselben Fenstergröße wäre:
Eingabe (Zielwort): "smarter"
Ausgaben (Kontextwörter): ["Human", "is", "than", "large"]

b: Eine große Herausforderung beim Skip-Gram-Modell ist der enorme Rechenaufwand, da für jedes Eingabewort mehrere Kontextwörter vorhergesagt werden müssen. Das bedeutet, dass für ein einzelnes Eingabewort mehrere Ausgabewörter produziert werden, was zu einem aufblasen des Trainingsdatensatzes führen kann.

Eine mögliche Lösung für diese Herausforderung ist die Anwendung von Techniken wie "Negative Sampling" oder "Hierarchical Softmax", welche die Effizienz des Modells verbessern, indem sie den Trainingsprozess vereinfachen. Beim Negative Sampling wird statt aller Wörter des Wortschatzes nur eine kleine Auswahl von "negativen" Wörtern (d.h. Wörter, die nicht im Kontext erscheinen) aktualisiert. Im Falle unseres Satzes könnte ein mögliches Trainingsexempel mit dem Zielwort "smarter" und einem negativem Wort "model" wie folgt aussehen:
Eingabe (Zielwort): "smarter"
Ausgabe (positive Kontextwörter): ["Human", "is", "than", "large"]
Ausgabe (negatives Kontextwort): "model"





****************************************************************************************
****************************************************************************************




Answer to Question 2-2
a: Das Hauptproblem dieses Vorschlags liegt darin, dass der Encoder in einem Transformer-Modell eine entscheidende Rolle spielt, indem er die Eingabesequenz verarbeitet und kontextreiche Repräsentationen für jedes Wort oder Token erstellt. Diese kontextreichen Darstellungen sind wichtig, da sie die Beziehung zwischen den Wörtern in einem Satz unter Berücksichtigung der Satzstruktur und der Wortstellung verstehen. Worteinbettungen alleine, auch wenn sie eine gewisse Bedeutung der Wörter erfassen, sind nicht ausreichend, um die komplexen Beziehungen zwischen den Wörtern in einem Satz für die Zwecke des maschinellen Übersetzens zu modellieren. Die direkte Anwendung von Attention auf die Worteinbettungen ohne vorherige Verarbeitung durch den Encoder könnte zu einer unzureichenden oder fehlerhaften Übersetzung führen, da wichtige informationelle Kontexte fehlen würden.

b: Ein Beispiel für zwei Sätze könnte sein:
1. "Bank" im Sinne von "Geldinstitut" und
2. "Bank" im Sinne von "Sitzgelegenheit".
Ein Modell, das nur auf Worteinbettungen basiert, könnte Schwierigkeiten haben, den Kontext zu verstehen, in dem das Wort "Bank" verwendet wird. Ohne die kontextreichen Darstellungen, die der Encoder normalerweise bereitstellt, könnte das Modell das Wort in einem der Sätze definitiv falsch übersetzen, also zum Beispiel den Satz "Ich gehe zur Bank, um Geld abzuheben" als "Ich gehe zur Sitzbank, um Geld abzuheben" übersetzen.





****************************************************************************************
****************************************************************************************




Answer to Question 2-3
a: Die Trainingsstrategie, die im wav2vec 2.0 Modell implementiert wird, um kontextbezogene Darstellungen zu fördern, ist das sogenannte "Contrastive Learning" (kontrastives Lernen). Bei dieser Strategie werden positive und negative Samples generiert. Positive Samples sind jene, die aus der gleichen Eingabesequenz stammen, während negative Samples von anderen Sequenzen kommen. Das Modell wird trainiert, um die positiven von den negativen Samples zu unterscheiden.

Dies geschieht, indem der kontrastive Fehler (contrastive loss) minimiert wird. Der Fehler misst die Ähnlichkeit zwischen den Kontextrepräsentationen C, die vom Kontext-Encoder produziert werden, und den quantisierten Repräsentationen Q, die vom Quantisierungsmodul produziert werden. Positive Beispiele sollen nahe beieinander liegen (ähnlich), während negative Beispiele weiter voneinander entfernt sein sollen (unähnlich). Durch das Minimieren dieses Fehlers während des Pre-Trainings lernt das Modell, kontextabhängige und aussagekräftige Repräsentationen der Daten zu erzeugen.

b: Neben dem kontrastiven Fehler wird während des Vortrainings auch eine Verlustfunktion für die Diversität (diversity loss) verwendet. Diese Verlustfunktion ist wichtig, da sie dabei hilft, sicherzustellen, dass das Quantisierungsmodul eine vielfältige Auswahl an Prototypen für die quantisierten Repräsentationen produziert. Ohne die Diversitätsverlustfunktion könnten sich die Prototypen ähneln, was bedeutet, dass das Modell weniger leistungsfähig in der Erzeugung von vielfältigen Repräsentationen wäre. Dies könnte dazu führen, dass das Modell weniger robust gegenüber verschiedenen Eingabedaten ist. Die Diversitätsverlustfunktion trägt also dazu bei, dass das Quantisierungsmodul einen reichhaltigen Satz von latenten Repräsentationen erlernt, der besser in der Lage ist, die Komplexität der Eingabedaten abzubilden.





****************************************************************************************
****************************************************************************************




Answer to Question 3-1
Ich würde meinem Freund zustimmen, dass die Verwendung eines bidirektionalen Modells für den Decoder eine gute Wahl sein könnte. Bidirektionale Modelle, wie Bidirectional Encoder Representations from Transformers (BERT) oder das Konzept der Bidirektionalen Rekurrenten Neuronalen Netzwerke (BRNN), können Kontextinformationen aus beiden Richtungen in der Sequenz - vorherigen und folgenden Text - berücksichtigen, was für die Textgenerierung sehr nützlich ist. Dies ermöglicht es dem Modell, eine reichhaltigere und konsistentere Textbeschreibung zu generieren, da es sowohl von links nach rechts (Vorwärtspass) als auch von rechts nach links (Rückwärtspass) Informationen integrieren kann. 

Der Kontext aus beiden Richtungen kann dabei helfen, die Bedeutungen von Wörtern im Satz besser zu interpretieren und somit genauere und relevantere Beschreibungen zu generieren. Dies ist besonders wichtig in der Bildbeschreibung (Image Captioning), wo der Kontext der gesamten Szene verstanden werden muss.

Ein unidirektionales Modell würde jeweils nur Informationen aus einer Richtung verarbeiten können, was bei der Textgenerierung zu weniger informierten und eventuell weniger relevanten oder kohärenten Beschreibungen führen könnte. Daher wäre ein bidirektionales Modell vorzuziehen.





****************************************************************************************
****************************************************************************************




Answer to Question 3-2
Eine Möglichkeit, das Problem mit Wörtern außerhalb des Vokabulars (Out-Of-Vocabulary, OOV) zu behandeln, besteht darin, ein Fallback-Verfahren wie die Verwendung von „Unknown“-Tokens (z.B. `<UNK>`) einzuführen. Jedes Mal, wenn das Modell auf ein Wort stößt, das es nicht kennt, wird dieses Wort durch ein `<UNK>`-Token ersetzt. Auf diese Weise kann der Encoder-Decoder-Prozess fortgesetzt werden, auch wenn nicht alle Wörter bekannt sind.

Ein potenzielles Problem bei diesem Ansatz ist, dass wichtige Informationen verloren gehen können, wenn zu viele Wörter durch `<UNK>` ersetzt werden. Dies kann vor allem der Fall sein, wenn die unbekannten Wörter Schlüsselbegriffe in einem Satz sind, die für das Verständnis des gesamten Satzes entscheidend sind. Das könnte die Qualität der Übersetzung deutlich verschlechtern und zu Missverständnissen oder ungenauer Ausgabe führen.





****************************************************************************************
****************************************************************************************




Answer to Question 3-3
a: Multi-Head im Kontext von Self-Attention bedeutet, dass der Self-Attention-Mechanismus mehrmals parallel angewendet wird, wobei jeder "Kopf" seine eigenen Gewichtsmatrizen für die Abfragen (Queries), Schlüssel (Keys) und Werte (Values) hat. Das Modell lernt dabei, auf unterschiedliche Aspekte der Informationen zu achten, was zu einer umfassenderen Analyse der Sequenz führen kann. Jeder Kopf kann nämlich unterschiedliche Abhängigkeiten in den Daten erfassen und somit eine reichhaltigere interne Repräsentation erzeugen. Dies ist besonders wichtig, da komplexe Daten oft mehr als nur eine Art von Beziehung zwischen verschiedenen Teilen der Sequenz aufweisen.

b: In einem Decoder während des trainings wird eine Technik namens "Masking" verwendet, um sicherzustellen, dass die Vorhersage für Position i keine Informationen von zukünftigen Positionen j (wo j > i) verwendet. Folglich würden die maskierten Gewichte in der oberen rechten Hälfte der Matrix liegen, da jedes Element nur Informationen von sich selbst und den vorherigen Elementen in der Sequenz erhalten sollte.

Um die maskierten Gewichte auf der Tabelle zu kennzeichnen, würde ich "X" in den Zellen mit folgenden Koordinaten setzen:

- (BoS, C), (BoS, D)
- (A,    C), (A, D)
- (B,    D)

Dies stellt sicher, dass zu jeder Zeit während des Trainings der Decoder für die Vorhersage eines Elements nur Informationen aus der aktuellen und den vorangegangenen Positionen verwendet und nicht in die Zukunft "blickt".





****************************************************************************************
****************************************************************************************




Answer to Question 3-4
a: Die Konfusionsmatrix ist ein hilfreiches Tool, um die Leistung eines Klassifizierungsmodells zu bewerten. Die vier Ergebnisse der Konfusionsmatrix lassen sich wie folgt definieren:

- True Positive (TP): Die Anzahl der korrekt als positiv klassifizierten Fälle.
- False Positive (FP): Die Anzahl der fälschlicherweise als positiv klassifizierten Fälle.
- True Negative (TN): Die Anzahl der korrekt als negativ klassifizierten Fälle.
- False Negative (FN): Die Anzahl der fälschlicherweise als negativ klassifizierten Fälle.

Diese Werte würde man in die vier Felder der Konfusionsmatrix eintragen. Im oberen linken Feld steht TP, im oberen rechten Feld FP, im unteren linken Feld FN und im unteren rechten Feld TN.

b: Präzision (Precision) und Recall (auch als Sensitivität bekannt) sind zwei Metriken, die aus der Konfusionsmatrix berechnet werden können. Die Gleichungen für diese Metriken lauten:

- Präzision = TP / (TP + FP)
- Recall = TP / (TP + FN)

c: Beispiele für Verzerrungen bei der ausschließlichen Verwendung von Präzision oder Recall:

- Wenn man sich nur auf Präzision konzentriert, könnte ein Modell dazu neigen, nur dann eine positive Vorhersage zu treffen, wenn es sehr sicher ist. Dies könnte dazu führen, dass viele tatsächlich positive Fälle als negativ klassifiziert werden, weil das Modell zu vorsichtig ist. Das Ergebnis wäre eine sehr hohe Präzision, aber ein sehr niedriger Recall, da viele echte positive Fälle verpasst werden.
- Wenn man sich nur auf Recall konzentriert, könnte ein Modell dazu neigen, viele Fälle als positiv zu klassifizieren, um sicherzustellen, dass alle tatsächlich positiven Fälle erkannt werden. Dies würde allerdings dazu führen, dass viele negative Fälle fälschlicherweise als positiv eingestuft werden. In diesem Fall wäre der Recall hoch, aber die Präzision wäre niedrig, da viele falsch positive Ergebnisse entstehen.





****************************************************************************************
****************************************************************************************




Answer to Question 4-1
Um die Faltung \( f(t) = (g * h)(t) \) der beiden kontinuierlichen Funktionen \( g(t) \) und \( h(t) \) grafisch zu bestimmen, folgen Sie diesen Schritten:

1. Spiegeln Sie die Funktion \( h(t) \) an der Ordinate, um \( h(-t) \) zu erhalten.
2. Verschieben Sie \( h(-t) \) um \( t \) nach rechts, um \( h(t-\tau) \) zu erhalten, wobei \( \tau \) eine Variable ist, die die Verschiebung steuert.
3. Berechnen Sie zu jedem Zeitpunkt \( t \) das Produkt \( g(\tau)h(t-\tau) \) und integrieren Sie dieses Produkt über den Bereich von \( \tau \), in dem die Funktionen überlappen.

Da ich keine Möglichkeit habe, Zeichnungen direkt anzufertigen oder grafische Darstellungen zu manipulieren, beschreibe ich im Folgenden, wie ich vorgehen würde:

1. Für \( t < 1 \), gibt es keine Überlappung zwischen \( g(t) \) und \( h(t) \), daher ist \( f(t) = 0 \).

2. Für \( 1 \leq t < 2 \), überlappt der ansteigende Teil von \( g(t) \) mit dem ersten Abschnitt von \( h(t) \). Die Faltung würde beginnen und bis \( t = 2 \) anwachsen.

3. Zwischen \( 2 \leq t < 3 \) würde der Überlapp der Spitze von \( g(t) \) mit dem ersten Plateau von \( h(t) \) konstant bleiben.

4. Für \( 3 \leq t < 4 \), beginnt der abfallende Teil von \( g(t) \) zu überlappen mit dem zweiten erhöhten Teil von \( h(t) \). Die Faltung nimmt zu, aber aufgrund des abfallenden Teils von \( g(t) \), nicht so stark.

5. Zwischen \( 4 \leq t < 5 \), würde die Überlappung nur den abfallenden Teil von \( g(t) \) und das zweite Plateau von \( h(t) \) betreffen. Das Faltungsergebnis nimmt jetzt ab.

6. Schließlich, für \( t \geq 5 \), gibt es keine Überlappung mehr zwischen \( g(t) \) und \( h(t) \), und damit ist \( f(t) = 0 \).

Um relevante Punkte zu markieren, würde ich die Maxima, Minima und Schnittpunkte der Faltungskurve mit der Zeitachse kennzeichnen. All diese Schritte hängen von den spezifischen mathematischen Ausdrücken für \( g(t) \) und \( h(t) \) ab und wie genau sie sich überlagern. Da hier die spezifischen Funktionen nicht gegeben sind, würde ich diese Schritte grafisch auf der Grundlage der gegebenen Diagramme durchführen.





****************************************************************************************
****************************************************************************************




Answer to Question 4-2
Zur Bestimmung der diskreten Faltung \( u*v \) der beiden Funktionen \( u[t] \) und \( v[t] \), gehe ich wie folgt vor:

Die diskrete Faltung zweier Funktionen \( u[t] \) und \( v[t] \) ist definiert als:
\[ (u*v)[n] = \sum_{k=-\infty}^{\infty} u[k] \cdot v[n - k] \]
wobei \( n \) die diskreten Zeitpunkte darstellt.

Für die gegebenen Funktionen \( u[t] \) und \( v[t] \), die nur für bestimmte Werte von \( t \) definiert sind, sieht die Faltung wie folgt aus:

1. Zuerst invertiere ich die Funktion \( v[t] \), um \( v[-t] \) zu erhalten:
   \( v[-t] \) = 1 wenn \( t=-1 \), 2 wenn \( t=-2 \), 3 wenn \( t=-4 \), 0 sonst.

2. Dann verschiebe ich \( v[-t] \) für jeden Wert von \( n \), um \( v[n - t] \) zu bekommen, und multipliziere \( u[t] \) mit der entsprechenden verschobenen Version von \( v[t] \).

3. Zu guter Letzt summiere ich die Produkte für jeden Wert von \( n \), um \( (u*v)[n] \) zu bekommen.

Als mathematische Operation führe ich dies für die relevanten \( n \) und \( t \) durch, da wir wissen, dass sowohl \( u[t] \) als auch \( v[t] \) nur für bestimmte \( t \) definiert sind. Ich ignoriere also alle \( t \), für die \( u[t] = 0 \) und \( v[t] = 0 \) gilt, um die Berechnung zu vereinfachen.

Angenommen, \( n \) kann Werte von 0 bis 7 annehmen (da die längste Zeitverschiebung für \( v[t] \) 4 beträgt und \( u[t] \) maximal Wert bis \( t=4 \) hat), berechne ich nun jede Summe:
- Für \( n=0 \): \( (u*v)[0] = u[0]*v[0] + u[1]*v[-1] + ... + u[4]*v[-4] \) (nur Terme mit \( v[t] \neq 0 \) sind relevant).
- Für \( n=1 \): \( (u*v)[1] = u[0]*v[1] + u[1]*v[0] + ... + u[4]*v[-3] \)
...
- Dies wird für alle Werte von \( n \) wiederholt, für die \( (u*v)[n] \) nicht trivialerweise 0 ist.

Zum Beispiel (hier nur einige Werte von \( n \)):
- \( (u*v)[1] = u[0] \cdot v[1] + u[1] \cdot v[0] = 1 \cdot 1 + 3 \cdot 0 = 1 \)
- \( (u*v)[2] = u[0] \cdot v[2] + u[1] \cdot v[1] + u[2] \cdot v[0] = 1 \cdot 2 + 3 \cdot 1 + 0.5 \cdot 0 = 5 \)
- usw.

So wird die Faltung \( u*v \) für alle Werte von \( n \), für die die Summe nicht null ist, berechnet und ein Output für die diskrete Faltung erhalten.





****************************************************************************************
****************************************************************************************




Answer to Question 4-3 
a: Das Sampling-Theorem, auch als Nyquist-Shannon-Abtasttheorem bekannt, besagt, dass ein kontinuierliches Signal, um es digital korrekt zu repräsentieren, mit einer Abtastrate abgetastet werden muss, die mindestens doppelt so hoch ist wie seine höchste Frequenzkomponente. Dies bedeutet, dass die Abtastrate größer sein muss als das Zweifache der Bandbreite des Signals, um Aliasing zu vermeiden und das Signal später fehlerfrei rekonstruieren zu können.

b: Das Phänomen, das auftritt, wenn das Sampling-Theorem nicht eingehalten wird, ist das Aliasing. Aliasing beschreibt den Effekt, wenn höhere Frequenzanteile des Signals als niedrigere Frequenzen interpretiert werden, weil sie nicht ausreichend abgetastet wurden. Das führt zu einer Fehlrepräsentation und Verfälschung des originalen Signals.

c: Stellen Sie sich eine Sinuswelle vor, die sich über die Zeit t ausdehnt und eine hohe Frequenz aufweist. Wenn diese Sinuswelle mit einer Abtastrate abgetastet wird, die unterhalb ihrer doppelten Frequenz liegt, würden die Abtastpunkte nicht ausreichen, um die originalen Oszillationen korrekt darzustellen. In der skizzierten Darstellung würden wir eine Reihe von Punkten sehen, die, wenn sie verbunden werden, eine falsche, niedrigere Frequenz oder komplett andere Wellenform als die ursprüngliche erzeugen könnten. Die resultierende "abgetastete" Wellenform in der Skizze könnte flacher und verzerrt aussehen, mit Spitzen, die nicht mit denen der ursprünglichen Welle übereinstimmen.





****************************************************************************************
****************************************************************************************




Answer to Question 4-4
Um die Wortfehlerrate (WER) zu berechnen, müssen wir bestimmen, wie viele Operationen (Einfügungen, Löschungen und Substitutionen) erforderlich sind, um die Hypothese (HYP) in die Referenz (REF) zu überführen. Anschließend können wir ACC als 1 - WER bestimmen.

1. Zählen Sie die Wortanzahl der Referenz (REF): "I need to book a flight to New York for next week" hat 10 Wörter.

2. Vergleichen Sie REF mit HYP und identifizieren Sie die Fehler:
   - "book" wird zu "cook" (Substitution)
   - "a" wird zu "light" (Substitution)
   - "flight" wird zu "in" (Substitution)
   - "to" wurde entfernt (Löschung)
   - "New York" wird zu "Newark" (Substitution - man könnte argumentieren, dass "New York" durch "New" und "ark" ersetzt wurde, aber das würde eine zusätzliche unerwünschte Einfügung hinzufügen, deshalb zählen wir es als eine einzige Substitution)
   - "for" und "next" sind korrekt
   - "week" wird zu "weeks" (Substitution)

Insgesamt haben wir 6 Fehler.

3. Berechnen Sie die WER: WER = (Anzahl der Fehler) / (Anzahl der Wörter in REF) = 6 / 10 = 0.6

4. Berechnen Sie die Erkennungsgenauigkeit ACC: ACC = 1 - WER = 1 - 0.6 = 0.4

5. Umrechnung in Prozent und Runden: ACC in Prozent = 0.4 * 100 = 40%

Die Erkennungsgenauigkeit (ACC) für das gegebene Referenz-Hypothese-Paar beträgt gerundet 40%.





****************************************************************************************
****************************************************************************************




Answer to Question 5-1
Um jede Objektinstanz in einer Szene für einen Roboter, der das Einschenken von Wasser durch menschliche Demonstrationen lernen soll, zu erkennen, kann eine Methode der semantischen Segmentierung verwendet werden.

Semantische Segmentierung ist ein Ansatz in der Computer Vision, der darauf abzielt, jedes Pixel eines Bildes einer bestimmten Klasse zuzuordnen. Dies hilft dabei, die Form und Position verschiedener Objekte in einer Szene zu verstehen. Für die gegebene Aufgabe könnte folgendermaßen vorgegangen werden:

1. Tiefeninformationen (D in RGB-D): Die Tiefeninformationen aus den RGB-D-Videos können genutzt werden, um die Szene in verschiedene Ebenen zu teilen und die räumliche Position der Objekte zu verstehen. Das Wasser, der Becher und die Hand des Menschen können so zum Beispiel anhand ihrer Tiefe im Raum unterschieden werden.

2. Objekterkennung: Mithilfe von maschinellem Lernen und einer geeigneten Datenbank für Trainingsbeispiele kann der Roboter dazu trainiert werden, Objekte wie Becher und Flaschen in den RGB-Bildern zu erkennen.

3. Pixelweise Klassifizierung: Nachdem Objekte erkannt wurden, klassifiziert die Segmentierungsmaschine jedes Pixel des Bildes basierend darauf, zu welchem Objekt es wahrscheinlich gehört. Dies kann durch neuronale Netze geschehen, wie Fully Convolutional Networks (FCN) oder Region-basierte Convolutional Neural Networks (R-CNN).

4. Instance-Segmentation: Um nicht nur die Art der Objekte, sondern jede Instanz zu erkennen, kann auf Techniken wie Mask R-CNN zurückgegriffen werden, die eine Maske für jedes erkannte Objekt in der Szene erstellen und somit einzelne Instanzen identifizieren können.

Durch die Kombination dieser Techniken kann der Roboter lernen, relevante Objekte zu identifizieren und zu lokalisieren, was essentiell ist, um die Aktion des Wasser Einschenkens aus den Demonstrationen zu lernen und schließlich autonom auszuführen.





****************************************************************************************
****************************************************************************************




Answer to Question 5-2
Der Störungskraftterm (perturbation force term) wird in der DMP-Formulierung benötigt, um die Robustheit und Anpassungsfähigkeit der gelernten Bewegung zu verbessern. Der Roboter kann auf unerwartete Veränderungen oder Störungen in der Umgebung reagieren, indem er den Störungskraftterm verwendet, um seine Bewegung entsprechend anzupassen. So kann der Roboter beispielsweise auf das versehentliche Verschieben des Wasserglases oder auf Veränderungen im Gewicht des Glases reagieren, indem er seine Bewegung korrigiert, um das Wasser erfolgreich einzuschenken. Dies ist wichtig für die Realisierung von präzisen und zuverlässigen Aktionen in einer realen und dynamischen Umgebung.





****************************************************************************************
****************************************************************************************




Answer to Question 5-3
Die Gleichung der lokal gewichteten Regression (LWR) mit radialen Basisfunktionen (RBF) zur Approximation des Störungskraftterms kann folgendermaßen ausgedrückt werden:

\[ f(x) = \sum_{i=1}^{N} w_i(x) \cdot \phi_i(x) \cdot \theta_i \]

wobei:

- \( f(x) \) die approximierte Funktion ist, die den Störungskraftterm darstellt.
- \( x \) der Eingabevektor ist, z.B. der Zustand oder die Position des Roboters oder des Objekts.
- \( N \) die Anzahl der Trainingsdatenpunkte oder Zentren der radialen Basisfunktionen angibt.
- \( w_i(x) \) die Gewichtungsfunktion für den \( i \)-ten Datenpunkt oder RBF-Zentrum ist, typischerweise definiert als \( w_i(x) = \exp(-\gamma_i \| x - c_i \|^2) \), wobei \( c_i \) das Zentrum und \( \gamma_i \) die Breite der \( i \)-ten radialen Basisfunktion sind.
- \( \phi_i(x) \) die Radiale Basisfunktion um den Punkt \( c_i \) ist, oft definiert als \( \phi_i(x) = \exp(-\| x - c_i \|^2 / (2 \sigma_i^2)) \), wobei \( \sigma_i \) der Skalierungsfaktor oder die Standardabweichung der \( i \)-ten RBF ist.
- \( \theta_i \) der Gewichtsparameter oder Koeffizient für die \( i \)-te Radiale Basisfunktion ist, der während des Lernprozesses geschätzt wird.

Zusammengefasst ist \( f(x) \) eine Summe über alle N Radiale Basisfunktionen \( \phi_i(x) \), gewichtet durch ihre jeweiligen Gewichte \( w_i(x) \) und gewichtet durch die lernbaren Parameter \( \theta_i \). Die Wahl der Zentren \( c_i \), Gewichte \( \gamma_i \) und \( \sigma_i \), und die Anzahl der RBFs \( N \) sind entscheidend für die Leistung der LWR und müssen sorgfältig eingestellt werden.





****************************************************************************************
****************************************************************************************




Answer to Question 5-4
Ja, ein Dynamical Movement Primitive (DMP) kann aus fünf menschlichen Demonstrationen für eine bestimmte Aktion wie Wasser Einschenken gelernt werden. DMPs sind ein Ansatz im Bereich des maschinellen Lernens und der Robotik, der es ermöglicht, komplexe Bewegungen durch die Kombination einfacher Bausteine oder "Primitive" zu modellieren. Sie funktionieren gut zum Imitieren von Bewegungen, da sie sowohl stabile als auch flexible Repräsentationen für Bewegungsabläufe bieten.

Fünf Demonstrationen bieten eine ausreichende Menge an Daten, um die Variabilität der Aktion und die wesentlichen Merkmale der Bewegung einzufangen. DMPs nutzen eine Kombination aus einem Attraktor-System und nichtlinearen Differentialgleichungen, um das Ziel der Bewegung und die Trajektorie zu definieren. Durch Anpassen der Parameter des DMP-Modells können die wesentlichen Merkmale der beobachteten Bewegungen extrahiert und nachgebildet werden.

Außerdem können mit Techniken wie dem Imitationslernen oder der Bewegungsentkopplung aus den Demonstrationen die Hauptmerkmale der Bewegung herausgezogen und zur Anpassung der DMPs verwendet werden. Da DMPs in der Lage sind, mit Störungen umzugehen und die Bewegung an unterschiedliche Situationen anzupassen, können sie effektiv aus einer begrenzten Anzahl von Demonstrationen lernen. 

Zusammenfassend lässt sich sagen, dass ein DMP durchaus aus nur fünf Demonstrationen für eine spezielle Aktion wie das Einschenken von Wasser gelernt werden kann, indem die kritischen Charakteristika dieser Aktion identifiziert und modelliert werden.





****************************************************************************************
****************************************************************************************




Answer to Question 5-5
Ich würde ein dynamisches Bewegungsprimitiv (Dynamic Movement Primitive, DMP) wählen, um die demonstrierte Aktion zu modellieren. DMPs sind eine Methode zur Darstellung und Generierung von Bewegungen in Robotern, die es ermöglicht, glatte Trajektorien durch das Erlernen von verschiedenen Demonstrationsbewegungen zu generieren und anzupassen. Sie sind besonders nützlich für Aufgaben wie das Einschenken von Wasser, da sie Faktoren wie Hindernisse und Zwischenpunkte berücksichtigen können.

Besonders relevant für die Aufgabe mit dem Hindernis und dem Zwischenpunkt ist die Fähigkeit von DMPs, eine gelernte Trajektorie an neue Situationen anzupassen, ohne dass die zugrunde liegende Dynamik der Aufgabe neu gelernt werden muss. Ein DMP besteht aus zwei Teilen: einem transformativen System, das die gewünschte Trajektorie generiert, und einem kanonischen System, das als Zeitgeber fungiert und das transformativen System steuert.

Durch die Verwendung eines DMPs kann die Trajektorie des Roboters so modifiziert werden, dass sie zunächst auf den Zwischenpunkt zusteuert und anschließend das Ziel erreicht, während das Einschenken des Wassers weiterhin auf glatte und natürliche Weise erfolgt. Das Bewegungsprimitiv kann so eingestellt werden, dass das Hindernis umgangen wird, indem der Pfad des Roboters über den Zwischenpunkt geleitet wird, was eine sichere und effektive Ausführung der Aufgabe ermöglicht.

Außerdem sind DMPs in der Lage, mit Unsicherheiten und Änderungen in der Umgebung umzugehen, was sie ideal für Aufgaben in der realen Welt macht, wo Variabilität und unerwartete Ereignisse häufig auftreten.





****************************************************************************************
****************************************************************************************




Answer to Question 5-6
Symbolische Architekturen basieren auf der Annahme, dass mentale Prozesse durch die Manipulation von Symbolen beschrieben werden können, ähnlich wie bei der Verarbeitung in einem Computer. In diesen Modellen wird Wissen explizit in Form von Symbolen und Regeln repräsentiert, die angewendet werden, um Schlussfolgerungen zu ziehen oder Probleme zu lösen.

Emergente Architekturen hingegen gehen davon aus, dass kognitive Prozesse aus der Interaktion von vielen einfachen Einheiten entstehen, die nicht notwendigerweise symbolisch repräsentiert sind. Diese Einheiten können beispielsweise Neuronen in einem neuronalen Netzwerk sein. In emergenten Modellen resultiert Kognition aus den Mustern, die aus dieser Interaktion entstehen, ohne dass explizite Symbole manipuliert werden müssen.

Hybride Architekturen versuchen, Elemente beider Ansätze zu kombinieren, indem sie sowohl symbolische als auch emergente Komponenten verwenden. In einem hybriden System können bestimmte Prozesse durch explizite Symbole und Regeln modelliert werden, während andere Prozesse durch dynamische Interaktionen zwischen nicht-symbolischen Einheiten entstehen. Dadurch versuchen hybride Architekturen, die Vorteile beider Ansätze zu nutzen und eine umfassendere Darstellung von Kognition zu bieten.





****************************************************************************************
****************************************************************************************




Answer to Question 5-7
a) Der durch $\alpha_i(t)$ gegebene Vergessen-Mechanismus ist ein Mechanismus mit zeitbasiertem Verfall. Dies liegt daran, dass der Mechanismus die Aktivierung eines Datums in Abhängigkeit von der Zeit t und der Grundaktivierung $\beta_i$ modelliert, wobei die Zerfallskomponente durch eine Normalverteilungsfunktion $\mathcal{N}(\mu  = j, \sigma^2 = d)(t)$ dargestellt wird, die die Abnahme der Aktivierung über die Zeit wiedergibt.

Der Parameter $\beta_i$ repräsentiert die Grundaktivierung des Datums i, also seine Bedeutung oder Wichtigkeit. Ein höherer Wert für $\beta_i$ bedeutet, dass das Datum i eine höhere Ausgangsaktivierung hat, wodurch das Vergessen langsamer passiert.

Der Parameter $d$ steht für die Varianz der Normalverteilung und damit für die Rate des Aktivierungsverlustes über die Zeit – je größer $d$ ist, desto langsamer fällt die Aktivierung ab. Dieser Parameter beeinflusst also die Steilheit des Verfallsprozesses.

b) Bei $t=3$ können wir die Aktivierungen $\alpha_{i_1}$, $\alpha_{i_2}$ und $\alpha_{i_3}$ unter Verwendung der Normalverteilung $\mathcal{N}$ und unter der Annahme, dass $\beta_{i_1} = \beta_{i_2} = \beta_{i_3}$ sind, wie folgt berechnen:

- $\alpha_{i_1}(3) = \beta_{i_1} \cdot (r_{i_1,1} \cdot \mathcal{N}(\mu  = 1,\sigma^2 = d)(3) + r_{i_1,3} \cdot \mathcal{N}(\mu  = 3,\sigma^2 = d)(3))$
Da $i_1$ sowohl zu Zeitpunkt $t=1$ als auch $t=3$ abgerufen wird, ist $r_{i_1,1} = 1$ und $r_{i_1,3} = 1$.

- $\alpha_{i_2}(3) = \beta_{i_2} \cdot (r_{i_2,2} \cdot \mathcal{N}(\mu  = 2,\sigma^2 = d)(3) + r_{i_2,3} \cdot \mathcal{N}(\mu  = 3,\sigma^2 = d)(3))$
Auch hier wird $i_2$ zu den Zeitpunkten $t=2$ und $t=3$ abgerufen, also ist $r_{i_2,2} = 1$ und $r_{i_2,3} = 1$.

- $\alpha_{i_3}(3) = \beta_{i_3} \cdot (r_{i_3,3} \cdot \mathcal{N}(\mu  = 3,\sigma^2 = d)(3))$
Für $i_3$ gibt es nur den Abruf zum Zeitpunkt $t=3$, daher ist $r_{i_3,3} = 1$ und es gibt keine anderen Komponenten in der Summe.

Um die Aktivierungen der Daten ihrer Größe nach zu ordnen, müssen wir die oben genannten Berechnungen durchführen. Da $\beta_{i_1} = \beta_{i_2} = \beta_{i_3}$ ist und weil die Werte von $r_{i,j}$ für alle Daten gleich sind (außer für $i_3$, welches nur einmal abgerufen wird), hängt die Reihenfolge der Aktivierungsniveaus von den Werten der Normalverteilungen ab. Da die Normalverteilungsfunktionen $\mathcal{N}$ zeitlich abfallen, wird die Reihenfolge der Aktivierungen wie folgt sein: $\alpha_{i_3}$ wird die höchste Aktivierung haben, weil es die kürzeste Zeit seit dem Abruf vergangen ist. $\alpha_{i_1}$ und $\alpha_{i_2}$ werden niedrigere Aktivierungen haben, aber welches von beiden höher ist, hängt von den spezifischen Werten der Normalverteilung ab. Wenn wir davon ausgehen, dass die Werte der Normalverteilung mit der Zeit schneller abnehmen (was typisch ist), wäre $\alpha_{i_2}$ größer als $\alpha_{i_1}$.





****************************************************************************************
****************************************************************************************




