Ergebnisse 1-3 + Typs Debug

This commit is contained in:
2026-02-17 09:57:10 +01:00
parent 2e6a75f93c
commit f6bdbab366
78 changed files with 139322 additions and 5 deletions

View File

@@ -1,3 +1,9 @@
#let __is_thesis = context { query(<__thesis_document>).len() > 0 }
#if __is_thesis == false [
#set cite(style: "apa")
#hide(bibliography("../literatur.bib", style: "apa"))
]
#heading(level: 1)[Theoretische Grundlagen (ca. 12 Seiten)]
Dieses Kapitel beschreibt die theoretischen Grundlagen, die für die Konzeption und Bewertung eines KI-gestützten Reverse Requirements Engineering in Legacy-Umgebungen benötigt werden. Zunächst werden zentrale Begriffe des Requirements Engineering sowie die Idee der rückwärtsgerichteten Anforderungsgewinnung aus bestehenden Systemen eingeordnet. Anschließend werden Large Language Models als Werkzeugklasse im Software Engineering beschrieben, inklusive typischer Leistungsgrenzen und Absicherungsmechanismen. Abschließend werden Grundlagen der Legacy-Modernisierung sowie etablierte Migrationsstrategien zusammengefasst, um den Kontext der Fallstudie und die Zielrichtung einer webbasierten Modernisierung einzuordnen.
@@ -122,13 +128,13 @@ Neuronale Netze lassen sich dabei vereinfacht als parametrisierte Funktionskette
Ein einzelnes Neuron lässt sich als affine Transformation mit nachgeschalteter Aktivierungsfunktion formulieren:
$
z = sum_(i=1)^d w_i x_i + b, quad a = phi(z)
z = sum_(i=1)^d w_i x_i + b, #h(1em) a = phi (z)
$
Typische Aktivierungsfunktionen sind die Sigmoid-Funktion und ReLU #cite(<goodfellow2016dl>):
$
sigma(z) = 1 / (1 + e^(-z)), quad ReLU(z) = max(0, z)
sigma (z) = 1 / (1 + e^(-z)), #h(1em) op("ReLU") (z) = op("max") (0, z)
$
#figure(
@@ -139,7 +145,7 @@ $
Die Optimierung erfolgt üblicherweise iterativ. Für Gradientenabstieg gilt in kompakter Form:
$
theta^(t+1) = theta^(t) - eta nabla_theta cal(L)(theta^(t))
theta^(t+1) = theta^(t) - eta nabla_theta cal(L) (theta^(t))
$
**Abgrenzung neuronaler Netze und LLMs zu anderen ML-Methoden**
@@ -150,6 +156,7 @@ Die folgende Tabelle fasst die Abgrenzung zu häufigen ML-Familien zusammen:
#figure(
kind: "table",
supplement: [Tabelle],
caption: [Abgrenzung zu häufigen Machine-Learning-Methoden.],
table(
columns: (1fr, 1.35fr, 1.2fr, 1.6fr),
@@ -192,7 +199,7 @@ Die folgende Tabelle fasst die Abgrenzung zu häufigen ML-Familien zusammen:
LLMs unterscheiden sich dabei von vielen klassischen Verfahren nicht nur durch Modellgröße, sondern auch durch Zielsetzung: Häufig wird ein generatives, autoregressives Sprachmodell trainiert, das die nächste Tokenwahrscheinlichkeit modelliert:
$
max_(theta) sum_(t=1)^T log p_(theta)(x_t mid x_(<t))
max_(theta) sum_(t=1)^T log p_(theta) (x_t mid x_(<t))
$
Für das Requirements Engineering ist diese Abgrenzung wichtig, weil LLMs aufgrund ihrer generativen Natur Texte produzieren können, die sprachlich konsistent wirken, aber fachlich falsch sein können. Klassische Modelle liefern in solchen Fällen eher „falsche Vorhersagen“, erzeugen jedoch nicht ohne weiteres neue, plausibel klingende Spezifikationen.
@@ -202,7 +209,7 @@ Für die Sprachverarbeitung ist der Begriff "Sprachmodell" relevant: Ein Sprachm
Self-Attention lässt sich im Transformer formal als gewichtete Kombination von Value-Vektoren beschreiben, wobei die Gewichte aus Query-Key-Ähnlichkeiten berechnet werden #cite(<vaswani2017attention>):
$
Attention(Q, K, V) = softmax((Q K^T) / sqrt(d_k)) V
op("Attention") (Q, K, V) = op("softmax") ((Q K^T) / sqrt(d_k)) V
$
#figure(