=><=
##Entwicklung einer KI‑Lösung anhand bereits trainierter Modelle
<==>
{
Die Nutzung bestehender KI-Modelle zur Lösung neuer Aufgaben ist ein Ansatz, der weitverbreitet ist.
Anstatt von Grund auf neue Modelle zu trainieren, bietet es sich oft an, bereits vorhandene Modelle weiterzuentwickeln.
Dies spart sowohl Zeit als auch Rechenressourcen und ermöglicht es, von den Fortschritten bereits etablierter Modelle zu profitieren.
<br>
Zwei der gängigsten Ansätze, um bestehende Modelle für neue Aufgaben zu nutzen, sind **Transfer Learning** und **Prompting**, insbesondere im Zusammenhang mit großen Sprachmodellen (LLMs) und generativen KI-Modellen (GenAI).
Sowohl Transfer Learning als auch Prompting ermöglichen es, Modelle effizient an neue Fragestellungen anzupassen, unterscheiden sich jedoch in ihrer Herangehensweise.
Während Transfer Learning darauf abzielt, bestimmte Schichten eines Modells weiterzutrainieren, um sie auf neue Daten zu spezialisieren, setzt Prompting darauf, ein vortrainiertes Modell mithilfe gezielter Eingaben so zu steuern, dass es relevante und kontextgerechte Ergebnisse liefert.
<br>
''Prompting bei LLMs''
<br>
Prompting ist eine Methode, bei der ein vortrainiertes Modell, wie ein LLM, gezielt durch spezielle Eingabeaufforderungen (Prompts) gesteuert wird, um Antworten auf spezifische Fragen oder Aufgaben zu generieren.
Anstatt das Modell weiter zu trainieren, werden dabei präzise formulierte Eingaben genutzt, um das vorhandene Wissen im Modell zu aktivieren und anzuwenden.
Diese Technik ermöglicht es, ein Modell für unterschiedliche Aufgaben anzupassen, ohne Änderungen an der zugrundeliegenden Architektur vornehmen zu müssen.
Ein gut formulierter Prompt kann dabei den Unterschied zwischen einer allgemeinen und einer maßgeschneiderten Antwort ausmachen ($cite_link: "`[1]`", "https://huggingface.co/docs/transformers/tasks/prompting").
<br>
''Transfer Learning''
<br>
Hierbei handelt es sich um ein Prinzip aus dem Machine Learning, wo ein bereits trainiertes Modell anhand neuer Trainingsdaten auf ein neues Problem angepasst wird.
Es gibt zahlreiche Gründe warum sich es sich lohnt Transfer Learning zu verwenden, demgegenüber existieren auch Herausforderungen die in diesem Zusammenhang berücksichtigt werden müssen.
<br>
<div style="margin-left: 20px">
<details>
<summary>Vorteile von Transfer Learning</summary>
* Oftmals benötigt es weniger Rechenzeit und Ressourcen, als ein Modell von Grund auf zu trainieren, da das Modell bereits auf einem Datensatz trainiert wurde.
* Es kann die Performance merklich positiv beeinflussen, besonders falls nur wenig Daten für das momentane Problem zur Verfügung stehen.
* Transfer Learning kann dabei helfen Imbalancen in den Klassen auszugleichen, welche negativen Einfluss auf die Vorhersagefähigkeit des Modells besitzen.
* Da mittlerweile für viele Probleme bereits große und gute Modelle trainiert wurden, ist es oft schneller und einfacher eine bereits gut funktionierende KI zu adaptieren, als selbstständig eine gänzlich neue zu programmieren.
</details>
<br>
<details>
<summary>Herausforderungen von Transfer Learning</summary>
* Nahezu sämtliche Vorteile des Transfer Learnings werden vernachlässigbar, wenn die Daten der ursprünglichen Aufgabe nicht hinreichend gut mit der neuen Aufgabe übereinstimmen. Bei der Auswahl des entsprechenden Modells müssen Sie darauf achten, dass sich die ursprünglichen und neuen Trainingsdatensätze sich nicht zu sehr voneinander unterscheiden. Andernfalls wirkt sich dies negativ auf die Performance des Modells aus. Es existieren verschiedene Metafeatures um die Ähnlichkeit der Datensätze zu überprüfen ($cite_link: "`[2]`", "https://ml.informatik.uni-freiburg.de/wp-content/uploads/papers/15-AAAI-MI-SMBO.pdf").
* Es gibt das sog. „katastrophale Vergessen“, wobei das Modell das zuvor gelernte Wissen gänzlich vergisst und der Ansatz insgesamt versagt. Dies geschieht, wenn der ursprüngliche Trainingsprozess nicht aufmerksam gehandhabt wurde. Relevance Mapping Networks ($cite_link: "`[3]`", "https://arxiv.org/abs/2102.11343") können dieses Problem potenziell lösen, indem die Gewichte des Netzwerks in bestimmter Art und Weise moduliert werden.
* Es gibt die Gefahr des Overfittings, wenn der neue Datensatz zu klein sein sollte. In diesem Fall könnte das Modell sich zu stark auf die ursprünglichen Daten konzentrieren und nicht hinreichend generalisieren.
* Es kann mitunter schwer sein zu verstehen, wie genau das ursprüngliche Modell funktioniert hat. Besonders wenn es sich dabei um ein tiefes Netzwerk handelt.
</details>
</div>
<br>
<br>
Hier sind erste Links für Webseiten mit einer Zusammenstellung an bereits trainierten Modellen, aus denen Sie Bestandteile für Ihr System übernehmen können:\
<br>
<p>
<a href="https://huggingface.co/models" target="_blank">huggingface.co</a>\
<br>
<a href="https://pytorch.org/hub/" target="_blank">pytorch.org</a>
</p>
<br>
<br>
<br>
''Zurück'', zum [[Model Design->Model Design]].
$lifecycle_overview}
<br>
<br>
<==
(text-style: "underline") [Quellen:]
`[1]`: HuggingFace, ($cite_link: "“LLM prompting guide”", "https://huggingface.co/docs/transformers/tasks/prompting"), https://huggingface.co/docs/transformers/tasks/prompting (Zugriff 19.10.2024)
`[2]`: Feurer, M., Springenberg, T., Hutter, F., ($cite_link: "“Initializing Bayesian Hyperparameter Optimization via Meta-Learning”", "https://ml.informatik.uni-freiburg.de/wp-content/uploads/papers/15-AAAI-MI-SMBO.pdf"), Proc. Nat. Conf. Artif. Intell., pp. 1128-1135, (2015)
`[3]`: Kaushik, P., Gain, A., Kortylewski, A., Yuille, A., ($cite_link: "“Understanding catastrophic forgetting and remembering in continual learning with optimal relevance mapping”", "https://arxiv.org/abs/2102.11343"), arXiv:2102.11343 `[cs.LG]` (2021)\
\$add_page=><=
##Erweiterung bestehender KI
<==>
{
Wenn Sie Ihr Modell um eine Erklärungs-Komponente erweitern wollen, können Sie in der [[XAI Toolbox->XAI Toolbox Overview]] nützliche Hinweise dazu finden.\
<br>
<br>
Für alles andere lohnt sich ein Abstecher in unsere [[AutoML Toolbox->AutoML Toolbox]]. Dort können Sie entsprechend Ihrer Bedürfnisse Tools auswählen, die Sie bei Ihren KI-Designaufgaben unterstützen.
<br>
<br>
''Zurück'', zum [[Model Design->Model Design]].
$lifecycle_overview\
\$add_page
}=><=
##Entwicklung einer neuen KI‑Lösung
<==>
{
Für eine komplett eigenständige Konzeption eines Machine Learning Modells empfehlen wir Ihnen, sich unsere [[AutoML Toolbox->AutoML Toolbox]] anzusehen. Dort können gemäß Ihren Erfordernissen Frameworks ausgewählt werden, die Sie bei der Entwicklung unterstützen, oder sogar weitestgehend davon befreien.\
<br>
<br>
Wenn Sie überlegen die Entwicklung Ihres Modells humanzentriert zu gestalten und Ihre Entwickler zu besseren Entscheidungen zu befähigen, bietet das [[XAI Developer Tool->Developer-targetting XAI Overview]] einige hilfreiche Tipps. Dort werden Prinzipien vorgestellt die Sie beachten können, um den Entwicklungsprozess nachvollziehbarer zu gestalten und Techniken mit denen die entstehende KI besser verstanden und auditiert werden kann.
<br>
Zudem empfiehlt es sich bei der Entwicklung einer neuen KI zu überlegen, ob Modell-Konzepte umgesetzt werden sollen, die inhärent die Mitarbeit des Menschen im Trainingsprozess gestatten. Dies birgt verschieden Vorteile, die im Abschnitt [[Human-in-the-loop]] näher beleuchtet werden.
<br>
<br>
''Zurück'', zum [[Model Design->Model Design]].
$lifecycle_overview\
\$add_page
}=><=
##Anbindung an IT-System
<==>
''Wie planen Sie auf Datenbestände für das Training zuzugreifen und die KI an die bestehende IT-Infrastruktur anzubinden?''
{Achten sie unter anderem auf diese Dinge:
* Gewährleisten Sie die Zusammenführung der von der KI benötigten Datenbanken.
* Stellen Sie sicher, dass die Daten in dem von der KI verlangten Format vorliegen.
* Etablieren Sie Protokolle für den Datenaustausch zwischen der KI und den anderen Teilen des Systems.
* Etablieren Sie Schutzmaßnahmen für die Sicherung des nun um die KI erweiterten Systems.
* Monitoren Sie die Performance der KI im Rahmen des Gesamtsystems.
* Richten Sie Routinen zur Alarmierung bei abweichender Leistung des Systems bzw. der KI ein.
* Vergewissern Sie sich, dass die zur Verfügung stehende Hardware den Anforderungen des neuen Systems insgesamt und der KI im Speziellen gerecht wird.
* Dokumentieren Sie die Zugriffe auf das System, um jederzeit volle Transparenz hinsichtlich etwaiger Modifikationen zu haben.
* Passen Sie das User Interface ggf. an die neuen Möglichkeiten des vollumfänglichen Systems an, sofern die KI-Komponente keine autarke, eigens für sie entwickelte Lösung beinhaltet.
* Abhängig von der Natur der Daten und eventuellen Datenschutzanforderungen, stellen Sie sicher, dass das gesamte System hinsichtlich dieser Ansprüche optimiert wird. Näheres zu dieser Thematik kann in der [[Datenschutz und Datensicherheit Toolbox->Datenschutz und Datensicherheit Overview]] gefunden werden.
** Hier wird zudem die wichtige Thematik der Zugangsberechtigung zu der KI, bzw. zu den Daten behandelt.
* Überlegen Sie, ob Teile dieser notwendigen Arbeiten evtl. outgesourct werden können, wenn die hierfür nötige Expertise im Unternehmen fehlt.
</details>}
(text-style: "underline", "bold") [Hinweis:] Dokumentieren Sie sämtliche Maßnahmen die Sie umgesetzt haben und die Gründe für diese Entscheidungen. Dies hilft die Transparenz der Entwicklung zu verbessern, sie besser nachzuverfolgen und evtl. Bugs im Laufe des Projekts leichter zu lokalisieren.\
<br>
Das Ende des "Data Collection" Teils wurde erreicht.
$lifecycle_overview\
\$add_page$humaine_logo\
=><=
##AutoML Toolbox
<==>
{
Unter AutoML (Automated Machine Learning) versteht man die Automatisierung einiger, bzw. teils sogar fast aller Schritte innerhalb einer typischen Machine Learning Pipeline. D.h. viele der hier angesprochenen Konzepte und Strategien der einzelnen vorgestellten Abschnitte eines KI-Lifecycles müssen nicht per Hand von Entwicklern ausgewählt und optimiert werden.
Wenn im Weiteren die Rede von //AutoML Tools// ist, dann sind damit spezifische AutoML Angebote von Anbietern wie bspw. Google, Amazon u.a. gemeint.
}
{
<details style="margin-left: 30px">
<summary>Was für Vorteile bietet AutoML?</summary>
* Gesteigerte Produktivität der Entwickler.
** Indem Schritte automatisiert werden, verringert dies die Workload der Entwickler, was wiederum Kapazitäten für weitere Projekte schafft.
* Weniger menschliche Fehler.
** Durch die Automatisierung wird der Mensch als größte Fehlerquelle innerhalb des Entwicklungsprozesses eliminiert.
* Demokratisierung von Machine Learning.
** Durch die Automatisierung wesentlicher Bestandteile innerhalb des KI-Lifecycles, müssen Entwickler kein tiefgehendes Expertenwissen mehr besitzen, um funktionstüchtige KI-Modelle zu entwickeln.
* Geringerer Bedarf an Experten.
** Die gesteigerte Produktivität, sowie die Demokratisierung, reduziert die benötigte Anzahl an Experten, die für die Entwicklungsaufgabe benötigt werden.
* Beschleunigung des Entwicklungsprozesses.
** Dadurch, dass nicht jedes Detail der KI per Hand designt werden muss, kann die Geschwindigkeit, mit der Ergebnisse produziert werden, beschleunigt werden.
* Verbesserung der Zufriedenheit der Nutzer.
** Viele der oben genannten Aspekte können einen positiven Einfluss auf das soziale und emotionale Wohlbefinden der Nutzer haben.
*** Durch die Abnahme monotoner Aufgaben kann bspw. die Arbeitszufriedenheit gesteigert werden.
*** Ebenso förderlich ist, dass indem technische Details automatisiert werden, die Nutzer freie Kapazitäten für kreativere und anspruchsvollere Aspekte ihrer Arbeit haben, was ebenso zu einer höheren beruflichen Zufriedenheit beitragen kann.
*** Indem schneller Ergebnisse produziert werden, kann die Motivation der Nutzer gesteigert werden.
*** Indem dem Nutzer teils komplexe technische Entscheidungen und Arbeiten abgenommen werden, kann dies zu einer Verminderung seines Stresspegels beitragen, insbesondere dann, wenn er nicht über umfassende Erfahrungen im Bereich des Machine Learning besitzt.
</details>
<br>
<details style="margin-left: 30px">
<summary>Welche Arten von AutoML gibt es?</summary>
<p>
Eine mögliche Einteilung der unterschiedlichen AutoML Tools kann anhand der benötigten Expertise der User erfolgen:
* //No Code//
** Geeignet für Business User.
** Kein Kontakt mit Code und wenig bis gar kein Kontakt mit Machine Learning.
** Der User wird durch Fragen und Use-Cases durch den Entwicklungsprozess geleitet.
* //Low Code//
** Geeignet für Data Scientists.
** Der User interagiert mit einem Interface.
** Frameworks unterstützen ihn bei seiner Arbeit.
** Wenige, ausgewählte Programmzeilen (ca. 5 - 100) genügen für individuelle Applikationen.
* //Full Code//
** Geeignet für Machine Learning Engineers.
** Der User hat die absolute Kontrolle über den Prozess.
** Er kann die Pipeline speziell an seine Wünsche anpassen.
** Anzahl der benötigten Programmzeilen kann von ca. 500 - 1 Mio. reichen.
</p>
</details>
<br>
Dieser <a href="https://twimlai.com/solutions/" target="_blank">Link</a> gibt in erster Instanz eine Übersicht über unterschiedliche AutoML Tools. Entsprechend den eigenen Ansprüchen, welche Teile des KI-Lifecycles automatisiert werden sollen, kann dort eine weitere Eingrenzung der vorgestellten Tools vorgenommen werden.
<br>
(text-style: "underline", "bold") [Hinweis:] Dokumentieren Sie sämtliche Maßnahmen die Sie umgesetzt haben und die Gründe für diese Entscheidungen. Dies hilft die Transparenz der Entwicklung zu verbessern, sie besser nachzuverfolgen und evtl. Bugs im Laufe des Projekts leichter zu lokalisieren.\
<br>
<br>
(text-style: "underline") [Ausblick auf künftige Arbeit:]
In Zukunft werden an dieser Stelle tiefergehende Betrachtungen bzgl. der individuellen Abschnitte des KI-Lifecycles (Data Collection, Model Design usw.) vorgenommen. Konkret bezieht sich dies auf eine nähere Auseinandersetzung mit den dort relevanten Konzepten wie Hyperparameteroptimierung und Neural Architecture Search. Es sollen Übersichten über populäre Toolboxen gegeben und Empfehlungen ausgesprochen werden, die sich nach den individuellen Bedürfnissen der User von //tachAId// richten.
<br>
<br>
''Zurück'', zum [[Pre-Modeling->Pre-Modeling]].\
<br>
''Zurück'', zum [[Model Design->Model Design]].}
$lifecycle_overview\
\$add_page=><=
##Data Collection
<==>
{
Bei der erfolgreichen Umsetzung einer KI-Lösung spielen die verfügbaren Daten, auf denen ein Modell trainiert werden sollen, eine besonders wichtige Rolle.
Eine der Kernideen vom maschinellen Lernen ist es, dass eine //nicht-beobachtbare datengenerierende Verteilung// exisitiert und diese durch ein Modell //angenähert// werden soll.
Im Grunde bedeutet das, dass die Eigenschaften von Untersuchungsobjekten nicht zufällig sind, sondern eine gewisse Struktur aufweisen.
Genau diese Struktur soll das Modell ausnutzen, um gewisse Fragestellungen beantworten zu können, z.B. Regression, Klassifikation, Clustering.
}
{
Sind die Daten nun nicht repräsentativ, oder mit systematischen (aber ungewollten) Effekten versehen, lernt das Modell möglicherweise eine unerwünschte Struktur.
Die darauf basierenden Vorherhsagen können nun ebenfalls systematisch verzerrt sein oder gar die Fragestellung schlecht oder gar nicht beantworten können.
Daher ist es unerlässlich, dass eine gute Datengrundlage vorliegt.
}
''Ist eine //gute// Datengrundlage gewährleistet, damit die KI-Lösung zufriedenstellend trainiert werden kann?''
{
<div style="margin-left: 20px">
<details>
<summary>Warum ist es wichtig eine //gute// Datengrundlage zu besitzen?</summary>\
Es gibt eine Vielzahl von Gründen, warum dieser Aspekt von entscheidender Relevanz im Projekt ist.
* Bessere Performance des Modells
** Die Qualität der Daten besitzt direkten Einfluss auf die maximal mögliche Leistung (bspw. in Form der Accuracy oder anderer Maße) des Modells. Selbst mit den besten und fortschrittlichsten Algorithmen ist es nicht möglich die Probleme und Mängel schlechter bzw. unpassender Daten in diesem Kontext auszugleichen.
* Reduzierter Bias
** Die Problematik des Bias wird weiter unten im Detail erläutert.
* Verbesserte Generalisierbarkeit, Robustheit des Modells und reduziertes Overfitting
** Neben der rohen Leistung des Modells (bspw. in Fragen der Accuracy) auf den bekannten Daten, ist in aller Regel ebenso dessen Generalisierbarkeit von entscheidender Bedeutung für das Projekt. Das bedeutet, wenn die Daten nicht repräsentativ für das Problem sind, wird es schnell unmöglich robuste und verlässliche Vorhersagen auf Grundlage neuer und unbekannter Daten zu produzieren. Wenn zudem zu wenig Daten vorhanden sind kann es geschehen, dass das Modell sich evtl. zu stark an diese anpasst (Overfitting), was sich wiederum negativ auf die Generalisierbarkeit auswirkt.
* Kosten-Effizienz
** Je besser der Grundzustand der Daten ist, desto weniger Aufwand (in Form von monetären Mitteln, Verarbeitungszeit usw.) muss darauf verwendet werden sie in einen für die weitere Verarbeitung geeigneten Zustand zu bringen.
</details>
</div>
<br>
<div style="margin-left: 20px">
<details>
<summary>Was versteht man unter einer //guten// Datengrundlage?</summary>\
Grundsätzlich sind hierbei zwei Faktoren voneinander zu unterscheiden, die Menge an Trainingsdaten, sowie deren Qualität.
<br>
* (text-style: "underline") [Was gibt es bzgl. der //Menge// an Daten zu wissen?]
** Im Kontext von RegressionsAnalysen existiert die Faustregel, wenigstens 10x mehr Daten als Modellparameter (inkl. Features) zu besitzen.
** Im Kontext von Klassifizierungen (bspw. Computer Vision) existiert die Faustregel, wenigstens 1000 Trainingsdaten pro Klasse zu verwenden. Hierbei verringert sich die Anzahl bei ggf. bereits vortrainierten Netzwerken.
** Insgesamt sind die Ansprüche an die Menge an Trainingsdaten jedoch äußerst fallspezifisch und deshalb sollten die oberen Faustregeln tatsächlich nur als //grobe// Richtlinien verstanden werden.
** Grundsätzlich muss zudem auf eine potenzielle Imbalance der Klassen geachtet werden, d.h. jede Klasse sollte gleich viele Daten zur Repräsentation besitzen, andernfalls leidet die Qualität des Modells. Es gibt Techniken zur Korrektur, doch können diese eine größere Menge an Daten nicht vollständig ersetzen.
** Weiterhin sollte die Frage berücksichtigt werden, ob das KI-Modell periodisch mit neuen Daten versorgt werden muss, also ob eine Update-Notwendigkeit besteht. Mehr dazu unter dem Punkt [[Nachtrainieren der KI->KI Nachtrainieren?]] im Deployment-Abschnitt des KI-Lifecycles.
** (text-style: "underline") [Hinweis:] Im Falle von Deep Learning Applikationen verbessert sich deren Performance in der Regel stetig weiter mit einer größeren Menge an Daten. Bei traditionellen Machine Learning Verfahren ist dies ab einem gewissen Punkt nicht mehr der Fall.
<br>
* (text-style: "underline") [Was gibt es bzgl. der //Qualität// der Daten zu wissen?]
** Die Daten sollten //relevant// sein. D.h. das Datenset sollte nur Attribute/Features enthalten, die nützliche Informationen für das KI-Modell bereitstellen. Verfahren für die Identifikation dieser relevanten Features werden im Abschnitt $developer_col[$target_symbol] [[Feature Engineering->Feature Engineering]] weiter besprochen.
** Die Daten sollten //konsistent// sein. D.h. wenn sich die Werte verschiedener Datenpunkte hinsichtlich ihrer Attribute/Features gleichen, sollten auch die korrespondierenden Labels, bzw. Zielparameter ähnlich/identisch sein.
** Die Daten sollten //uniform// sein. D.h. Werte innerhalb eines Attributs sollten keine Ausreißer beinhalten. Dies schließt auch fehlende Werte mit ein.
** Die Daten sollten //umfassend// sein. D.h. die Daten sollten auch mögliche Grenzfälle (ausreichend) beinhalten, die die KI einordnen soll.
** Auf die Richtigkeit der Label muss geachtet werden. Mehr dazu im Abschnitt [[Labeling->Labeling abgeschlossen?]].
** Mehr zu Verfahren die die Qualität der Daten positiv beeinflussen im Abschnitt $developer_col[$target_symbol] [[Data preprocessing->Preprocessing]].\
<br>
<br>
<p>Zudem benötigen bestimmte Verfahren der eXplainable Artificial Intelligence zusätzlich bei den Trainingsdaten außer Eingabe- und Ausgabeinformationen auch Mustererklärungen um trainiert zu werden.</p>
</details>
</div>
<br>
<div style="margin-left: 20px">
<details>
<summary>Was versteht man unter //Bias//, warum ist diese Problematik relevant und wie kann sie behoben werden?</summary>\
Bias im Rahmen von Machine Learning bezieht sich auf systematische Verzerrungen bzw. Vorurteile die sowohl in den Daten, den Algorithmen an sich, sowie im Zusammenspiel zwischen Nutzer und KI auftreten können.
Es existieren verschiedene Gründe warum es wichtig ist Bias nicht nur in den Daten, sondern auch in seinen übrigen Ausprägungsformen in der KI und bei der Zusammenarbeit damit zu identifizieren und zu adressieren. Zunächst handelt es sich grundlegend um einen ethischen imperativ und fördert Fairness und Gerechtigkeit. Biases sollten entfernt werden damit die KI die Menschen die sie betrifft nicht benachteiligt bzw. diskriminiert. Zudem kann die mangelnde Repräsentativität negativen Einfluss auf die Generalisierbarkeit des Modells haben. Diese fehlerhaften Modelle können in der Folge das Vertrauen der Nutzer verlieren und je nach Einsatzzweck zudem die Reputation des Unternehmens sowie dessen wirtschaftlichen Gewinn schaden.
Die Arbeit von Mehrabi et al. ($cite_link: "`[1]`", "https://arxiv.org/abs/1908.09635") gibt eine gute Übersicht über die Literatur die die verschiedenen Formen von Biases und deren Ursachen, sowie Möglichkeiten sie zu identifizieren und zu beheben adressiert. Für eine umfassende Behandlung dieser Thematik sei auf dieses Paper verwiesen. An dieser Stelle folgt nun eine kurze Zusammenfassung einiger der Ergebnisse.
<br>
Typen von Bias:
* Biases in den Daten
** Messungsbias: Entsteht durch die Wahl wie die zu verwendenden Features gewählt, verwendet und gemessen werden.
** Aggregationsbias: Entsteht, wenn auf Basis des allgemeinen Verhaltens einer Population falsche Schlussfolgerungen für Untergruppen derselbigen gezogen werden.
** Sampling Bias: Entsteht durch das nicht zufällige Sampeln evtl. Subgruppen des Messgegenstandes.
* Biases durch Algorithmen und Technologie
** Algorithmischer Bias: Erst durch die Wahl bestimmter Algorithmen wie bspw. von Optimierungsfunktionen, Regularisierungen in den neuronalen Netzen oder anderer Techniken entsteht diese Art von Bias.
** Interaktionsbias: Fehler die durch die Zusammenarbeit des Modells mit dem User entstehen. Üblicherweise verursacht durch das Interface, oder biased Verhalten der User an sich.
** Evaluierungsbias: Entsteht bei der Evaluierung des Modells durch die Wahl ungeeigneter Metriken.
* Durch User in den Daten generierte Biases (`Hintergrund`: Oftmals produzieren User Daten für das Modell)
** Historischer Bias: Historische Vorurteile bzw. sozio-technische Voreingenommenheiten die sich dann in den Daten niederschlagen.
** Populationsbias: Entsteht, wenn Statistiken, Demographien, User Charakteristiken usw. die in einer Messpopulation aufgenommen werden sich von den entsprechenden Merkmalen in der Anwenderpopulation unterscheiden.
** Sozialer Bias: Entsteht, wenn die Aktionen anderer unser eigenes Handeln und Denken beeinflussen.
<br>
Die Identifikation von Biases ist nicht trivial und benötigt oftmals einen interdisziplinären Ansatz aus datenwissenschaftlichen Methoden, statistischen Analysen und domänenspezifischem Fachwissen. Hier eine Auswahl einiger der Techniken die angewendet werden können:
* Aequitas ($cite_link: "`[2]`", "https://arxiv.org/abs/1811.05577") ist ein Tool welches Usern erlaubt ihre Modelle hinsichtlich verschiedener Biases und Fairness Metriken zu untersuchen.
* IBM’s AI Fairness 360 (AIF360) ($cite_link: "`[3]`", "https://arxiv.org/abs/1810.01943") ist ein weiteres Toolkit, welches nicht nur der Identifikation von algorithmischen Biases dient, sondern auch deren Verständnis und Abschwächung.
* Explorative Datenanalysen sind geeignet Muster, Trends und Unregelmäßigkeiten in den Daten zu identifizieren. Visualisierungstechniken wie Histogramme und Scatterplots sind hilfreich.
* Statistische Tests, wie t-Test, chi-Quadrat-Tests und andere, können eventuelle Unterschiede zwischen Gruppen aufdecken.
* Es existieren verschiedene Fairness-Metriken um mögliche Formen von Bias zu quantifizieren. Hierunter zählen bspw. Demographic Parity, Equalized Odds und Disparate Impact.
* Feature-Importance Analysen können helfen um potenziell stark voneinander abweichende Features hinsichtlich ihrer Wichtigkeit voneinander zu unterscheiden.
* Das Modell sollte auf unterschiedlichen Subgruppen der Daten trainiert werden um zu schauen, ob die Ergebnisse stark voneinander abweichen. In diesem Fall könnte ein Bias in den Daten vorhanden sein.
** Allerdings sei hier angemerkt, dass auch wenn es Unterschiede der Resultate für unterschiedliche Subgruppen in den Daten gibt, das nicht unbedingt heißen muss, dass sie einen Bias aufweisen. Aus diesem Grund ist es von großem Vorteil in diesem Kontext zusätzliches Expertenwissen mit in die Analyse einfließen zu lassen. Als zusätzliche Maßnahme kann die Fehlerrate für die unterschiedlichen Gruppen betrachtet werden und sichergestellt werden, dass sie möglichst gleich ist.
<br>
Es existieren unterschiedliche Techniken wie man potenzielle Biases in den verschiedenen Stadien des Lebenszyklus der KI-Entwicklung (`genauer`: Vorverarbeitung der Daten, Modell Auswahl und Nachbearbeitung) vermindern kann. Eine Übersicht über die Literatur kann bspw. den Arbeiten von Mehrabi et al. ($cite_link: "`[1]`", "https://arxiv.org/abs/1908.09635") und Ferrara ($cite_link: "`[4]`", "https://arxiv.org/abs/2304.07683") entnommen werden. Hier nur eine kurze Auflistung:
* Stellen Sie bei der Vorverarbeitung sicher, dass die Daten repräsentativ für jegliche darin enthaltenen Untergruppen sind. Techniken wie Oversampling, Undersampling oder die Generierung von synthetischen Daten sind vielfach genutzte Hilfsmittel.
* Sorgen Sie für einen transparenten Modellentwicklungsprozess und dokumentieren sie sämtliche getroffenen Entscheidungen in diesem Zusammenhang. Das ermöglicht nicht nur eine bessere Nachverfolgbarkeit, sondern trägt ebenfalls zur Rechenschaftspflicht bei. Auf diese Weise können im Nachgang eventuelle fehlerhafte bzw. nachträgliche Verarbeitungsschritte identifiziert und rückgängig gemacht werden.
* Es existieren Methoden und Metriken die Fairness bei der Auswahl der Modelle priorisieren. Hierzu zählen bspw. Techniken wie Regularisierung, welche Modelle mit diskriminierenden Vorhersagen bestrafen oder Ensemble Methoden die verschiedene Modelle kombinieren um Biases zu reduzieren. Auch die Wahl geeigneter Metriken wie bspw. demographic parity können genutzt werden um faire Modelle auszuwählen. Einen guten Ausgangspunkt für weitere Betrachtungen bietet hierbei die Arbeit von Ferrara ($cite_link: "`[4]`", "https://arxiv.org/abs/2304.07683").
* In der Nachverarbeitung können Methoden eingesetzt werden, wie bspw. die von Hardt et al. ($cite_link: "`[5]`", "https://arxiv.org/abs/1610.02413"), die die Entscheidungen der KI anpassen um für eine Gleichverteilung der falsch negativen und falsch positiven Ergebnisse entlang der verschiedenen Untergruppen zu sorgen und somit eine Chancengleichheit herzustellen.
* Die interdisziplinäre Zusammenarbeit unterschiedlicher Stakeholder kann helfen verschiedene Perspektiven in die Modellentwicklung zu integrieren und dabei potentielle Biases zu identifizieren und sofort zu adressieren.
<br>
Wichtig ist zudem noch auf das Spannungsfeld zwischen Bias Minderung und Genauigkeit der Modelle hinzuweisen. Viele der vorgeschlagenen Techniken verringern zwar den Bias des KI-Systems, jedoch auf Kosten seiner Genauigkeit. Auch ist es möglich, dass durch die Adressierung einer Form des Bias eine andere begünstigt wird.
Insgesamt existiert keine universelle Lösung für dieses Problem und es ist wichtig individuell für jedes Projekt zu entscheiden, in welchem Maße welche Form des Bias reduziert werden muss um ein faires, nichtdiskriminierendes Verhalten der KI zu gewährleisten. Sollte in Konsequenz keine hinreichende Leistung des Modells erzielbar sein, muss über die Sinnhaftigkeit und Durchführbarkeit des Projekts zum momentanen Zeitpunkt nachgedacht werden.
</details>
</div>
<br>
<br>
(text-style: "underline", "bold")[Hinweis:] Dokumentieren Sie sämtliche Maßnahmen die Sie umgesetzt haben und die Gründe für diese Entscheidungen. Dies hilft die Transparenz der Entwicklung zu verbessern, sie besser nachzuverfolgen und evtl. Bugs im Laufe des Projekts leichter zu lokalisieren.
<br>
<br>
''Weiter'' mit [[Labeling->Labeling abgeschlossen?]].\
<br>
''Weiter'' mit [[Strategien für Datenbeschaffung->Strategien für Datenbeschaffungen]].
$lifecycle_overview}
<br>
<br>
<==
(text-style: "underline") [Quellen:]
`[1]`: Mehrabi, N., Morstatter, F., Sexana, N., Lerman, K., Galstyan, A., ($cite_link: "“A survey on bias and fairness in machine learning”", "https://arxiv.org/abs/1908.09635"), arXiv:1908.09635v3 `[cs.LG]` (2019)
`[2]`: Saleiro, P., Kuester, B., Stevens, A., Anisfeld, A., Hinkson, L., London, J., Ghani, R., ($cite_link: "“Aequitas: A Bias and Fairness Audit Toolkit”", "https://arxiv.org/abs/1811.05577"), arXiv:1811.05577v2 `[cs.LG]` (2018)
`[3]`: Bellamy, R.K.E., Dey, K., Hind, M., Hoffman, S.C., Houde, S., Kannan, K., Lohia, P., Martino, J., Mehta, S., Mojsilovic, A., Nagar, S., Ramamurthy, K.N., Richards, J., Saha, D., Sattigeri, P., Singh, M., Varshney, K.R., Zhang, Y., ($cite_link: "“AI Fairness 360: An Extensible Toolkit for Detecting, Understanding, and Mitigating Unwanted Algorithmic Bias”", "https://arxiv.org/abs/1810.01943"), arXiv:1810.01943 `[cs.AI]` (2018)
`[4]`: Ferrara, E., ($cite_link: "“Fairness And Bias in Artificial Intelligence: A Brief Survey of Sources, Impacts, And Mitigation Strategies”", "https://arxiv.org/abs/2304.07683"), arXiv:2304.07683 `[cs.CY]` (2023)
`[5]`: Hardt, M., Price, E., Srebro, N., ($cite_link: "“Equality of opportunity in supervised learning”", "https://arxiv.org/abs/1610.02413"), arXiv:1610.02413 `[cs.LG]` (2016)\
\$add_page$humaine_logo\
=><=
##Datenschutz und Datensicherheit Toolbox
<==>
{
Die Thematik des Datenschutzes und der Datensicherheit sind komplex und durchziehen sämtliche Teilaspekte des ML-Lifecycles.
Zunächst eine Abgrenzung der beiden Begriffe. Beide Konzepte sind miteinander verwandt. Datenschutz bezieht sich auf den Schutz personenbezogener Daten und der Gewährleistung der Privatsphäre von Einzelpersonen. Er befasst sich damit, wie, warum, wo und wann die Daten geteilt werden. Demgegenüber handelt es sich bei der Datensicherheit allgemein um den Schutz von Daten vor verschiedenen Bedrohungen.
Im Folgenden werden diese beiden Konzepte parallel erörtert und aufgewiesen, mittels welcher Maßnahmen sie realisiert werden können.
<br>
Zunächst eine kurze Auflistung von Gründen warum es wichtig ist, Datenschutz und Datensicherheit zu beachten:
<p>
* Vertrauen
** User sind eher geneigt der KI zu vertrauen, wenn klar kommuniziert wird, dass ihre Daten nicht missbräuchlich verwendet werden.
** Darüber hinaus ist das Vertrauen der Nutzer wichtig für die das gewinnbringende Fortbestehen des Unternehmens.
* Recht
** Es existieren gesetzliche Bestimmungen, die vorgeben wie mit Daten von Usern umzugehen ist. Ein Nichtbeachten kann sowohl rechtliche Konsequenzen, als auch ein Vertrauensverlust insgesamt in das entwickelnde Unternehmen nach sich ziehen.
* Bias und Diskriminierung
** Durch die Garantie des Datenschutzes können etwaige Biases und Diskriminierungen, sowie deren negativen Folgen für die KI-Entwicklung (siehe hierzu das Kapitel [[Data Collection->Data Collection]]), abgemildert, bzw. gänzlich vermieden werden.
* Schutz vor Missbrauch</summary>
** Entsprechende Sicherheitsmaßnahmen helfen einen missbräuchlichen Gebrauch der KI zu verhindern.
</p>
<br>
Zahlreiche Verfahren können eingesetzt werden um den Datenschutz in den verschiedenen Stadien während der KI-Entwicklung zu gewährleisten. An dieser Stelle nur eine kurze Auflistung der populäreren Ansätze. Tiefergehende Informationen zu dieser Thematik können bspw. den Arbeiten von Xu et al. ($cite_link: "`[1]`", "https://arxiv.org/abs/2108.04417") und De Cristofaro ($cite_link: "`[2]`", "https://ieeexplore.ieee.org/document/9433648") entnommen werden. ($cite_link: "`[1]`", "https://arxiv.org/abs/2108.04417") gibt eine gute Übersicht aktueller Verfahren, ($cite_link: "`[2]`", "https://ieeexplore.ieee.org/document/9433648") beschäftigt sich mit den möglichen Gefahren und Angriffen auf das System.
In Xu et al. werden die Maßnahmen in vier Typen eingeteilt, wobei der letzte Typ (iv) die hybride Kombination der Typen (i) bis (iii) ist, und diese sich auf folgende Stationen im KI-Lifecycle beziehen: (i) Arbeit mit den Rohdaten; (ii) Berechnungen während des Trainings und der Inferenz; (iii) Auswahl der KI-Architekturen.
Nachfolgend eine kurze Auflistung möglicher Ansätze für die drei Stationen (i) – (iii).
<br>
<details style="margin-left: 30px;">
<summary>(i) Arbeit mit den Rohdaten:</summary>
* Eliminierungsbasierte Ansätze
** Techniken wie k-anonymity, l-diversity oder t-closeness werden auf Rohdaten angewendet, um einzelne Datenpunkte durch Gruppen von Daten zu repräsentieren. Die Gruppen weisen gemeinsame Eigenschaften auf und erschweren somit die Identifikation individueller Daten.
* Störungsbasierte Ansätze
** Differential Privacy: Künstliches Rauschen wird in die Rohdaten ein-gebracht. Dies geschieht auf eine bewusste Weise, so dass die globalen Statistiken weitestgehend nicht verändert werden. Auf diese Art können die originalen Daten nicht mehr problemlos durch Dritte identifiziert werden.
** Sketching: Die originalen Rohdaten werden nicht für die eigentlichen Berechnungen verwendet. Stattdessen wird eine Repräsentation dieser Daten in Form bspw. von aggregierten Statistiken (Mittelwert, Standardabweichung, usw.) oder auch Histogrammen oder Frequenzverteilungen genutzt.
* Informierte Zustimmung
** Erfrage die ausdrückliche Zustimmung der User welche Daten erhoben werden dürfen und informiere sie darüber wie sie verarbeitet werden.
* Minimierung der persönlichen Daten
** Erhebe nur diejenigen Daten, welche absolut notwendig für die KI-Zwecke sind. Je weniger personalisierte Daten erhoben werden und in Abhängigkeit ihrer Natur, desto weniger brisant ist die Thematik des Datenschutzes insgesamt.
</details>
<br>
<details style="margin-left: 30px;">
<summary>(ii) Berechnungen während des Trainings und der Inferenz</summary>
* Kryptographische Ansätze
** Homomorphic encryption ist eine spezielle Art der Verschlüsselung die es erlaubt etwaige Berechnungen direkt auf den verschlüsselten Daten auszuführen.
** Fully Homomorphic Encryption (FHE): Hierbei können die verschlüsselten Daten sowohl addiert, als auch multipliziert werden. Es existieren weitere Formen die weniger komplex sind und unter Umständen bereits den eigenen Ansprüchen genügen könnten.
* Additive Mask Ansätze
** Bei diesem Ansatz wird eine additive Maske, hierbei handelt es sich um eine zufällige Zahl oder Vektor, zu den Daten hinzuaddiert.
** Die auf diese Weise maskierten Daten können nun mit weiteren berechtigten Personen kommuniziert und anschließend weiterverarbeitet werden.
** Nach Abschluss der Bearbeitung können die Daten mittels Subtraktion der Maske wieder zurücktransformiert werden.
</details>
<br>
<details style="margin-left: 30px;">
<summary>(iii) Auswahl der KI-Architekturen</summary>
* Federated Learning
** Hierbei wird ein Modell auf dezentralen Geräten trainiert. Hierzu laden die lokalen Geräte die Modellgewichte des globalen Modells vom zentralen Server herunter, trainieren die KI lokal und laden die aktualisierten Gewichte im Nachgang wieder in den zentralen Server hoch.
** Der Vorteil hierbei ist, dass die Rohdaten niemals die dezentralen User verlassen.
* Delegation-based Ansätze
** Hierbei verbleibt das KI Modell auf einem zentralen Gerät und wird dort trainiert. Die Rohdaten werden dezentralisiert in das Modell eingespeist. Bestimmte Aufgaben des Modells (bspw. ressourcenhungrige Berechnungen) können an Dritte ausgelagert werden.
</details>
<br>
Darüber hinaus gibt es auch während der Deployment Phase der KI einige Möglichkeiten Datenschutz zu gewährleisten. In diesem Abschnitt beziehen sich die Ratschläge sowohl auf den Zugang der Daten an sich, als auch auf die fertige KI Anwendung.
<br>
<details style="margin-left: 30px;">
<summary>Ratschläge zu Zugang der Daten</summary>
* Soweit möglich, stellen Sie die physischen Zugriffspunkte zu dem System sicher um unbefugten Zugriff zu vermeiden. Hierbei sind Datenserver, sowie die anderen Hardwarekomponenten der KI gemeint.
* Stellen Sie sicher, dass nur autorisiertes Personal Zugang zu den Daten und dem System besitzt. Implementieren Sie hierzu Zugriffskontrollen, Berechtigungsabfragen und Authentifizierungen der Nutzer.
* Monitoren Sie welche Personen Zugriff haben und überwachen Sie deren Verhalten.
* Entwerfen Sie rechtzeitig Notfallpläne, wie bei einem Bruch der Bestimmungen und Rechte auf die Situation reagiert werden soll.
* Halten Sie sich an die geltenden Gesetze zum Umgang mit personenbezogenen Daten.
* Unterweisen Sie das betreffende Personal hinsichtlich der nötigen Regularien um einen sicheren Umgang mit den Daten und dem System zu gewährleisten.
* Stellen Sie sicher, dass die Daten nicht länger als unbedingt notwendig gespeichert werden um unnötige Risiken zu vermeiden.
* Etablieren Sie regelmäßige Sicherheitsprüfungen, um evtl. Brüche des Systems zu erkennen.
</details>
<br>
Trotz all dieser Maßnahmen die ergriffen werden können, müssen zwei Dinge deutlich gemacht werden. Zunächst, für alle vorgestellten Verfahren gibt es entsprechende Gegenmaßnahmen. Doch bereits das Implementieren von einer, besser noch von mehreren dieser Methoden verringert das Risiko ungewollter und ungewünschter Zugriffe Dritter auf die Daten.
Darüber hinaus bergen die genannten Techniken neben den zahlreichen Vorteilen auch Nachteile. Es existiert ein Trade-Off Dilemma zwischen dem gewünschten Datenschutz, der Performance der KI (Genauigkeit, Robustheit, Fairness usw.) und/oder deren Effizienz (bzgl. Kommunikation bzw. Rechenleistung). D.h. in vielen Fällen tauscht man ein Mehrgewinn im Datenschutz für mindestens einen der beiden anderen Aspekte ein.
(text-style: "underline") [Hinweis:] Zur besseren Nachverfolgbarkeit und Troubleshooting der Entwicklung, dokumentieren Sie Ihre Entscheidungen bzgl. der Art des Datenschutzes den Sie implementieren.
<br>
<br>
(text-style: "bold")[Ausblick:]
* In Zukunft sollen in dieser Toolbox die angesprochenen Verfahren in größerem Detail betrachtet werden.
* Außerdem sollen die populärsten Angriffsarten dargestellt werden, damit die Leser ein besseres Verständnis für die unterschiedlichen Arten der Bedrohungen gewinnen.
<br>
<br>
''Zurück'', zur [[Data Collection->Data Collection]].\
$lifecycle_overview}
<br>
<br>
<==
(text-style: "underline") [Quellen:]
`[1]`: Xu, R., Baracaldo, N., Joshi, J., ($cite_link: "“Privacy-Preserving Machine Learning: Methods, Challenges, and Directions”", "https://arxiv.org/abs/2108.04417"), arXiv:2108.04417v2 `[cs.LG]` (2021)
`[2]`: E. De Cristofaro, ($cite_link: "“A critical overview of privacy in machine learning”", "https://ieeexplore.ieee.org/document/9433648"), IEEE Security & Privacy, vol. 19, no. 4, pp. 19-27, (2021)\
\$add_page$humaine_logo\
=><=
##Deployment
<==>
''Sollen Menschen bei ihrer Arbeit mit dem fertigen KI-System interagieren?''
{
<div style="margin-left: 20px">
<details>
<summary>Abwägung zwischen vollständiger Automatisierung vs Mensch-KI Hybriden</summary>
<p>Beide Ansätze haben ihre jeweiligen Vor- und Nachteile und oftmals sehen wir uns mit einem Trade-Off Dilemma konfrontiert, dessen Lösung von der individuellen Problemstellung und deren speziellen Anforderungen an das System abhängt. Im Folgenden werden einige Für und Wider angesprochen, die Ihnen dabei helfen sollen eine Entscheidung für Ihr eigenes Projekt zu treffen.</p>
<br>
<p>(text-style: "bold") [Effizienz vs Anpassungsfähigkeit]</p>
<br>
<p>Geht es um die reine Bearbeitung sich immer wiederholender, gleichbleibender Prozesse, so bietet eine vollständige Automatisierung oftmals Vorteile hinsichtlich einer effizienten, schnellen und fortwährenden Erfüllung gegenüber einem Mensch-KI Hybriden. Jedoch sind reine KI-Systeme nur begrenzt anpassungsfähig, so dass wenn sich die Art der Aufgabe über den Zeitraum der Bearbeitung verändert, ein Mensch-KI Hybrid wesentlich besser darauf reagieren, etwaige entstehende Unsicherheiten der Lösungen erkennen und je nach Art des Systems, Anpassungen vornehmen kann.</p>
<br>
<p>(text-style: "bold") [Kosteneinsparung vs Ethik]</p>
<br>
<p>Eine vollständige Automatisierung der Aufgaben kann langfristige Kosteneinsparungen durch die Reduktion von notwendigen menschlichen Arbeitskräften haben. Demgegenüber stehen ethische Bedenken, genau dies zu verhindern. Darüber hinaus stellen ethische Gesichtspunkte für entsprechende Aufgaben, wie bspw. in der Medizin, oftmals Schlüsselaspekte dar und sind genauso sehr Teil der notwendigen Lösung, wie die rein technisch zu erzielenden Metriken. Ein KI-Mensch Hybrid ist in diesem Fall einer reinen KI überlegen, allerdings mit dem Nachteil, dass menschliche Arbeitskräfte oftmals höhere Kosten bedingen, besonders wenn etwaige Schulungen für den Umgang mit dem System notwendig sind.</p>
<br>
<p>(text-style: "bold") [Skalierbarkeit vs Begrenzte Skalierung]</p>
<br>
<p>Vollständig automatisierte Systeme können oftmals leichter auf eine große Anzahl von Aufgaben oder Datenvolumen skaliert werden, was eine breite Anwendbarkeit begünstigt. Demgegenüber besitzen Mensch-KI Hybriden natürliche Grenzen, bedingt durch ihre menschliche Komponente. Nicht nur was die Fähigkeit eines Einzelnen betrifft, sondern im Unternehmenskontext auch, wie viele Arbeitskräfte für eine gewählte Aufgabe eingestellt werden können.</p>
<br>
<p>(text-style: "bold") [Qualifizierung vs Dequalifizierung]</p>
<br>
<p>Ein weiteres Dilemma konkret bzgl. der Zusammenarbeit zwischen Mensch und KI besteht in der Thematik ihrer Qualifizierung. Die Arbeit mit einer KI kann sich hierbei sowohl positiv, als auch negativ auswirken, in Abhängigkeit davon wie die Zusammenarbeit umgesetzt wird. Ist die KI zu dominant im Zusammenspiel und beschränkt die Arbeit des Menschen auf triviale Tätigkeiten, so ist das Risiko der Dequalifizierung der Arbeitskräfte gegeben. Demgegenüber kann die Interaktion jedoch auch Vorteile bieten. Durch den Umgang mit der KI kann der Mensch animiert werden sich hinsichtlich der technischen Eigenschaften weiterzubilden. Zudem können domänenspezifische Informationen an den Nutzer weitergeben werden, die diesen fachlich weiter qualifizieren.</p>
<br>
<p>(text-style: "bold") [Fehlerreduktion vs Menschliche Überwachung]</p>
<br>
<p>Reine KIs erzielen mittlerweile für bestimmte Aufgaben bessere Ergebnisse (bspw. höhere Genauigkeiten) als Menschen allein, oder auch Mensch-KI Lösungen. Sie sind besonders in Situationen geeignet, wo kein Risiko eines Personenschadens bei etwaigen Fehlern besteht. In diesem Sinne können sie gut verwendet werden, um bestimmte unkritische Teilaufgaben eines Menschen zu automatisieren. Jedoch müssen ethische und rechtliche Faktoren beachtet werden, sollte die KI Aufgaben übernehmen, die direkt Einfluss auf das Wohl des Menschen (physisch sowie mental) nimmt. In diesen Fällen sollte und muss ggf. eine menschliche Überwachung der KI erfolgen. Gleichzeitig sei an dieser Stelle auch die Problematik sowohl des technischen, als auch menschlichen Bias erwähnt. Je nach Anwendungsfall kann entweder die KI, oder der Mensch den Vorurteilen des jeweils anderen entgegenwirken. Menschen bedürfen u.U. weiterer Kontrollinstanzen. Allgemein näheres zur Thematik des Bias finden Sie [[hier->Data Collection]].</p>
</details>
</div>
<br>
<div style="margin-left: 20px">
<details>
<summary>Modi von Mensch-KI Kollaboration</summary>
<p>Eine bestimmte Wahrnehmungs- und Denkaufgabe wie z.B. die Qualitätssicherung von Zwischenprodukten in einem Fertigungsprozess kann innerhalb folgender Modi KI-unterstützt ablaufen:
* Der Mensch trifft zuerst und ohne Einfluss einer KI eine Entscheidung und erfährt nachträglich wie die KI sich in der Situation entscheiden würde.
* Der Mensch kommt erst durch die KI vermittelt mit der konkreten Situation/Instanz in Berührung und erfährt sogleich was für die KI die entscheidungsrelevanten Aspekte der Situation sind und wie weiter verfahren werden soll.
* Die KI interveniert im normalen Arbeitsablauf nur in Fällen wo sie mit hoher Gewissheit darauf schließt, dass der Mensch falsch handelt. Dieser Modus erlaubt den Einsatz einer KI, selbst wenn diese nur unter gewissen Bedingungen einen Mehrwert liefert ohne in anderen Situationen den Menschen negativ zu beeinträchtigen.
* Die KI arbeitet die Eingabeinstanzen autonom ab und wirkt so auf nachfolgende Prozessschritte ein. Der Mensch überwacht sie in Echtzeit und kann einschreiten, oder er überprüft Protokolle und Statistiken zur KI-Entscheidung im Nachgang. Die Initiative für die Mensch-KI-Kooperation liegt auf Seiten der KI: Wenn die KI meint unzureichend genau zu entscheiden oder Anomalien in den Daten erkennt, wird ein Experte eingeschaltet und die KI-Automatik wird ggf. abgeschaltet.</p>
</details>
</div>
<br>
<div style="margin-left: 20px">
<details>
<summary>Weitergehende Informationen zum Zusammenspiel von Mensch und KI</summary>
<p>ML-Systeme und insb. Deep Learning Systeme bieten nur schwache Garantien bei unbekannten Eingaben und ihre Generalisierungsleistung lässt sich nur ungenau vorhersagen. ML-Systeme Darüber hinaus lassen sie sich aktuell in den meisten Fällen nicht rückstandslos auf überprüfbare Sammlungen von eindeutigen Regeln zurückführen. Das bedeutet, dass immer ein Risiko besteht, dass sich die KI bei bestimmten Eingaben unerwartet oder fehlerhaft verhalten wird verhält. Eine Fehlerwahrscheinlichkeit bleibt auch bei perfekter Test-Performance bestehen, bzw. selbst dann, wenn sich die KI bereits unter beliebig vielen neuen Situationen richtig verhalten hat. Falls Fehlentscheidungen schwerwiegende Konsequenzen haben können, ist es wichtig als Organisation solches Verhalten antizipieren, erkennen, abfangen und ggf. berichtigen zu können. Aus diesem Grund bietet es sich in solchen Fällen an, die Funktion der KI von einem Menschen überwachen zu lassen.</p>
</details>
</div>
<br>
(text-style: "underline", "bold") [Hinweis:] Dokumentieren Sie sämtliche Maßnahmen die Sie umgesetzt haben und die Gründe für diese Entscheidungen. Dies hilft die Transparenz der Entwicklung zu verbessern, sie besser nachzuverfolgen und evtl. Bugs im Laufe des Projekts leichter zu lokalisieren.\
<br>
<br>
Sollen Menschen bei ihrer Arbeit mit dem fertigen KI-System interagieren?
<br>
''Ja'', ich möchte einen Mensch-KI Hybrid und mache mir Gedanken um die [[Relevanz der Erklärbarkeit der Ergebnisse->Relevanz der Erklärbarkeit der Ergebnisse]].\
<br>
''Nein'', ich möchte eine autarke KI, weiter zum [[Nachtrainieren der KI->KI Nachtrainieren?]].}
$lifecycle_overview\
\$add_page$humaine_logo\
=><=
##XAI Developer Tool
<==>
Entwicklerseitige XAI für die Entwicklung, Validierung und Wartung von KI-Modellen stellt einen Werkzeugkasten dar, um KI zu verstehen, zu debuggen und die Entscheidungslogik der KI zu verifizieren.
''Debugging'' XAI ermöglicht es, genauer die Performanz einer KI auszuschlüßeln um mögliche Schwächen noch während der Entwicklung der KI zu erkennen und zu beheben.
So ist es nicht nur möglich, die Genauigkeit des Modells über alle Daten zu bestimmen, sondern auch Teilmengen von Daten zu identifizieren, die Probleme bereiten, oder schneller Modellierungsentscheidungen zu treffen, die besser auf die Datendomäne und die Problemstellung abgestimmt sind. XAI ermöglicht es auch, Probleme mit den Daten zu entdecken und zu beheben um eine ausreichende Modellqualität zu gewährleisten.
''Monitoring'' Nach dem Deployment erlauben Techniken wie Drift Detection ($cite_link: "`[1]`", "https://www.fiddler.ai/blog/how-to-detect-data-drift") und Ausreißererkennung ($cite_link: "`[2]`", "http://arxiv.org/abs/2110.14051") zusammen mit der Visualisierung der Modellinferenz auf neuen Daten zu verstehen, ob das Modell auf den aktuellen Daten noch hinreichend funktioniert.
''Zurück'' zur [[XAI Toolbox->XAI Toolbox Overview]]
''Fortfahren'', weiter mit [[Auswahl von XAI Lösungen->XAI Selection Tool]].
$lifecycle_overview
<br>
<br>
<==
(text-style: "underline") [Quellen:]
`[1]`: A. Paka, ($cite_link: "“How to Detect Model Drift in ML Monitoring”", "https://www.fiddler.ai/blog/how-to-detect-data-drift"), Fiddler AI, (2020)
`[2]`: M. Salehi, H. Mirzaei, D. Hendrycks, Y. Li, M. H. Rohban and M. Sabokrou. ($cite_link: "“A Unified Survey on Anomaly, Novelty, Open-Set, and Out-of-Distribution Detection: Solutions and Future Challenges.”", "http://arxiv.org/abs/2110.14051") arXiv pre-print, (2022)\
\$add_page=><=
##Feature Engineering
<==>
{
####Warum ist Feature Engineering wichtig?
* Genauso wie die Qualität des fertig trainierten Modells von der Güte der Daten abhängt, so ist es ebenso sehr von der Aussagekraft der darin enthaltenen Features abhängig. Feature Engineering beschreibt die Methoden, die für die Auswahl und Rekombination von Features verwendet werden, um eine bestmögliche Repräsentation der Daten für das anschließende Training zu erhalten.
####Schritte, die im Feature Engineering relevant sind.
* Feature Selection
** Der Zweck von Feature Selection ist es, irrelevante und redundante Features zu identifizieren und zu eliminieren, während wichtige Features beibehalten werden.
** Das beschleunigt die Trainingszeit des Modells. Außerdem verbessert es seinen Output, weil nur auf den wichtigen/aussagekräftigen Daten trainiert wird.
** Es existieren zahlreiche Maßzahlen um das umzusetzen. Pearson's Correlation Coefficient, Chi-Squared test, oder Mutual Information sind nur einige davon.
* Feature Construction
** Dies ist ein Prozess, der neue Features aus den ursprünglichen konstruiert, um die Robustheit und Generalisierbarkeit des Modells zu erhöhen. Insgesamt wird so versucht, die ursprünglichen Features zu verbessern und noch repräsentativer zu gestalten.
** Verfahren wie Standardisierung, Normalisierung oder Diskretisierung (teils bereits in Data Preprocessing beinhaltet), werden häufig genutzt.
** Insgesamt können verschiedene mathematische Operatoren (wie Divison, Multiplikation, Addition usw.) genutzt werden, um verschiedene Features miteinander zu kombinieren und somit neue zu generieren.
* Feature Extraction
** Hier wird versucht die Dimensionalität der Features zu reduzieren, indem verschiedene Mapping Funktionen genutzt werden. Einige der populärsten sind die Principal Component Analysis (PCA) für lineare Zusammenhänge in den Daten, sowie Autoencoder für nichtlineare Zusammenhänge.
** Neuronale Netze tendieren dazu die, für die Lösung der Aufgabenstellung nützlichen, Informationen aus den Daten zu extrahieren und diese in geeigneten Features abbzubilden. Dadurch könnte das Feature-Engineering (teilweise) automatisiert werden.
** Ähnlich wie bei der Feature Selection werden verschiedene Metriken genutzt, um den Datensatz auf aussagekräftige und nicht-redundante Features zu beschränken.
** Anders als bei der Feature Selection werden hier die originalen Features verändert.
<br>
Mit Verfahren wie Feature Importance oder Partial Depence Plots ($cite_link: "`[2]`", "https://christophm.github.io/interpretable-ml-book/pdp.html") können Feature schließlich auf ihre Aussagekräftigkeit untersucht werden, um den Entwicklungsprozess zu unterstützen. Näheres dazu finden Sie in der [[XAI Toolbox->XAI Toolbox Overview]].
<br>
Viele dieser Schritte können mittels Algorithmen automatisiert werden. Näheres dazu finden Sie in der [[AutoML Toolbox->AutoML Toolbox]].
<br>
In der Arbeit von Verdonck et al. ($cite_link: "`[1]`", "https://doi.org/10.1016/j.knosys.2020.106622") werden zahlreiche Paper für die unterschiedlichen Datentypen, wie bspw. Zeitserien, Netzwerkdaten, Multimedia Daten, Textdaten und räumliche Daten, in Bezug auf die jeweiligen Formen des Feature Engineerings aufgelistet.
<br>
Ich möchte mehr zu $developer_col[$target_symbol] [[Data Preprocessing->Preprocessing]] erfahren.}
$lifecycle_overview
<br>
<br>
<==
(text-style: "underline") [Quellen:]
`[1]`: Verdonck, T., Baesens, B., Óskarsdóttir, M., vanden Broucke, S., ($cite_link: "“Special issue on feature engineering editorial”", "https://doi.org/10.1016/j.knosys.2020.106622"), Mach Learn (2021)
`[2]`: Molnar, C., ($cite_link: "Interpretable Machine Learning: A Guide For Making Black Box Models Explainable", "https://christophm.github.io/interpretable-ml-book/pdp.html") (2022) \
\$add_page=><=
##Human-in-the-loop
<==>
{Human-in-the-loop (HITL) beschreibt die Interaktion zwischen Menschen und Machine Learning Algorithmen. Die Vorteile die diese hybriden Lösungen von reinen KI-Lösungen auf einer case-to-case Basis abheben, sind nicht nur verbesserte Genauigkeiten des Systems, oder dass das Modell schneller trainiert wird, sondern auch, dass der Mensch in letzter Konsequenz zu effektiverer bzw. effizienterer Arbeit im Gesamtkontext des Unternehmens befähigt wird. Darüber hinaus besteht ein weiterer Vorteil in dem größeren Vertrauen welches dem letztlichen System entgegengebracht wird, wenn Menschen aktiv in die Arbeit mit der KI einbezogen werden, anstelle einer gänzlich autark agierenden KI.
<br>
Demgegenüber stehen natürlich ebenso Nachteile denen man sich bewusst sein muss. Wenn ein System inhärent auf eine Zusammenarbeit mit dem Menschen ausgerichtet werden soll, so macht dies die Entwicklung meist komplexer. Besonders wenn es um die Gestaltung der Schnittstelle geht. In Abhängigkeit der Nutzerintegration agiert das Gesamtsystem u.U. langsamer als eine voll automatisierte KI im Deployment. Zudem muss nun der Mensch selbst als Fehlerquelle in Betracht gezogen werden.
<br>
Die letztliche Entscheidung welcher Ansatz sich lohnt zu verfolgen, ist abhängig von Überlegungen die weiter im Deployment Teil dieses Guides ausgearbeitet werden. Zusätzlich empfiehlt es sich die Literatur für die gegenwärtige Problemstellung anzuschauen und zu sehen, ob reine KI-Lösungen hinsichtlich der Genauigkeit bessere Lösungen liefern als die im Nachgang vorgestellten Mensch-KI Hybriden. Man sollte jedoch beachten, dass die Genauigkeit u.U. nicht das alleinige Entscheidungskriterium darstellt anhand dessen die Wahl der KI erfolgen sollte. Siehe hierzu die Auflistung verschiedener potenzieller Metriken im [[allgemeinen Konzeptionsteil->KI-Konzeption]] dieses Guides.
<br>
An dieser Stelle werden nun einige Konzepte von Human-in-the-loop Ansätzen und deren Inhalte näher vorgestellt.
<br>
In Abhängigkeit, welche Partei die Kontrolle über den Lernprozess hat, können generell drei verschiedene Ansätze für HITL unterschieden werden ($cite_link: "`[1]`", "https://ieeexplore.ieee.org/document/9156175").
Im Folgenden werden die unterschiedlichen Ansätze hinsichtlich ihrer Vor- und Nachteile, sowie einiger ihrer grundlegenden Funktionsweisen etwas näher beleuchtet. Weiterführende Informationen können der Arbeit von Mosqueira-Rey et al. ($cite_link: "`[2]`", "https://ieeexplore.ieee.org/document/9156175") entnommen werden.
<br>
<div style="margin-left: 20px">
<details>
<summary>Active Learning (AL)</summary>
Hierbei bleibt das System in Kontrolle über den Lernprozess und behandelt den Menschen als Lehrer, der die ungelabelten Daten annotiert.
* Durch die Zuarbeit des Menschen werden weniger Labels benötigt.
* Ist besonders empfehlenswert in Situationen wo es eine Vielzahl ungelabelter Daten gibt, aber die Annotation entweder teuer, oder zeitaufwendig ist.
* Die Datenpunkte werden in einem iterativen Prozess nach einer bestimmten Strategie ausgesucht, so dass insgesamt die Menge an annotierten Daten sinkt, während die Genauigkeit verbessert, mindestens jedoch beibehalten wird.
* Gemäß Munro ($cite_link: "`[3]`", "https://www.manning.com/books/human-in-the-loop-machine-learning") existieren drei Sampling Strategien, nach denen man neue Datenpunkte für die Annotation aussuchen kann:
** Random: Die Daten werden zufällig ausgesucht.
** Uncertainty sampling: Wird auch als „Exploitation” Verfahren bezeichnet. Wählt diejenigen Klassen aus welche die geringste Label Gewissheit für das momentane Modell aufweisen.
** Diversity sampling: Wird auch als „Exploration“ bezeichnet. Hier werden ungelabelte Daten ausgesucht, die selten oder bisher gar nicht in den Trainingsdaten aufgetaucht sind und erhöht damit insgesamt den Anwendungsbereich der KI.
* Rubens et al. ($cite_link: "`[4]`", "https://www.researchgate.net/publication/296481444_Active_Learning_in_Recommender_Systems") haben zwei generelle Ansätze identifiziert welche Menge an neuen Daten gesampelt werden kann:
** Batch: Mehrere Samples werden gelabelt ehe das Modell weiter trainiert wird. Dieser Ansatz birgt Vorteile hinsichtlich einer rechnerischen Effizienz, sowie dem nötigen Ausmaß an Interaktion mit dem Menschen.
** Sequential: Die KI wird nach jeder einzelnen Annotation trainiert. Hierbei wird dem User ein direktes Feedback seiner Entscheidungen gegeben, was gemäß der eigenen Erfordernisse im Projekt ggf. notwendig ist.
* Nachteile wie mögliche Biases der menschlichen Labeler, deren Ungenauigkeit bei ihrer Arbeit und dem nachfolgenden negativen Einfluss auf das Modell, eine ungünstig gewählte Sampling Strategie, oder auch Modelle die inhärent eine sehr hohe Anzahl von Datenpunkten für ihr Training benötigen sind einige der Probleme die dieses Verfahren situativ unbrauchbar machen können.
Näheres zu Active Learning finden Sie in der [[Active Learning Toolbox->Active Learning Toolbox]].
</details>
<br>
<details>
<summary>Interactive Machine Learning (IML)</summary>
Hier besteht eine engere bzw. direktere Interaktion zwischen Nutzer und KI im Vergleich zum herkömmlichen Machine Learning. Die Informationen werden vom Menschen gezielter, häufiger und in kleineren Schritten interaktiv bereitgestellt.
* Das Ziel von IML und einer der Vorteile besteht darin, dass eine breite Palette an Usern, wie etwa ML Experten, Datenwissenschaftler oder Domänenexperten in die Lage versetzt werden mit der letztlichen KI zu interagieren.
* Ein großer Unterschied zwischen IML und herkömmlichem ML besteht darin, wie die KI upgedatet wird. Im Falle von IML ist es schneller (reagiert mehr oder weniger sofort auf den User Input), gezielt (ist auf bestimmten Teil des Modells begrenzt) und erfolgt schrittweise (inkrementell).
* Grundsätzlich ist IML dem AL konzeptionell sehr ähnlich. In der Tat bildet das AL die Basis für IML.
* Der Unterschied liegt mehr darin begründet wer die letztliche Kontrolle über den Lernprozess besitzt. Bei AL ist es der Algorithmus, bei IML der Mensch.
* Da die Interaktion bei IML stärker ausgeprägt ist, sind hier auch die Techniken der Mensch-Maschine Interaktion (HCI) relevanter.
* Tatsächlich ist ein Hauptbestandteil von IML das User Interface, welches maßgeblich bestimmt wie der User einbezogen werden kann.
* Auch beschränkt sich die Aufgabe der Nutzer beim IML nicht einfach nur darauf Daten zu annotieren.
* Hier eine kurze Auflistung möglicher Zuarbeiten des Menschen:
** Daten annotieren.
** Diejenigen Features identifizieren und aussuchen die einem am wichtigsten sind.
** User können Feedback geben über Modellvorhersagen und ggf. falsche Klassifikationen verbessern.
** Wenn sich das Modell unsicher ist, kann der User Feedback über die richtige Lösung geben und somit das Modell besser machen.
** User können aktiv bestimmen welche Labels die Samples verwenden sollen.
** User können eigene Regeln definieren denen das Modell folgen soll, wie etwa ethische Richtlinien oder domänenspezifische Einschränkungen.
* Da es viel mit AL gemeinsam hat, teilt IML naturgemäß auch viele seiner Nachteile, bzw. Herausforderungen und verstärkt sie teils aufgrund seiner zu Grunde liegenden Konzepte noch mehr. So ist etwa der Mensch, durch seine stärkere Einbindung bei IML ein noch größerer potenzieller Störfaktor, der bspw. durch Biases oder auch schlechte Performance insgesamt die Leistung des Systems stärker negativ beeinflussen kann. Darüber hinaus ist die Thematik der HCI viel drängender mit den ihr eigenen speziellen Herausforderungen.
</details>
<br>
<details>
<summary>Machine Teaching (MT)</summary>
Hierbei bleiben die Domänenexperten in Kontrolle über den Lernprozess, indem sie das Wissen begrenzen, welches sie an die KI weitergeben.
* Besitzt eine breite Palette an Definitionen, beschreibt im Allgemeinen aber das Verhältnis eines Lehrers (Mensch) der der KI etwas beibringt.
* Anstelle des Menschen verbreitet sich mittlerweile auch das Konzept, dass Maschinen die Rolle des Lehrers einnehmen.
* Im Gegensatz zu Machine Learning, wo versucht wird die Genauigkeit des Lerners (KI) zu erhöhen, konzentriert sich Machine Teaching darauf die Wirksamkeit des Lehrers (Menschen) zu verbessern.
* Die Metriken um hierbei die Leistung des Lehrers zu messen umfassen:
** Produktivität: Damit ist die Effizienz gemeint effektive Datensätze bzw. Strategien zu erzeugen.
** Interpretierbarkeit: Der Lehrer soll für Menschen verständliche Erklärungen erzeugen.
** Robustheit: Bezieht sich auf die Fähigkeit des Lehrers Datensätze bzw. Strategien zu erzeugen die in Modellen resultieren, die selbst bei schwierigen bzw. herausfordernden Situationen zuverlässig agieren.
** Skalieren mit der Komplexität des Problems oder der Anzahl der Beitragenden: Bedeutet, dass die Lehrer effektiv ihre Lehrstrategien gemäß der variablen Komplexität der Probleme, oder aber der Anzahl an weiteren Lehrenden adaptieren können.
* Im besonderen Fokus dieses Ansatzes steht, dass Personen die nicht primär Machine Learning Kenntnisse besitzen, trotz allem effektiv mit in den Trainingsprozess der KI eingebunden werden und eine wirksame Rolle als Lehrer im Prozess einnehmen können .
* Laut Zhu et al. ($cite_link: "`[5]`", "https://arxiv.org/abs/1801.05927") gibt es zwei Arten wie Informationen an die KI übermittelt werden können:
** Batch teaching: Hierbei gibt der Lehrer der KI ein Trainingsset, wobei die Ordnung der Samples irrelevant ist und diese auch mehrmals im Datensatz vorkommen können.
** Sequential teaching: Hierbei lernt die KI sequenziell und die Ordnung spielt eine Rolle, in der sie die Trainingsinformationen vom Lehrer bereitgestellt bekommt.
* Ein typischer Prozess des Machine Teaching sieht folgendermaßen aus:
** Der Lehrer beginnt indem er das Trainingsset erkundet und dann Labels und Features hinzufügen und editieren kann.
** Diese Features werden verwendet um die KI zu trainieren.
** Falls es notwendig wird Fehler zu beheben, wie etwa falsche Labels, oder representation Errors, kann der Lehrer zurückgehen und diese beheben indem er neue Labels bzw. Features hinzufügt oder editiert.
** Der Lehrer bewertet die Vorhersagen des Modells und kann auf Basis der Ergebnisse ggf. Anpassungen an den Daten oder an der KI treffen.
** Dieser Vorgang ist iterativ und läuft so lange, bis entweder eine festgesetzte Bedingung erreicht, oder vom Lehrer manuell abgebrochen wird.
* Ein prominentes Konzept welches sich aus dem Machine Teaching herausgebildet hat, ist das Automated Machine Learning (AutoML). Näheres zu AutoML finden sie in der [[Automated Machine Learning Toolbox->AutoML Toolbox]].
* Alternativ zu dem Ansatz wo Menschen als Lehrer fungieren, gibt es auch Ansätze die Maschinen als Lehrer einsetzen. Da dieser Ansatz allerdings nicht mehr dem Sinn von Human-in-the-loop entspricht, sei an dieser Stelle lediglich auf die Arbeit von Mosqueira-Rey et al. ($cite_link: "`[2]`", "https://ieeexplore.ieee.org/document/9156175") verwiesen, die diese Konzepte übersichtlich behandelt.
</details>
</div>
<br>
Daneben existiert noch eine weitere Art, wie der Mensch in den Lernprozess aktiv integriert werden kann, welche nicht über die Zuständigkeiten der jeweiligen Partei definiert wird.
Hierbei handelt es sich um das sog. Curriculum Learning (CL), welches sich darauf konzentriert, die Trainingsdaten in einer bestimmten Art und Weise zu strukturieren, die das Lernen beschleunigen und verbessern soll.
<br>
Bei jeglicher Form der hier vorgestellten Zusammenarbeit ist nicht nur relevant wie die Interaktion möglichst reibungslos gestaltet werden kann, sondern vor allem auch, ob der Mensch die von der KI präsentierten Ergebnisse überhaupt versteht. Diese Forschungsrichtung wird als Explainable AI (XAI) bezeichnet und wird in Bezug auf die Anfordernisse auf Entwickler- und Anwenderseite in der [[XAI Toolbox->XAI Toolbox Overview]] dieses Ratgebers beleuchtet.
<br>
<br>
''Zurück'', zum [[Model Design->Model Design]].\
$lifecycle_overview}
<br>
<br>
<==
(text-style: "underline") [Quellen:]
`[1]`: Holmberg, L., Davidsson, P., Linde, P., ($cite_link: "“A feature space focus in machine teaching”", "https://ieeexplore.ieee.org/document/9156175"), IEEE international conference on pervasive computing and communications workshops (PerCom Workshops), 1–2, (2020)
`[2]`: Mosqueira-Rey, E., Hernández-Pereira, E., Alonso-Ríos, D., Bobes-Bascarán, J., Fernández-Leal, A., ($cite_link: "“Human-in-the-loop machine learning: a state of the art”", "https://link.springer.com/article/10.1007/s10462-022-10246-w"), Artif Intell Rev 56, 3005–3054 (2023)
`[3]`: Munro, R., ($cite_link: "“Human-in-the-loop machine learning”", "https://www.manning.com/books/human-in-the-loop-machine-learning"), Manning Publications, Shelter Island (2020)
`[4]`: Rubens, N., Elahi, M., Sugiyama, M., Kaplan, D., ($cite_link: "“A feature space focus in machine teaching”", "https://www.researchgate.net/publication/296481444_Active_Learning_in_Recommender_Systems"), Ricci F, Rokach L, Shapira B (eds) Recommender systems handbook. Springer, Boston, pp 809–846 (2015)
`[5]`: Zhu, X., Singla, A., Zilles, S., Rafferty, A. N., ($cite_link: "“An Overview of Machine Teaching”", "https://arxiv.org/abs/1801.05927"), arXiv:1801.05927 `[cs.LG]` (2018)\
\$add_page=><=
##Nutzungshinweise
<==>
{
//tachAId// basiert auf einem explorativen Interaktionsdesign.
Die Navigation durch //tachAId// erfolgt projektspezifisch und bedarfsorientiert: Inhalte können gezielt angesteuert und angezeigt werden, je nachdem, ob sie für das eigene KI-Entwicklungsprojekt relevant sind.
}
''Navigation in //tachAId//''
{<p style="margin-bottom: -0.5em;">(css: "display: block;")[
$link_col[Übergänge] zwischen den Seiten werden in $link_col[hellgrün] dargestellt.
Alle folgenden Inhalte, die so formatiert sind, beinhalten einen interaktiven Übergang.
Diese Übergänge können angeklickt werden und bringen Sie zum entsprechenden Inhalt.
Auch werden ausklappbare Passagen verwendet. Diese sind ebenfalls in entprechendem Grün formatiert und lassen sich per Mausklick ausklappen.
<br>
<details style="margin-left: 30px">\
<summary>Beispiel eines ausklappbaren Elements</summary>\
* Beispielhafter Inhalt.\
</details>
<br>
Am linken Rand befindet sich ein dynamisches Navigations-Menü.
Mit dessen Hilfe können Sie gezielt Abschnitte ansteuern, ohne durch den nicht-linearen Verlauf des Tools navigieren zu müssen.
Ebenfalls werden hier bis zu zwei Pfeile angezeigt.
Der Pfeil nach links führt Sie zur vorherigen Seite und der Pfeil nach rechts macht diese Aktion rückgängig.
Mit deren Hilfe können Sie auf die zuvor besuchten Seiten zurückspringen, oder diese Aktion wieder rückgängig machen.\
]</p>}\
\
\
''Lesefortschritt''
{<p style="margin-bottom: -0.5em;">In der Legende des Menüs wird ein Fortschrittsbalken angezeigt. Dieser zeigt Ihnen, wie viel des verfügbaren Inhalts Sie bereits besucht haben. Haben Sie alle Inhalte besucht, ändert sich die Farbe diese Balkens von lila auf grün: \
(css: "margin-bottom: 0px;")[
<div id="progressbar" style="width: 10%; display: inline-block; vertical-align: middle;">
<div class="bar"> </div>
</div>
] {→}
(css: "margin-bottom: 0px;")[
<div id="progressbar" style="width: 10%; display: inline-block; vertical-align: middle;">
<div class="bar" style="width: 100%; background-color: #80CC28"> </div>
</div>
].
Sie können zusätzlich mit dem Mauszeiger über diesen Balken hovern, um einen Hinweis zu erhalten, welche Inhalte Sie noch nicht besucht haben.
</p>}\
\
''Farbschema für Zielgruppen''
{<p style="margin-bottom: -0.5em;">
Die nachfolgenden Informationen im Tool richten sich primär an die Personen, die an der Entwicklung beteiligt sind, aber auch an Entscheidungsträger.
Häufig ist aber eine klare Trennung zwischen diesen beiden Blickwinkeln kaum möglich.
An den Stellen, wo es möglich ist, wird folgendes Farbschema verwendet, um die Perspektiven zu unterscheiden:
<br>
$decision_maker_col[$target_symbol Blau: ] Diese Inhalte richten sich hauptsächlich an Personen, die $decision_maker_col[<b>strategische Entscheidungen</b>] treffen.
<br>
$developer_col[$target_symbol Orange: ] Diese Inhalte richten sich hauptsächlich an Personen, die für die $developer_col[<b>technische Umsetzung</b>] verantwortlich sind.</p>
</p<>}\
\
''HUMAINE-Schwerpunkt''
<p><img src="https://humaine.info/wp-content/uploads/2021/08/Humaine-Logo.png" style="margin: .5em;" width="150">
Dieses Symbol kennzeichnet Inhalte in //tachAId//, die die besondere Expertise von HUMAINE an den entsprechenden Stellen hervorheben.
</p>
''Weiter'' zur [[Übersicht des KI-Lifecycle->KI-Lifecycle]].\
\$add_page
(set: $sidebar_visible_flag to true)=><=
##Konzeptionelle Fragen und Hinweise
<==>
Bevor Sie sich in die technischen Details der KI-Entwicklung vertiefen, ist es entscheidend, einige grundlegende konzeptionelle Fragen zu beantworten und wichtige Hinweise zu beachten. Diese Überlegungen bilden das Fundament für eine menschenzentrierte KI-Entwicklung und helfen Ihnen, potenzielle Herausforderungen frühzeitig zu erkennen und zu meistern. Die folgenden Punkte werden Ihnen dabei helfen, einen ganzheitlichen Blick auf Ihr KI-Projekt zu werfen und sicherzustellen, dass Sie alle wichtigen Aspekte berücksichtigen.
{
<details style="margin-left: 30px">
<summary>Allgemeine Hinweise</summary>\
<p>Die Implementierung einer KI wird unweigerlich Änderungen in anderen Teilaspekten ihrer Organisation bewirken und auf diese Einfluss nehmen. Eine Vielzahl von teils scheinbar unkorrelierten und oftmals nicht beachteten Faktoren können hierbei über das Gelingen und Scheitern der erfolgreichen Umsetzung des neuen Systems entscheiden. Nachfolgend ist eine kurze Auflistung von generellen Problemfeldern die adressiert werden müssen, deren genauere Bedeutung im Verlauf dieses Ratgebers an gegebener Stelle näher erläutert und konkrete Lösungsvorschläge gegeben werden:
* Datenmanagement
** Dies umfasst sämtliche Aspekte, angefangen von der Datenbeschaffung, bis hin zur Dokumentation welche Personen Zugriff auf die Daten haben.
* Wohlergehen des Einzelnen, der Organisation und darüber hinaus
** Beinhaltet die Chancen und Risiken wie die KI Einfluss auf die Nutzer, die Organisation und die Gesellschaft im Allgemeinen nimmt.
* Diversität, Gleichberechtigung und Fairness
** Macht die Relevanz einer inklusiven, gleichberechtigten KI-Entwicklung, welche u.a. frei von geschlechterspezifischen, sprachspezifischen und bildungsspezifischen Vorurteilen ist deutlich und auf dem Feedback aller Stakeholder beruht.
* Verantwortlichkeiten und Recht
** Handelt von den Pflichten und Rechten bei der Zusammenarbeit mit KI.
* Technische Robustheit, Sicherheit und Leistung
** Umfasst geeignete Mittel und Wege um eine sichere, stabile und leistungsfähige KI zu entwickeln.
* Handlungsmacht und Kontrolle durch den Menschen über die KI
** Adressiert die Balance zwischen Automatisierung und menschlicher Aufsicht.
* Transparenz
** Umfasst verschieden Teilaspekte die versuchen ein tieferes Verständnis der KI zu ermöglichen und damit Vertrauen aufzubauen.
* Nutzerakzeptanz und -einsatzbereitschaft
** Beinhaltet Strategien die die Annahme des Systems und dessen Einsatz seitens der Nutzer vereinfachen soll.</p>
</details>
<br>
<details style="margin-left: 30px">
<summary>Konzeptionelle Hinweise</summary>\
<p>''Soll die Entwicklung der KI im eigenen Haus oder extern erfolgen?''
(css: "display: block; margin-left: 30px;")[\
Beide Ansätze besitzen ihre Vor- und Nachteile. Die In-house-Entwicklung kann hierbei als Umkehrschluss der Argumente des Outsourcings verstanden werden. Aus diesem Grund werden nachfolgend lediglich einige Faktoren der KI-Entwicklung außer Haus beleuchtet.
Eine ausgelagerte KI-Entwicklung bietet sich besonders dann an, wenn keine eigene Expertise in der Organisation vorhanden ist, die eine hinreichend gute Entwicklung gewährleistet. Vor diesem Hintergrund können ebenfalls erhebliche Kosten eingespart werden die gegebenenfalls anfallen, wenn ein eigenes Team erst ausgebildet, bzw. eingestellt werden muss. Zu diesen Kosten zählen ebenfalls die notwendige Infrastruktur und Software Tools. Eine externe Entwicklung bietet ebenfalls den Vorteil einer weiteren Perspektive auf die Problematik, welche möglicherweise in einem innovativen und verbesserten Ansatz resultiert.
Diesen Vorteilen stehen einige Nachteile gegenüber. Das Outsourcing ist in besonderem Maße von der Verständigung der teilhabenden Parteien abhängig. Nur durch klare Kommunikation der Ziele, Wünsche und Bedürfnisse des auftraggebenden Akteurs, sowie der Vermittlung möglicher Limitierungen, konkreten Umsetzung und Herausforderungen die sich im Umgang mit der KI ergeben seitens des ausführenden Akteurs kann eine erfolgreiche Bearbeitung der Aufgabenstellung erfolgen. Darüber hinaus sollten Faktoren wie mögliche schwankende Qualität und Expertise der in Auftrag genommenen Firmen, sowie ggf. Bedenken hinsichtlich der Datensicherheit und -vertraulichkeit Beachtung geschenkt werden. Besonders im Hinblick auf die Herausforderungen einer humanzentrierten KI-Entwicklung könnten Externe bei mangelnder Absprache unter Umständen einen rein daten- bzw. technologiebasierten Ansatz verfolgen, welcher die speziellen Anforderungen der beteiligten Stakeholder, wie bspw. der Zwang nach einer Erklärbarkeit der KI-Ergebnisse, außer Acht lässt.
]
<br>
''In welche Prozesse bzw. Anwendungen soll die KI integriert werden?''
(css: "display: block; margin-left: 30px;")[\
Aus der Klärung des Bedarfs, aber auch der Kompetenzen und Fähigkeiten der unterschiedlichen Endanwender der KI, können funktionelle Erfordernisse und Leistungsmetriken, denen sie genügen soll, abgeleitet werden. Stehen bei der KI-Entwicklung jedoch weder die nötige Expertise, ausgereifte Datensätze, Modellarchitekturen bzw. Trainings- und Evaluationsprotokolle zur Verfügung, erschwert dies die Einschätzung, welche Funktionen und Leistungen die KI tatsächlich liefern kann. Es empfiehlt sich daher insbesondere Schnittstellen und ggf. das Prozessdesign erst anzugehen, nachdem die theoretische Wissensbasis geschaffen, bzw. die KI entwickelt und evaluiert wurde.
]\
<br>
''Gibt es eine von allen Stakeholdern geteilte Vision von der Rolle der KI und werden sie mit einbezogen?''
(css: "display: block; margin-left: 30px;")[\
In vielen Fällen berührt die Implementierung einer KI-Lösung innerhalb eines Unternehmens viele verschiedene Geschäftsbereiche desselbigen, auch wenn es nur indirekt geschieht. Aus diesem Grund ist es essentiell, dass im Voraus genau durchdacht wird, in welcher Art und Weise die KI Einfluss auf die Organisation nehmen wird bzw. kann. Oft werden bspw. bereits bestehende Workflows und Prozesse geändert, die nun neu angepasst werden müssen. Nachdem die relevanten Tätigkeitsfelder, Workflows und Prozess, und damit einhergehend die dazugehörigen Stakeholder identifiziert wurden, ist es wichtig, diese mit in den Prozess der KI-Entwicklung frühzeitig mit einzubeziehen. Dies birgt gleich mehrere Vorteile und vermindert gleichzeitig potenzielle Risiken.
Beispielsweise kann durch das Berücksichtigen verschiedener Stakeholder deren Perspektive, Expertise und Erwartung an die KI maßgeblich genutzt werden um die Entwicklung selbiger an die genannten Aspekte anzupassen und somit zu gewährleisten, dass keine der betroffenen Personen bzw. Gruppen benachteiligt werden. Gleichzeitig können potenzielle Änderungen in der Organisationsstruktur bereits von Beginn besser vorbereitet und umgesetzt werden, so dass keine nachträglichen, ungewollten Anpassungsiterationen erfolgen müssen.
Durch Einbeziehen der Stakeholder, im Besonderen der Endanwender, wird gewährleistet, dass die letztliche Lösung exakt auf deren Vorstellungen und speziellen Herausforderungen abgestimmt wird und keine Unklarheiten bspw. bzgl. des Leistungsumfangs aufkommen. Zur selben Zeit können somit auch gleich eventuelle Vorbehalte gegenüber dem neuen System abgebaut werden.
Es gibt mehrere Möglichkeiten wie die Stakeholder mit in den Entwicklungsprozess einbezogen werden können. Regelmäßige Workshops oder Meetings, in denen Repräsentanten der relevanten Unternehmensstrukturen präsent sind und ihre Vorstellungen, Wünsche und Befürchtungen kommunizieren können, sind eine Alternative. Weiterhin ist es möglich Feedback via Umfragen oder Fokusgruppen einzuholen. Auch sollte allzeit eine direkte und offene Kommunikation mit den Verantwortlichen für die Entwicklung ermöglicht werden.
]\
<br>
''Gibt es klar definierte Schlüsselkennzahlen (KPIs) für den Arbeitsprozess mit der KI bzw. das soziotechnische System?''
(css: "display: block; margin-left: 30px;")[\
Eine Vielzahl von Gründen spricht für die klare Definition aussagekräftiger KPIs. Zunächst bilden sie die Entscheidungsgrundlage, ob überhaupt eine Umstellung bestehender Prozesse hin zu einem KI-orientierten Ansatz erfolgen soll. Sie sind das Maß, anhand dessen nicht nur die Güte der letztlichen KI an sich, sondern auch deren Umsetzung insgesamt im Unternehmen bewertet wird, sowie deren Übereinstimmung mit den übergeordneten Zielen desselbigen. Durch eine klare Definition ist es mögliche eindeutige Verantwortlichkeiten zu kreieren. KPIs ermöglichen es den laufenden Stand der Entwicklung des KI-Systems besser zu nachzuverfolgen und somit Transparenz und Vertrauen nicht nur unter den Entwickelnden, sondern auch unter den übrigen Stakeholdern zu schaffen. Gleichzeitig können sie sowohl als Hilfsmittel für die Entscheidung über die Zuteilung von Ressourcen innerhalb des Projekts, als auch des Risikomanagements dienen.
Es existiert eine mannigfaltige Anzahl an möglichen KPIs und die letztliche Auswahl ist abhängig von den konkreten individuellen Zielen des Unternehmens und kann sowohl vor einem eher technischen Hintergrund, als auch einem holistischen, eher unternehmensorientierten bzw. nutzerorientierten Blickwinkel betrachtet werden. Hier sind nur einige Beispiele:
]
<details>
<summary style="margin-left: 48px">$decision_maker_col[$target_symbol] Unternehmensrelevante bzw. nutzerorientierte KPIs</summary>
** Anwender Feedback
** Anzahl der Anwender
** Notwendige Zeit bis zur Beherrschung der KI
** Integration mit bestehenden Workflows
** Zeitersparnis bei bestehenden Prozessen
** Kostenersparnis
** Umsatz
** Auswirkungen auf die Umwelt (bspw. Energieffizienz)
** Sicherheit im Umgang mit dem System
** Vertrauen in die KI
</details>\
<details>
<summary style="margin-left: 48px">$developer_col[$target_symbol] Technische KPIs</summary>
** Genauigkeit und Präzision
** Recall und Sensitivität
** F1 Score
** Trainingszeit des Modells
** Nötige Zeit für Vorhersage
** Datenqualität
** Robustheit des Modells und dessen Generalisierbarkeit
** Erklärbarkeit des Modells
** Kontrolle über KI
** User Interface
</details>\
</details>\
<br>
<br>
''Zurück'', zu der [[KI Lifecycle Übersicht->KI-Lifecycle]].}\
\$add_page=><=
##KI-Lifecycle Übersicht
''Phasen der KI-Entwicklung''
<==>
Zuerst empfehlen wir, dass Sie allgemeine [[konzeptionelle Fragen und Hinweise->KI-Konzeption]] zur Situierung und Ausrichtung ihrer KI-Lösung durchgehen, sodass die Entwicklung Ihrer KI kontextsensitiv und praxisorientiert eingeleitet werden kann.\
{
<div class="circle-container" id="circle-container" style="float: right; text-align: left; position: relative;">\
[[<span class="button" id="button1">KI-Konzeption</span>->KI-Konzeption]]
[[<span class="button" id="button2">Data Collection</span>->Data Collection]]
[[<span class="button" id="button3">Pre-Modeling</span>->Pre-Modeling]]
[[<span class="button" id="button4">Model Design</span>->Model Design]]
[[<span class="button" id="button5">Deployment</span>->Deployment]]
<!-- Arrow elements -->
<div class="arrow" id="arrow1"></div>
<div class="arrow" id="arrow2"></div>
<div class="arrow" id="arrow3"></div>
<div class="arrow" id="arrow4"></div>
<div class="arrow" id="arrow5"></div>
</div>
<style>*, :before, :after {position: initial;}</style>\
\
<script>
const container = document.getElementById('circle-container');
const buttons = container.getElementsByClassName('button');
const arrows = container.getElementsByClassName('arrow');
const centerButton = buttons[0]; // Assuming the first button is the center button
const a = container.clientWidth * 0.5; // Semi-major axis (horizontal radius)
const b = container.clientHeight * 0.5; // Semi-minor axis (vertical radius)
const centerX = container.clientWidth / 2;
const centerY = container.clientHeight / 2;
// Define angles for the outer buttons
const angles = [270, 342, 54, 126, 198];
const angles_arrow = [306, 18, 90, 166, 234];
const angles_rot = [100, 90, 130, -90, -45];
const positions = [];
for (let i = 0; i < buttons.length; i++) {
const angle = angles[i] * (Math.PI / 180); // Convert to radians
const x = centerX + a * Math.cos(angle) - buttons[i].clientWidth / 2; // Use 'a' for x position
const y = centerY + b * Math.sin(angle) - buttons[i].clientHeight / 2; // Use 'b' for y position
buttons[i].style.left = `${x}px`;
buttons[i].style.top = `${y}px`;
positions.push({ x, y });
// Position the arrows
if (i < arrows.length) {
const diff = Math.abs(angles[(i + 1) % angles.length] - angles[i]) / 2;
const nextAngle = (angles_arrow[i]) * (Math.PI / 180);
const arrowX = centerX + (a) * Math.cos(nextAngle); // Use 'a' for x position
const arrowY = centerY + (b) * Math.sin(nextAngle);
arrows[i].style.left = `${arrowX}px`;
arrows[i].style.top = `${arrowY}px`;
// Rotate arrow towards the next button
const rotation = angles_rot[i] * (180 / Math.PI); // Convert radians to degrees
arrows[i].style.transform = `rotate(${rotation}deg)`; // Rotate to point rightward
}
}
// Position arrows between buttons
for (let i = 0; i < arrows.length; i++) {
const currentPos = positions[i];
const nextPos = positions[(i + 1) % positions.length]; // Wrap around to the first button for the last arrow
const diff = Math.abs(angles[(i + 1) % angles.length] - angles[i]) / 2;
const nextAngle = (angles_arrow[i]) * (Math.PI / 180);
const arrowX = centerX + (a + 2) * Math.cos(nextAngle); // Use 'a' for x position
const arrowY = centerY + (b + 2) * Math.sin(nextAngle);
arrows[i].style.left = `${arrowX}px`;
arrows[i].style.top = `${arrowY}px`;
// Calculate angle between two buttons using atan2
const deltaX = nextPos.x - currentPos.x;
const deltaY = nextPos.y - currentPos.y;
const angle = Math.atan2(deltaY, deltaX) * (180 / Math.PI); // Convert radians to degrees
// Rotate the arrow to point towards the next button
arrows[i].style.transform = `translate(-50%, -50%) rotate(${angle + 90}deg)`; // +90 to point the arrow properly
}
</script>\
}
''Welchen Schritt der KI-Entwicklung wollen sie humanzentriert gestalten?''\
<p>(css: "display: block;")[\
[[KI-Konzeption->KI-Konzeption]]: Welche Aufgaben soll die KI mit welchen Beteiligten lösen? Welche Fragen müssen beachtet werden, bevor die KI entwickelt wird?
[[Data Collection->Data Collection]]: Was für Daten braucht die KI, wie können sie beschafft werden und wie müssen sie vorliegen?
[[Pre-Modeling->Pre-Modeling]]: Wie müssen die Daten vorverarbeitet werden, um die KI zu trainieren? Wie sollen ($tooltip: "Features", "Werte die als Merkmale an die KI übergeben werden.") aus den Daten extrahiert werden?
[[Model Design->Model Design]]: Wie soll die KI-Architektur aufgebaut und konfiguriert werden?
[[Deployment->Deployment]]: Was ist für die Integration der KI in den organisationellen Rahmen zu beachten? Wie soll die Arbeit mit der KI aussehen und soll dem Endanwender ggf. erklärt werden, wie die KI zu ihren Entscheidungen kommt?
]
Sie können jederzeit wieder zu dieser Seite zurückkehren und sich auch zu den anderen Schritten des KI-Lifecycle beraten lassen.
</p>
''Schwerpunkte von //tachAId// : Toolboxes''
<p>Aus Gründen der Übersichtlichkeit und aufgrund der zahlreichen Einflüsse entlang des gesamten KI-Lebenszyklus wurden verschiedene Themenbereiche ausgegliedert und in den folgenden "Toolboxen" gebündelt.
(css: "display: block;")[\
{
<br>
<!-- Container using flex to align the items -->
<div style="display: flex; flex-wrap: wrap; background-color: white;">
<div style="display: flex; align-items: center; width: 48%; margin-bottom: 1em; padding: 10px;">
[[<span style="background-color: #80CC28; border-radius: 10px; padding: 10px; text-decoration: none; display: inline-flex; align-items: center;">
<img src="https://www.svgrepo.com/show/339333/machine-learning-06.svg"
style="width: 100px; transition: filter 0.1s ease; filter: invert(1);
display: block;"
onmouseover="this.style.filter='invert(0)';"
onmouseout="this.style.filter='invert(1)';">
</span>->AutoML Toolbox]]
<div style="margin-left: 0em; margin-right: 1em; align-items: right;">
<p>
[[Automated Machine Learning (AutoML):->AutoML Toolbox]]
<br>
Umfasst verschiedene Tools und Strategien zur Automatisierung diverser Aspekte des KI-Lifecycles.
</p>
</div>
</div>
<div style="display: flex; align-items: center; width: 48%; margin-bottom: 1em; padding: 10px;">
[[<span style="background-color: #80CC28; border-radius: 10px; padding: 10px; text-decoration: none; display: inline-flex; align-items: center;">
<img src="https://www.svgrepo.com/show/339703/ai-explainability.svg"
style="width: 100px; transition: filter 0.1s ease; filter: invert(1);
display: block;"
onmouseover="this.style.filter='invert(0)';"
onmouseout="this.style.filter='invert(1)';">
</span>->XAI Toolbox Overview]]\
<div style="margin-left: 0em; margin-right: 1em; align-items: right;">
<p>
[[Explainable Artificial Intelligence (XAI):->XAI Toolbox Overview]]
<br>
Umfasst verschiedene Strategien für die Implementierung von Erklärbarkeitsansätzen im KI-Modellierungsprozess.
</p>
</div>
</div>
<div style="display: flex; align-items: center; width: 48%; margin-bottom: 1em; padding: 10px;">
[[<span style="background-color: #80CC28; border-radius: 10px; padding: 10px; text-decoration: none; display: inline-flex; align-items: center;">
<img src="https://www.svgrepo.com/show/149497/teacher-teaching-maths.svg"
style="width: 100px; transition: filter 0.1s ease; filter: invert(1);
display: block;"
onmouseover="this.style.filter='invert(0)';"
onmouseout="this.style.filter='invert(1)';">
</span>->Active Learning Toolbox]]
<div style="margin-left: 0em; margin-right: 1em;">
<p>
[[Active Learning:->Active Learning Toolbox]]
<br>
Umfasst Strategien, um den Menschen als Lehrer im Trainingsprozess einzubinden, um ungelabelte Daten zu annotieren.
</p>
</div>
</div>
<div style="display: flex; align-items: center; width: 48%; margin-bottom: 1em; padding: 10px;">
[[<span style="background-color: #80CC28; border-radius: 10px; padding: 10px; text-decoration: none; display: inline-flex; align-items: center;">
<img src="https://www.svgrepo.com/show/339119/data-security.svg"
style="width: 100px; transition: filter 0.1s ease; filter: invert(1);
display: block;"
onmouseover="this.style.filter='invert(0)';"
onmouseout="this.style.filter='invert(1)';">
</span>->Datenschutz und Datensicherheit Overview]]
<div style="margin-left: 0em; margin-right: 1em;">
<p>
[[Datenschutz und Datensicherheit:->Datenschutz und Datensicherheit Overview]]
<br>
Umfasst Erklärungen und Konzepte rund um die Themen des Datenschutzes und der Datensicherheit.
</p>
</div>
</div>
</div>
}\
''User Interface Toolbox'': \
Umfasst verschiedene Strategien für die Konzeption eines auf die Nutzer angepassten User Interfaces, sowie der Erklärungen einiger spezieller Besonderheiten bei der Zusammenarbeit von Mensch und KI in diesem Kontext.
<details>\
<summary> Diese Seite befindet sich zurzeit im Aufbau.</summary>\
Folgende Inhalte, welche für die holistische Entwicklung einer menschzentrierten KI unabdingbar sind, sollen hier in Zukunft aufgelistet werden:
* Konkret soll auf die Bedeutung eines klar strukturierten und auf die Bedarfe der Anwender ausgerichteten User Interfaces (UIs) eingegangen werden.
** Hierzu sollen konkret die bestimmenden Faktoren im Umgang mit einer Nutzeroberfläche aufgelistet und populäre Umsetzungskonzepte besprochen werden.
* Es soll besonders auf die Notwendigkeit eines inklusiven Designs hingewiesen werden, damit alle Menschen unabhängig von ihren ethischen Hintergründen, Religion, Geschlecht, Alter, Wissensstand und weiteren möglichen Faktoren die Software ungeachtet individueller Merkmale uneingeschränkt nutzen können.
** In diesem Zuge werden ebenfalls wichtige Konzepte aufgelistet, die exakt diesem Designziel dienen.
* Im Sinne der im Designprozess enorm wichtigen Kommunikation aller betroffenen Stakeholder, soll hier ebenfalls auf die Relevanz der Etablierung eines geeigneten Rückkanals der User an die Entwickler angesprochen werden, der das Melden positiven, sowie im Besonderen negativen Feedbacks gestattet.
** Ultimativ soll dies der iterativen Verbesserung nicht nur der KI an sich, sondern auch der Schnittstelle mit den Nutzern zugutekommen.
* Zuletzt wird auf die Notwendigkeit hingewiesen, dass dem Nutzer klar kommuniziert werden muss, dass er mit einer KI arbeitet, diese nicht allmächtig und unfehlbar ist, er trotz allem aufmerksam seiner Arbeit nachgehen muss und welche Auswirkungen seine Entscheidungen auf den von ihm bearbeiteten Prozess haben.
Aufgrund der Komplexität der Thematik insgesamt und der einzelnen Schwerpunkte individuell, wird ebenfalls jeweils relevante weiterführende Literatur geliefert werden.\
</details>\
\
''Nutzerakzeptanz und Engagement Toolbox'': \
Umfasst Ideen und Anregungen um Nutzern die Zusammenarbeit mit der KI zu erleichtern und eine Einführung an der Wirkungsstätte zu begünstigen.\
<details>\
<summary>Diese Seite befindet sich zurzeit im Aufbau.</summary>\
In Zukunft sollen hier wichtige Informationen bezüglicher der Verbesserung der Nutzerakzeptanz kommen, Konzepte wie das Engagement der User im Umgang mit der KI erhöht werden kann, sowie Strategien wie Ihnen allgemein der Einstieg in die KI erleichtert wird.
Besonders bei der anfänglichen Einführung der KI in das Unternehmen, entscheiden diese Punkte oftmals über das Gelingen oder Scheitern der neuen Software. Aus diesem Grund ist es wichtig bei einer holistischen Betrachtung der Integration einer KI in das eigene Unternehmen über diese Dinge zu informieren.
</details>
]</p>\
\$add_page=><=
##Labeling
<==>
''Ist ein zufriedenstellender Plan für das Labeling vorhanden?''
{
Dinge, die beim Labeling zu beachten sind:
* Labels bzw. Annotationen (Bounding Boxes, Segmentierungen) müssen für den Trainingszweck passend gewählt sein.
* Labels müssen auf ihre Richtigkeit überprüft werden, da diese ausschlaggebend für die letztliche Qualität des trainierten Modells sind. Dies gilt besonders für Daten/Labels die aus externen Quellen stammen. D.h. die Etablierung eines Review Konzepts innerhalb des Unternehmens ist empfehlenswert.
** Einige Verfahren zur Überprüfung der Richtigkeit von Labeln werden hier beschrieben ($cite_link: "`[1]`", "https://arxiv.org/abs/2001.10528") ($cite_link: "`[2]`", "https://arxiv.org/abs/1905.05040") ($cite_link: "`[3]`", "https://arxiv.org/abs/1911.00068")
** Das Verfahren von ($cite_link: "`[3]`", "https://arxiv.org/abs/1911.00068") wird ebenfalls als Dienst ($cite_link: "//cleanlab//", "https://cleanlab.ai/") angeboten.
* Mehrere Personen sollten für das Labeln identischer Daten verantwortlich sein.
** Wenn mehr Leute bei diesem Prozess beteiligt sind, verhindert dies Flüchtigkeitsfehler und mögliche Mehrdeutigkeiten können erkannt und gelöst werden.
* Alternative Strategien wie Labeling realisiert werden kann, sowie deren Vor- und Nachteile, werden in //Strategien für Labeling// näher ausgeführt.
<br>
(text-style: "underline", "bold") [Hinweis:] Dokumentieren Sie welche Art von Labels Sie verwenden und die Gründe für diese Entscheidung. Dies hilft die Transparenz der Entwicklung zu verbessern, sie besser nachzuverfolgen und evtl. Bugs im Laufe des Projekts leichter zu lokalisieren.}
{
<br>
<br>
Ist ein zufriedenstellender Plan für das Labeling vorhanden?
<br>
''Ja'', weiter mit [[Anbindung an IT-Systeme->Anbindung an IT-System]].\
<br>
''Nein'', weiter mit $decision_maker_col[$target_symbol] [[Strategien für Labeling->Strategien für Labeling]]
<style>
.custom-link {
color: blue;
font-weight: bold;
text-decoration: none;
}
</style>
$lifecycle_overview}\
<br>
<br>
<==
(text-style: "underline") [Quellen:]
`[1]`: HuggingFace, ($cite_link: "“Identifying Mislabeled Data using the Area Under the Margin Ranking”", "https://arxiv.org/abs/2001.10528"), arXiv:2001.10528, (2020)
`[2]`: Chen, P., Liao, B., Chen, G., Zhang, S., ($cite_link: "“Understanding and Utilizing Deep Neural Networks Trained with Noisy Labels”", "https://arxiv.org/abs/1905.05040"), arXiv:1905.05040, (2019)
`[3]`: Nothcutt, C., Jiang, L., Chuang, I., ($cite_link: "“Confident Learning: Estimating Uncertainty in Dataset Labels”", "https://arxiv.org/abs/1911.00068"), arXiv:1911.00068, (2019)\
\$add_page=><=
##Model Design
<==>
{
In der Phase des Modelldesigns findet die Auswahl der Modellarchitektur und der Hyperparameter statt.
Im Anschluss folgt der Trainingsprozess, also die Optimierung der Modellparameter. Die unmittelbare Vorbereitung auf das Model Design (d.h. Data Preprocessing und Feature Engineering) wird im Schritt [[Pre-Modeling]] behandelt.
<br>
<br>
Im Allgemeinen soll ein Model einen Zusammenhang zwischen verschiedenen Objekten darstellen (bspw. Bilder und Tierarten).
Nicht nur die Zusammenhänge selber, sondern besonders die Art und Weise diese anhand von Daten abbilden zu können, können schnell sehr komplex werden.
<br>
Häufig benötigen wir daher KI-Lösungen mit vielen Stellschrauben, um dieser Anforderung zu begegnen.
Dabei müssen nicht nur die eigentlichen Modell-Parameter optimiert werden, sondern auch sog. Hyperparamter.
Diese steuern unter anderem wie das Modell lernt, können aber allgemeiner auch das Verhalten von Komponenten außerhalb des Modells verändern (z.B. Pre-Processing).
Um dabei die Generalisierbarkeit des Modells auf unbekannte Daten einzuschätzen können Techniken, wie Kreuz-Validierung genutzt werden ($cite_link: "`[1]`", "https://scikit-learn.org/stable/modules/cross_validation.html").
<div style="flex: 1; text-align: center;">
<img src="https://pbollimp.github.io/Meta-Machine-Learning/images/image9.png" style="width: 550px; margin-top: 10px;">
<p style="text-align: center;">
(text-size: 0.6)[Model Training und Hyperparameter Tuning ($cite_link: "`[2]`", "https://pbollimp.github.io/Meta-Machine-Learning/")].
</p>
</div>
<br>
(text-style: "underline", "bold") [Hinweis:] Dokumentieren Sie sämtliche Maßnahmen die Sie umgesetzt haben und die Gründe für diese Entscheidungen. Dies hilft die Transparenz der Entwicklung zu verbessern, sie besser nachzuverfolgen und evtl. Bugs im Laufe des Projekts leichter zu lokalisieren.
}
''Wie wollen Sie vorgehen?''\
<p>\
[[Sie wollen eine KI selbstständig von Grund auf entwickeln.->KI entwickeln]]
[[Sie haben bereits eine KI und wollen diese erweitern.->KI erweitern]]
[[Sie wollen die Leistungsfähigkeit bereits existierender Modelle für sich nutzen (LLMs, Foundation Models, etc.).->KI adaptieren]]</p>\
<br>\
Losgelöst von diesen Alternativen empfiehlt es sich zu untersuchen, ob es sich lohnt den [[Menschen in den Lernprozess Ihrer KI miteinzubeziehen->Human-in-the-loop]].
<br>\
Mein Modell ist bereits fertig entwickelt und/oder ich habe kein Interesse an Human-in-the-loop Konzepten: \
$lifecycle_overview\
\$add_page$humaine_logo\
=><=
##Nutzerakzeptanz und Engagement Toolbox
<==>
Diese Seite befindet sich zurzeit im Aufbau.
In Zukunft sollen hier wichtige Informationen bezüglicher der Verbesserung der Nutzerakzeptanz kommen, Konzepte wie das Engagement der User im Umgang mit der KI erhöht werden kann, sowie Strategien wie ihnen allgemein der Einstieg in die KI erleichtert wird.
Besonders bei der anfänglichen Einführung der KI in das Unternehmen, entscheiden diese Punkte oftmals über das Gelingen oder das Scheitern der neuen Software. Aus diesem Grund ist es wichtig bei einer holistischen Betrachtung der Integration einer KI in das eigene Unternehmen über diese Dinge zu informieren.
''Zurück'', zum [[Pre-Modeling->Pre-Modeling]].
''Zurück'', zum [[Model Design->Model Design]].
$lifecycle_overview\
\$add_page=><=
##Pre-Modeling
<==>
{
Das Pre-Modeling setzt sich aus dem Data Preprocessing und dem Feature Engineering zusammen.
Beim Data Preprocessing handelt es sich um die Aufbereitung der Rohdaten, um sie für den anschließenden Schritt des Feature Engineerings nutzbar zu machen.
Feature Engineering umfasst verschiedene Prozesse, die aus den aufbereiteten Daten aussagekräftige Features für das Training herstellen/herausfiltern.
}
<br>
''Welchen der Punkte möchten Sie näher betrachten?''
<p>\
$developer_col[$target_symbol] [[Data Preprocessing->Preprocessing]]
$developer_col[$target_symbol] [[Feature Engineering->Feature Engineering]]\
</p>\
$lifecycle_overview\
\$add_page=><=
##Data Preprocessing
<==>
{
####Warum ist Data Preprocessing wichtig?
* Die Qualität der Ausgabe des fertig trainierten KI-Modells basiert primär auf der Datengrundlage. Ist diese mangel- oder fehlerhaft, leidet die Güte des Ergebnisses. Aus diesem Grund müssen die Daten in einem ersten Schritt aufbereitet und deren Güte sichergestellt werden.
####Schritte, die im Data Preprocessing relevant sind.
* Visualisieren Sie die Daten.
** Dieser Schritt ist äußerst hilfreich und unterstützt bspw. die Detektion von Ausreißern (Outlier) oder verrauschter Features.
** Beliebte Verfahren für hochdimensionale Daten sind: ($cite_link: "t-SNE", "https://scikit-learn.org/1.5/modules/generated/sklearn.manifold.TSNE.html"), ($cite_link: "PCA", "https://scikit-learn.org/1.5/modules/generated/sklearn.manifold.TSNE.html"), ($cite_link: "UMAP", "https://umap-learn.readthedocs.io/en/latest/")
* Achten Sie auf die Uniformität der Datentypen.
** Wenn Daten aus verschiedenen Quellen stammen, kann es sein, dass unterschiedliche Bezeichnungen für ein und das selbe Feature genutzt werden, wie bspw. Mann und männlich. Diese Informationen sind redundant und führen lediglich zu einer unnötigen Aufblähung des Datensatzes und später zu einer Verlängerung der Rechenzeit.
* Achten Sie auf die Uniformität der Datenwerte.
** Wenn bspw. Preise für Produkte aus unterschiedlichen Ländern stammen, müssen ggf. die zugehörigen Währungen in eine gemeinsame umgerechnet werden.
* Achten Sie auf fehlende Werte.
** Abhängig von der Größe des verwendeten Datensatzes können unterschiedliche Strategien verfolgt werden.
** Bei großen Datensätzen und vergleichsweise wenigen fehlenden Werten, können entsprechende zugehörige Beobachtungen/Datenpunkte aus dem Datensatz gelöscht werden.
** Bei kleinen Datensätzen, oder großen Datensätzen mit vielen fehlenden Werten für ein Attribut, können die fehlenden Werte ergänzt werden.
** Es gibt unterschiedliche Strategien für die Ergänzung fehlender Werte, sog. "imputing methods". So können sie bspw. händisch nachgetragen, oder auch mit dem Mittelwert der übrigen Werte ersetzt werden.
* Achten sie auf Ausreißer in Ihren Daten.
** Outlier können das letztliche Ergebnis stark verfälschen.
** Es gibt unterschiedliche Algorithmen zur Outlier Detektion. Oftmals ist eine visuelle Prüfung der Daten äußerst hilfreich.
** Eine ausschöpfende Sammlung von Verfahren zur Ausreißererkennung kann bei Salehi ($cite_link: "`[1]`", "https://arxiv.org/abs/2110.14051") gefunden werden.
** Es existieren ebenfalls unterschiedliche Methoden wie mit Ausreißern verfahren werden kann. Diese umfassen bspw. das Löschen oder Ersetzen der Werte.
* Achten Sie auf verrauschte Daten.
** Dies umfasst nicht nur fehlerhaft gemessene Werte, sondern auch ggf. unnötige/überflüssige Datenpunkte für ein Feature.
** Das Zusammenfassen von Datenpunkten via Binning oder Clustering Methoden behebt verrauschte Daten.
* Es muss eine Standardisierung der Features erfolgen.
** D.h. die Features werden auf einen numerischen Bereich zwischen 0 und 1 skaliert. Damit wird vermieden, dass numerisch größeren Werten unterschiedlicher Datentypen (bspw. Alter vs. Wohnpreis) eine größere Bedeutung zugesprochen wird.
* Kategorische Variablen müssen umgewandelt werden.
** Nicht-numerische Variablen müssen für das Training, je nach KI-Modell, in numerische umgewandelt werden.
** Dafür können Verfahren wie ($cite_link: "One-Hot Encoding", "https://scikit-learn.org/dev/modules/generated/sklearn.preprocessing.OneHotEncoder.html") oder ($cite_link: "Label Encoding", "https://scikit-learn.org/dev/modules/generated/sklearn.preprocessing.LabelEncoder.html") verwendet werden.
\
<br>
Viele dieser Schritte können mittels Algorithmen automatisiert werden. Näheres dazu finden Sie in der [[AutoML Toolbox->AutoML Toolbox]].
<br>
<br>
(text-style: "underline", "bold") [Hinweis:] Dokumentieren Sie sämtliche Maßnahmen die Sie umgesetzt haben und die Gründe für diese Entscheidungen. Dies hilft die Transparenz der Entwicklung zu verbessern, sie besser nachzuverfolgen und evtl. Bugs im Laufe des Projekts leichter zu lokalisieren.\
<br>
<br>
Ich möchte mehr zu $developer_col[$target_symbol] [[Feature Engineering->Feature Engineering]] erfahren.}
<br>
<br>
<==
(text-style: "underline") [Quellen:]
`[1]`: Salehi et al., ($cite_link: "“A Unified Survey on Anomaly, Novelty, Open-Set, and Out-of-Distribution Detection: Solutions and Future Challenges”", "https://arxiv.org/abs/2110.14051"), arXiv:2110.14051 (2022)
$lifecycle_overview\
\$add_page$humaine_logo\
=><=
##Relevanz der Erklärbarkeit der Ergebnisse
<==>
{Das Verständnis und die Interpretation von Entscheidungen, die von künstlicher Intelligenz getroffen werden, sind entscheidend für das Vertrauen, die Akzeptanz und den effektiven Einsatz der zu designenden Modelle in realen Anwendungen. XAI spielt hierbei eine Schlüsselrolle im Deployment, indem es Einblicke in die Entscheidungsfindung der Modelle liefert. Die Fähigkeit, die "Black Box" der komplexen Algorithmen zu öffnen und zu erklären, wie und warum bestimmte Vorhersagen oder Handlungen erfolgen, trägt zu transparenten und verständlichen Ergebnissen bei. Daneben kann die selektive Hervorhebung von wichtigen Eingabekomponenten oder die Präsentation von Hypothesen und möglichen Erklärungszusammenhängen bzgl. der Daten aufmerksamkeitsförderlich wirken, das Vertrauen des Nutzers in die KI weiter steigern und dessen Domänenwissen fördern. Vor diesem Hintergrund ist die Betrachtung von XAI bei einem hybriden Mensch-KI System nicht nur hilfreich, sondern unerlässlich, um eine verantwortungsbewusste und effektive Integration von KI-Technologien in verschiedene Branchen zu gewährleisten.
XAI ist jedoch nicht nur für Anwender relevant, sondern auch für Entwickler, Regulierungsbehörden und allgemein die von der KI betroffenen Stakeholder. Es ermöglicht die Identifizierung von möglichen Vorurteilen, erhöht die Sicherheit in sicherheitskritischen Anwendungen und fördert die ethische Verantwortung bei der Verwendung von KI. Darüber hinaus unterstützt XAI den iterativen Entwicklungsprozess, indem es Einblicke in die Funktionsweise der Modelle gibt, was zu deren sukzessiven Verbesserung und Robustheit beitragen kann.
<br>
(text-style: "underline", "bold") [Hinweis:] Dokumentieren Sie sämtliche Maßnahmen die Sie umgesetzt haben und die Gründe für diese Entscheidungen. Dies hilft die Transparenz der Entwicklung zu verbessern, sie besser nachzuverfolgen und evtl. Bugs im Laufe des Projekts leichter zu lokalisieren.
<br>
<br>
''Sollen die Nutzer:Innen der KI die Ausgaben der KI nachvollziehen können?''
<br>
''Ja'', weiter mit [[XAI User Tool->User-targetting XAI Selection Tool Intro]].\
<br>
''Nein'', weiter mit [[Nachtrainieren der KI->KI Nachtrainieren?]].}
$lifecycle_overview\
\$add_page=><=
##Nachtrainieren der KI
<==>
''Soll die KI nach dem Deployment //nachtrainiert// werden?''
<br>
Bei dem Nachtrainieren einer KI werden ihre Parameter nachträglich auf der Grundlage zusätzlicher Trainingsdaten nachjustiert, um die Leistungsfähigkeit der KI angesichts sich verändernder Rahmenbedingungen zu wahren und so ihre Verlässlichkeit auch in Zukunft zu gewährleisten.
{<div>
Einschlägige Faktoren beim Nachtrainieren:
<ul>
<li>Rechtlicher Rahmen oder Branchenstandards</li>
<ul>
<li>Ist es erforderlich, dass die Ausgaben unterschiedlicher Modell-Versionen untereinander konsistent sind?</li>
<li>Hat die Genauigkeit des Modells Mindestanforderung zu genügen?</li>
</ul>
<li>Verändert sich die Sensorik, die Daten an die KI liefert?</li>
<ul>
<li>Ändern sich die Anbieter, die Technologien oder die Spezifikationen?</li>
</ul>
<li>Domain Drift</li>
<ul>
<li>Treten neue Kategorien von Eingabedaten oder neuartige Artefakte in den Daten auf?</li>
<li>Hat sich der Zusammenhang zwischen den Eingabedaten und den Labels verändert?</li>
<li> Mehr Informationen zum Erkennen von Drifts finden Sie unter [[Drift Monitoring->Drift Monitoring]].</li>
</ul>
<br>
<div style="display: flex; align-items: center;">
<div style=" margin-top: -10px; margin-left: 100px;">
<img src="https://docs.deepchecks.com/stable/_images/types-of-drift.png" style="width: 500px;">
<p style="text-align: center; width: 500px; margin-top: -10px; margin-bottom: 0px;">
(text-size: 0.6)[Visualisierung von Typen des Drifts ($cite_link: "`[1]`", "https://docs.deepchecks.com/stable/general/guides/drift_guide.html")].
</p>
</div>
</div>
</div>}\
$lifecycle_overview\
\$add_page=><=
###''tachAId''
''Technical Assistance Concerning Human‑Centered AI Development''
=><=
Max Bauroth & Pavlos Rath-Manakidis
`{max.bauroth, pavlos.rath-manakidis}@ini.rub.de`
<==>
####Zusammenfassung
Dieses Tool hat das Ziel die Leser bzgl. der technischen Implementierung von KI-Lösungen zu informieren und anzuleiten. Hierbei werden alle wesentlichen Schritte adressiert, die sowohl für die Einführung neuer als auch Erweiterung bereits bestehender KI-Lösungen notwendig sind. Ein besonderer Fokus liegt auf der *humanzentrierten* Umsetzung von KI und der Darlegung der Vorteile, die diese mit sich bringt.
tachAId stellt dabei Fragen die bei der Entwicklung von KI wichtig sind und bietet Informationen, die dem Benutzer helfen, diese Fragen in Bezug auf seine KI-Anwendung zu beantworten. Der Nutzer kann sich dann mit Hilfe von tachAId über die für ihn relevanten Themen informieren.
<==>
''Weiter'' zur [[Einleitung->Einleitung]] (Klicken sie bitte auf „Einleitung“)
{<div style="display:flex; align-items: center; flex-direction:row;
flex-wrap: wrap; float:right">
<div style="margin: 0.7em"><img alt="Institut für Neuroinformatik" src="https://humaine.info/wp-content/uploads/2021/05/Logo_Institut-fuer-Neuroinformatik-INI.jpg" alt="INI" height="45"></div>
<div style="margin: 0.7em"><img alt="HUMAINE" src="https://humaine.info/wp-content/uploads/2021/08/Humaine-Logo.png" height="45"></div>
<div style="margin: 0.7em"><img alt="Kompetenzzentren Arbeitsforschung" src="https://humaine.info/wp-content/uploads/2021/08/ReKoDA-Wort-Bildmarke_klein-200x269.jpg" height="100"></div>
<div style="margin: 0.7em"><img src="https://humaine.info/wp-content/uploads/2021/05/BMBF_gefoerdert-vom_deutsch.jpg" alt="BMBF" height="100"></div>
</div>}
==>
(text-size:0.5)[Diese Arbeit wird als Teil des Kompetenzzentrum HUMAINE durch das Bundesministerium für Bildung und Forschung im Programm „Zukunft der Wertschöpfung – Forschung zu Produktion, Dienstleistung und Arbeit“ gefördert und vom Projektträger Karlsruhe (PTKA) betreut `(Förderkennzeichen: 02L19C200)`.]\
\$add_page{\
(set: $humaine_logo to '<img align="right" src="https://humaine.info/wp-content/uploads/2021/08/Humaine-Logo.png" style="margin: 1em;" width="150">')\
(set: $cite_link to (macro: str-type _text, str-type _link, [\
(output-data: '<a href="' + _link + '" target="_blank">' + _text + '</a>')\
]))\
(set: $tooltip to (macro: str-type _text, str-type _tooltip, [\
(output-data: '<div class="tooltip">' + _text + '<span class="tooltiptext">' + _tooltip + '</span></div>')\
]))\
(set: $header_col to (text-colour: #80CC28) + (text-style: 'bold'))\
(set: $link_col to (text-colour: #80CC28) + (text-style:'bold'))\
(set: $decision_maker_col to (text-colour: blue) + (text-style:'bold'))\
(set: $developer_col to (text-colour: orange) + (text-style:'bold'))\
(set: $target_symbol to "⬤")\
(set: $lifecycle_overview to "
''Zurück'', zur [[KI-Lifecycle Übersicht->KI-Lifecycle]].")
<!--Function that adds visited pages-->
(set: $passages_visited to (a:))\
(set: $add_page to "{
(if: not ($passages_visited contains (passage:)'s name))[
(set: $passages_visited to it +(a: (passage:)'s name))
]}")
<!--Nested Array of Story Elements-->
(set: $nav_elements to (a:
(a: "Start & Kontakt", "Start & Contact", true, (a:
)),
(a: "Einleitung", "Einleitung", true, (a:
)),
(a: "Nutzungshinweise", "Nutzungshinweise", true, (a:
)),
(a: "Übersicht", "KI-Lifecycle", true, (a:
)),
(a: "KI-Konzeption", "KI-Konzeption", true, (a:
)),
(a: "Data Collection", "Data Collection", true, (a:
(a: "Labeling", "Labeling abgeschlossen?", true),
(a: "Datenbeschaffung", "Strategien für Datenbeschaffungen", true),
(a: "Anbindung an IT-System", "Anbindung an IT-System", false),
(a: "Strategien für Labeling", "Strategien für Labeling", false)
)),
(a: "Pre-Modeling", "Pre-Modeling", true, (a:
(a: "Data Preprocessing", "Preprocessing", true),
(a: "Feature Engineering", "Feature Engineering", true),
)),
(a: "Model Design", "Model Design", true, (a:
(a: "KI entwickeln", "KI entwickeln", true),
(a: "KI erweitern", "KI erweitern", true),
(a: "KI adaptieren", "KI adaptieren", true),
(a: "Human-in-the-loop", "Human-in-the-loop", true)
)),
(a: "Deployment", "Deployment", true, (a:
(a: "Erklärbarkeit", "Relevanz der Erklärbarkeit der Ergebnisse", true),
(a: "Nachtrainieren", "KI Nachtrainieren?", true),
(a: "Drift Monitoring", "Drift Monitoring", false)
)),
(a: "AutoML Toolbox", "AutoML Toolbox", true, (a:
)),
(a: "XAI Toolbox", "XAI Toolbox Overview", true, (a:
(a: "Entwicklung", "Developer-targetting XAI Overview", true),
(a: "Nutzung", "User-targetting XAI Selection Tool Intro", true),
(a: "XAI Selection Tool", "XAI Selection Tool", false),
(a: "XAI Evaluation Tool", "XAI Evaluation Tool", false)
)),
(a: "Active Learning Toolbox", "Active Learning Toolbox", true, (a:
)),
(a: "Sicherheits Toolbox", "Datenschutz und Datensicherheit Overview", true, (a:
)),
))
(set: $lifecycle_members to (a:
"KI-Lifecycle",
"KI-Konzeption",
"Data Collection",
"Pre-Modeling",
"Model Design",
"Deployment",
))
(set: $sidebar_visible_flag to false)\
(set: $all_pages to (a:))\
<!--Count number of passages to visit-->
(set: $num_passages_to_visit to 0)\
(for: each _item, ...$nav_elements)[ \
(set: _page_link to _item's 2nd) \
(set: _sub_pages to _item's 4th)\
(set: $num_passages_to_visit to it +1)\
(set: $all_pages to it +(a: _page_link))\
\
(if: _sub_pages's length is not 0)[\
(for: each _sub_page, ..._sub_pages)[\
(set: _sub_page_link to _sub_page's 2nd)\
(set: $num_passages_to_visit to it +1)\
(set: $all_pages to it +(a: _sub_page_link))\
]\
]\
]\
}=><=
##Strategien für Datenbeschaffung
<==>
{
Die Auswahl und Beschaffung geeigneter Daten ist ein entscheidender Schritt im Prozess des Trainings von KI-Modellen.
Verschiedene Strategien können angewendet werden, je nach Verfügbarkeit der Daten und den spezifischen Anforderungen der jeweiligen Anwendung.
Diese reichen von der Nutzung öffentlicher Datensätze über hausinterne Erhebungen bis hin zur künstlichen Datengenerierung. Jede Methode bringt ihre eigenen Vor- und Nachteile mit sich, insbesondere in Bezug auf die Qualität, Heterogenität und Ethik der Daten.
Im Folgenden werden die wichtigsten Ansätze zur Datenbeschaffung näher erläutert.
<br>
####Strategien:
<div style="margin-left: 20px">
<details>
<summary>Offene Datensätze und Search Engines</summary>
* Es gibt eine Reihe von Websites die offen zugängliche Datensätze anbieten, bspw. Google Dataset Search, Kaggle, Reddit oder UCI repository.
* Besteht der Anspruch darin, das KI-Modell anhand eines heterogenen Datensatzes zu trainieren, können diese unterschiedlichen Quellen in einem Datensatz vereint werden ("scrape web data").
* Abhängig vom Ursprung der Daten, kann mitunter deren Qualität stark schwanken.
</details>
</div>
<br>
<div style="margin-left: 20px">
<details>
<summary>In-House Datensätze</summary>
* Für spezialisierte Ansprüche können/sollten die Daten hausintern erhoben werden. Sind die Mittel vorhanden, stellt dies die beste Alternative dar, welche zudem die Qualität der Daten sicherstellen kann.
</details>
</div>
<br>
<div style="margin-left: 20px">
<details>
<summary>Data Augmentation</summary>
* Ist der Datensatz begrenzt und nicht mit öffentlichen Quellen erweiterbar, so können unterschiedliche mathematische Operationen auf den bereits vorhandenen Daten vorgenommen werden, um diese leicht zu verändern und so künstlich die Menge zu erhöhen. Hierunter zählen bspw. Rotationen oder Spiegelungen für Bilddaten.
* Abhängig von den gewählten Verfahren, wird die Qualität der Daten in diesem Schritt meist noch nicht beeinflusst. Das heißt, ist sie ursprünglich gut/schlecht, wird sich mit diesen Operationen daran nichts ändern.
</details>
</div>
<br>
<div style="margin-left: 20px">
<details>
<summary>Crowdsourcing/Outsourcing</summary>
* Abhängig wie die KI letztlich eingesetzt werden soll, kann unter Umständen die Zielgruppe, die mit der KI arbeitet, neue Daten für diese generieren. Hierbei können unterschiedliche Konzepte verfolgt werden, bspw. eine eigene Art von "CAPTCHAS" (die nötige Daten sammelt) um die Benutzung der KI zu ermöglichen. Oder auch einfach die Möglichkeit Fehler der KI vom Nutzer direkt berichtigen zu lassen und somit neue Daten zu generieren.
* Durch die gezielte Erstellung neuer Daten kann deren Qualität sichergestellt werden. Hierbei muss jedoch auf die Einbringung potentieller Biases geachtet werden. Diese Thematik wird im Kapitel "[[Data Collection->Data Collection]]“ ausführlich behandelt.
</details>
</div>
<br>
<div style="margin-left: 20px">
<details>
<summary>Daten kaufen</summary>
* Sog. Data Broker verkaufen nicht öffentlich zugängliche Daten. Zudem können Partnerschaften mit anderen Unternehmen ein weiteres Mittel darstellen an Daten zu gelangen.
* Abhängig vom Ursprung der Daten, kann sowohl deren Qualität als auch die ethische Vertretbarkeit stark schwanken.
</details>
</div>
<br>
<div style="margin-left: 20px">
<details>
<summary>Data Synthesis</summary>
* Daten können auch künstlich generiert werden. Hierzu werden bevorzugt sog. "Data simulator" oder "Generative Adversarial Networks" (GANs) genutzt. Die Bandbreite umfasst Bilder, Tabellen-Daten und Texte. Eine Übersicht verschiedener Ansätze und Systeme ist in ($cite_link: "`[1]`", "https://doi.org/10.1016/j.knosys.2020.106622") zu finden.
* Abhängig vom gewählten Verfahren und den bereits zur Verfügung stehenden Daten, kann die Qualität auch hier schwanken. Jedoch liefern bereits viele Ansätze gute Ergebnisse.\
</details>
</div>
<br>
Bei all diesen Strategien sei darauf verwiesen, dass ggf. Datenschutzrichtlinien zu beachten sind. Für mehr Informationen zu [[Datenschutz und Datensicherheit->Datenschutz und Datensicherheit Overview]], klicken Sie auf diesen Link um zur entsprechenden Toolbox zu gelangen.\
<br>
<br>
(text-style: "underline", "bold") [Hinweis 1:] Generell gilt, ist die Datenlage knapp bemessen, sollten im Anschluss Modelle mit //geringer// Komplexität verwendet werden, damit die Lösung nicht übermäßig an die Daten angepasst wird und generalisierbar bleibt.\
<br>
(text-style: "underline", "bold") [Hinweis 2:] Zur besseren Nachverfolgbarkeit und Troubleshooting der Entwicklung, dokumentieren Sie Ihre Entscheidungen bzgl. der Wahl und der Quellen Ihrer Daten.\
<br>
Weitere Beschaffungsstrategien, sowie öffentliche Datensätze: ($cite_link: "`[2]`", "https://www.kdnuggets.com/2016/06/10-data-acquisition-strategies-startups.html"), ($cite_link: "`[3]`", "https://towardsdatascience.com/top-sources-for-machine-learning-datasets-bb6d0dc3378b"), ($cite_link: "`[4]`", "https://www.v7labs.com/blog/healthcare-datasets-for-computer-vision").\
<br>
<br>
<br>
####Alternativen um die Menge an erforderlichen Daten zu verringern:
* Semi-supervised learning
** Hier wird ein kleiner Teil von gelabelten Daten mit einem großen Teil von ungelabelten Daten kombiniert. Insgesamt kann diese Art des Lernens die resultierende Genauigkeit des Modells äußerst positiv beeinflussen.
* Enge Konkretisierung der Problematik
** Anstelle einer u.U. sehr stark verallgemeinerten Aufgabe, welche von der KI gelöst werden soll, könnte die Problematik auf Teilaspekte heruntergebrochen werden. Dieser Vereinfachung folgt zwangsläufig ein geringerer Bedarf an Trainingsdaten in diesem neuen Kontext.
* Transfer learning
** Ein bereits trainiertes Modell wird mit neuen Trainingsdaten auf ein neues Problem angepasst.
** (text-style: "underline")[Beachte:] Die ursprünglichen und neuen Trainingsdatensätze dürfen sich nicht zu sehr voneinander unterscheiden. Andernfalls wirkt sich dies benachteiligend auf die Performance des Modells aus. Es existieren verschiedene Metafeatures um die Ähnlichkeit der Datensätze zu überprüfen ($cite_link: "`[5]`", "https://ojs.aaai.org/index.php/AAAI/article/view/9354").
** Mehr Informationen finden Sie unter [[KI adaptieren->KI adaptieren]].\
<br>
''Fortfahren'', weiter mit [[Labeling->Labeling abgeschlossen?]].\
$lifecycle_overview}
<br>
<br>
<==
(text-style: "underline") [Quellen:]
`[1]`: He, X., Zhao, K., Chu, X., ($cite_link: "“Automl: A survey of the state-of-the-art”", "https://doi.org/10.1016/j.knosys.2020.106622"), arXiv preprint arXiv:1908.00709v6, (2019)
`[2]`: <a href="https://www.kdnuggets.com/2016/06/10-data-acquisition-strategies-startups.html" target="_blank">https://www.kdnuggets.com/2016/06/10-data-acquisition-strategies-startups.html</a> (Abrufdatum`:` 19.01.2022)
`[3]`: <a href="https://towardsdatascience.com/top-sources-for-machine-learning-datasets-bb6d0dc3378b" target="_blank">https://towardsdatascience.com/top-sources-for-machine-learning-datasets-bb6d0dc3378b</a> (Abrufdatum`:` 19.01.2022)
`[4]`: <a href="https://www.v7labs.com/blog/healthcare-datasets-for-computer-vision" target="_blank">https://www.v7labs.com/blog/healthcare-datasets-for-computer-vision</a> (Abrufdatum`:` 19.01.2022)
`[5]`: M. Feurer, T. Springenberg and F. Hutter, ($cite_link: "“Initializing Bayesian hyperparameter optimization via meta-learning”", "https://ojs.aaai.org/index.php/AAAI/article/view/9354"), Proc. Nat. Conf. Artif. Intell., pp. 1128-1135, (2015)\
\$add_page=><=
##Strategien für Labeling
<==>
''Auflistung verschiedener Labeling Strategien, sowie deren Vor- und Nachteile.''
<table>
<tr>
<th>Strategie</th>
<th>Beschreibung</th>
<th>Vorteile</th>
<th>Nachteile</th>
</tr>
<tr>
<td>In-House Labelling</td>
<td>Das Labelling wird im Unternehmen durchgeführt.</td>
<td><ul><li>Qualität der Daten genügen mit Sicherheit den eigenen Ansprüchen
</li><li>Fortschritt kann nachvollzogen werden</li></ul></td>
<td><ul><li>Viel Zeit wird benötigt</li><li>Unattraktive Arbeit</li></ul></td>
</tr>
<tr>
<td>Crowdsourcing</td>
<td>Kooperation mit Freelancern von Crowdsourcing Plattformen.</td>
<td><ul><li>Kosten einsparen</li><li>Schnelle Resultate</li></ul></td>
<td><ul><li>Qualität der Ergebnisse nicht gesichert</li><li>Datenschutz problematisch</li></ul></td>
</tr>
<tr>
<td>Outsourcing</td>
<td>Anstellung eines externen spezialisierten Teams, welches das Labeling übernimmt.</td>
<td><ul><li>Gesicherte Qualität</li><li>Abhängig von Größe des Teams schnelle Resultate</li></ul></td>
<td><ul><li>U.U. teuer</li><li>Datenschutz problematisch</li></ul></td>
</tr>
<tr>
<td>Synthetic Labeling</td>
<td>Generierung von Daten, die die Echten hinsichtlich essenzieller, vom Nutzer definierter Parameter imitieren.</td>
<td><ul><li>So generierte Daten haben keine Limitierungen hinsichtlich des Datenschutzes</li><li>Daten können schnell erstellt werden</li><li>Billig</li></ul></td>
<td><ul><li>Qualität ist nicht gesichert</li><li>Es wird viel Rechenkraft benötigt</li></ul></td>
</tr>
<tr>
<td>Data programming</td>
<td>Scripts werden genutzt um Daten automatisch zu Labeln.</td>
<td><ul><li>Automatisierung</li><li>Schnell</li><li>Günstig</li></ul></td>
<td><ul><li>Geringere Genauigkeit der Label</li><li>Überprüfung notwendig</li></ul></td>
</tr>
<tr>
<td>[[Active Learning->Active Learning Toolbox]]</td>
<td>Das lernende System wählt gezielt Datenpunkte zum Labeln aus.</td>
<td><ul><li>Reduzierung benötigter Labels</li><li>Mensch-Maschinen-Interaktion</li><li>Großer Effekt pro Label</li></ul></td>
<td><ul><li>Möglicherweise Domänenwissen notwendig</li><li>Komplexität der Implementierung</li><li>Bias-Risiko</li></ul></td>
</tr>
</table>
In Anlehnung an ($cite_link: "`[1]`", "https://www.kdnuggets.com/2018/05/data-labeling-machine-learning.html").
(text-style: "underline", "bold") [Hinweis:] Dokumentieren Sie welche Art von Strategie Sie verwenden und die Gründe für diese Entscheidung. Dies hilft die Transparenz der Entwicklung zu verbessern, sie besser nachzuverfolgen und evtl. Bugs im Laufe des Projekts leichter zu lokalisieren.\
<br>
''Fortfahren'', weiter mit [[Anbindung an IT-System->Anbindung an IT-System]].\
$lifecycle_overview
<br>
<br>
<==
(text-style: "underline") [Quellen:]
`[1]`: <a href="https://www.kdnuggets.com/2018/05/data-labeling-machine-learning.html" target="_blank">https://www.kdnuggets.com/2018/05/data-labeling-machine-learning.html</a> (Abrufdatum`:` 19.01.2022)\
\$add_page$humaine_logo\
=><=
##XAI User Tool
<==>
{
''Allgemeine Informationen:''\
<br>
Bei der Integration von transparenzstiftenden Methoden in das KI-System gilt es den unterschiedlichen Stakeholdergruppen, welche mit den Entscheidungen der KI in unterschiedlichen Weisen zu tun haben werden, ein sinnvolles Werkzeug für ihre Aufgaben zur Verfügung zu stellen und ihre Akzeptanz gegenüber der KI zu stärken. Die Einführung der KI soll als eine Hilfestellung bei der Ausführung der eigenen Aufgaben oder als eine Bestätigung des eigenen Stellenwerts in der Organisation verstanden werden.\
<br>
<br>
Bei der Arbeit unmittelbar mit der KI werden User-Interface-Elemente bereitgestellt, die die Bedürfnisse nach einem zweckmäßigen Umgang mit der KI befriedigen sollen. Hier kommt es darauf an die richtigen Informationen im richtigen Moment bereitzustellen, um die Arbeitsprozesse zu effektivieren und den Menschen nicht mit unnötigen Informationen oder Interaktionsmöglichkeiten zu überfordern.\
<br>
<br>
Bei indirekt von den KI-Entscheidungen betroffenen Parteien kann deren Akzeptanz für die KI dadurch gefördert werden, dass sie nicht einfach mit den KI-Entscheidungen konfrontiert werden, sondern auch verständnisförderliche Erläuterungen dazu erhalten warum sich die KI auf eine bestimmte Weise entschieden hat. In anderen Fällen macht es Sinn, wenn die Betroffenen zusätzlich Informationen dazu erhalten, was sie tun können um eine günstigere Entscheidung durch die KI in der Zukunft herbeizuführen ($cite_link: "`[1]`", "https://doi.org/10.1145/3442188.3445899") oder Einblicke darin erhalten warum welche Aspekte der Domäne für die Entscheidung relevant gewesen sind um ihr eigenes Know-how auszubauen oder um begründete Einwände gegen die Entscheidung zu erheben, wenn die KI dabei die falschen Aspekte herangezogen hat.
<br>
<details style="margin-left: 30px">
<summary>Wann soll XAI im Entwicklungsprozess in Betracht gezogen werden?</summary>
<p>In der Praxis ist es oft schwer vor der Entwicklung fertiger KI-Modelle einzuschätzen inwiefern diese mit unbekannten Daten umgehen können. Funktionsumfang und Generalisierungsleistung der KI muss oft nach dem Trainieren erst ermittelt werden. Oft macht es erst an dieser Stelle im Entwicklungsprozess Sinn festzulegen, welche Funktionalität mit welcher Erklärungskomponente verständlich gemacht werden soll.
<br>
Andererseits, insbesondere wenn die Transparenz des Modells einen vergleichbaren Stellenwert wie seine Leistungsfähigkeit hat, kann es ratsam sein gleich zu Beginn der KI-Entwicklung inhärent transparente Modelle zu verwenden (siehe z.B.: ($cite_link: "`[2]`", "https://doi.org/10.1214/21-SS133")) oder Modelle, die sich besonders gut für bestimmte Erklärbarkeitsmethoden eignen.</p>
</details>
<br>
<details style="margin-left: 30px">
<summary>Mögliche Gründe gegen Erklärbarkeit</summary>
* Bei Einblicken in Modell-Interna durch XAI-Methoden könnten Schwächen sichtbar werden, deren Bedeutung aber überschätzt wird.
* Es könnten Geschäftsgeheimnisse oder geschützte personenbezogene Daten offengelegt werden.
* Der Gehalt von Erklärungen könnte missverstanden werden. Insbesondere dann, wenn nicht genau klar ist was die Erklärung darstellt. Zum Beispiel kann die Erklärung einer Vorhersage durch SHAP-Werte den falschen Eindruck erwecken, dass eine Änderung in einem wichtigen Eingabemerkmal immer zu einer bestimmten Änderung in der Modellausgabe führen muss.
</details>
<br>
<br>
''Fortfahren'', weiter mit [[Auswahl von XAI Lösungen->XAI Selection Tool]].}
$lifecycle_overview
<br>
<br>
<==
(text-style: "underline") [Quellen:]
`[1]`: A. Karimi, B. Schölkopf and I. Valera, ($cite_link: "“Algorithmic Recourse: From counterfactual explanations to interventions”", "https://doi.org/10.1145/3442188.3445899"), Proceedings of the 2021 ACM Conference on Fairness, Accountability, and Transparency, pp. 353-362, (2021)
`[2]`: C. Rudin, C. Chen, Z. Chen, H. Huang, L. Semenova and C. Zhong, ($cite_link: "“Interpretable Machine Learning: Fundamental Principles and 10 Grand Challenges”", "https://doi.org/10.1214/21-SS133"), Statistics Surveys 16, (2022)\
\$add_page=><=
##Drift Monitoring
<==>
{
Es gibt spezielle Verfahren für //Data Drift Monitoring//, d.h. der Erkennung systematischer Veränderungen der Daten die im laufenden Betrieb in die KI gespeist werden. Diese Verfahren erlauben es die Angemessenheit des Modells und der ursprünglichen Trainingsdaten bzgl. der aktuellen Anfragen an das System fortlaufend zu quantifizieren. Bei kritischen Ereignissen wie z.B. einer Häufung unwahrscheinlicher oder anspruchsvoller Anfragen kann das System Alarm schlagen.
Neu auftretende Datenpunkte sollten zudem händisch untersucht werden, um ggf. Fehler in diesen zu identifizieren und potenzielle neue Muster rechtzeitig zu erkennen. Je nach Generalisierungsleistung der KI und Geschwindigkeit der Veränderung der Anfragen, sollte das System in einem regelmäßigen Turnus mit neuartigen Daten nachtrainiert werden. Dabei ist es möglich das Verhalten älterer Modellversionen mit der aktuellen zu vergleichen, damit einmal erkannte Muster nicht vergessen werden.
<br>
Zu diesem Thema kann z.B. in den ($cite_link: "Rules for ML `[1]`", "https://developers.google.com/machine-learning/guides/rules-of-ml#rule_37_measure_trainingserving_skew") von Google nachgeschlagen werden.
<br>
(text-style: "underline", "bold") [Hinweis:] Dokumentieren Sie sämtliche Maßnahmen die Sie umgesetzt haben und die Gründe für diese Entscheidungen. Dies hilft die Transparenz der Entwicklung zu verbessern, sie besser nachzuverfolgen und evtl. Bugs im Laufe des Projekts leichter zu lokalisieren.\
<br>
<br>
<br>
Das Ende des "Deployment" Teils wurde erreicht.}
$lifecycle_overview
<br>
<br>
<==
(text-style: "underline") [Quellen:]
`[1]`: <a href="https://developers.google.com/machine-learning/guides/rules-of-ml#rule_37_measure_trainingserving_skew" target="_blank">https://developers.google.com/machine-learning/guides/rules-of-ml#rule_37_measure_trainingserving_skew</a> (Abrufdatum`:` 24.02.2022)\
\$add_page$humaine_logo\
=><=
##Verfahren zur Evaluierung von XAI
<==>
{
Hier werden einige Verfahren und Kriterien vorgestellt, gemäß denen XAI-Verfahren und XAI-Benutzerschnittstellen evaluiert werden können.
<br>
''Mentales Modell des Nutzers – Einsicht in KI und Domäne''<br>
Ein wichtiges Evaluierungskriterium ist, inwieweit der Nutzer in der Lage ist, die Modellausgaben und potenzielle Fehlermodi der KI korrekt vorherzusagen. Es könnte hilfreich sein, zu überprüfen, ob Nutzer in der Lage sind, rechtzeitig Fehler des Systems zu erkennen, und wie gut sie in solchen Situationen reagieren.
<br>
''Zufriedenheit bei Arbeitsausführung und Arbeitsqualität''<br>
Die Zufriedenheit der Nutzer bei der Durchführung KI-assistierter Aufgaben kann auf verschiedene Weise gemessen werden. Dazu gehört die Untersuchung, wie gut und effizient Teilaufgaben mit Unterstützung der KI erledigt werden. Eine qualitative Befragung der Nutzererfahrung sowie deren Haltung gegenüber dem System kann Aufschluss darüber geben, ob das System als hilfreich, hinderlich oder gar verwirrend empfunden wird. Ein weiterer Aspekt ist, wie tiefgehend sich Nutzer mit den angebotenen Erklärungen der KI auseinandersetzen, was auf die Qualität der Erklärungskomponenten hindeutet. Gleichzeitig sollten die kognitiven Anforderungen an die Nutzer untersucht werden, um festzustellen, ob die KI die Arbeitsbelastung tatsächlich verringert und die Erklärungen keine übermäßige kognitive Belastung darstellen. Schließlich könnte auch die Akzeptanz der KI untersucht werden, um zu prüfen, wie stark sich Nutzer mit dem System identifizieren.
<br>
''Vertrauen des Nutzers in die KI und Verlässlichkeit des Mensch-KI Systems''<br>
Eine Möglichkeit zur Bewertung des Nutzervertrauens in KI ist der Vergleich des Vertrauensniveaus in verschiedenen Situationen mit und ohne XAI-Komponenten. Dabei sollte das Vertrauen in das System angemessen und weder zu hoch noch zu niedrig sein, um eine optimale Mensch-KI-Zusammenarbeit zu gewährleisten. Darüber hinaus kann die Selbsteinschätzung der Nutzerinnen und Nutzer in Bezug auf ihr Vertrauen in die KI und ihre Kompetenz im Umgang mit der KI hilfreich sein, um festzustellen, inwieweit sie die XAI-Komponenten als Unterstützung empfinden.
<br>
''Leistungssteigerung und Arbeitsqualifizierung''<br>
Die Leistungssteigerung durch den Einsatz von XAI kann quantitativ durch die Erhebung von Nutzerdaten wie der Leistung pro Zeiteinheit gemessen werden. Wichtig ist jedoch auch, dass Nutzer in der Lage sind, komplexere Aufgaben besser zu bewältigen und eigenständigere Entscheidungen zu treffen, ohne sich zu sehr auf die KI zu verlassen. Hierbei können XAI-Komponenten den Erfahrungsschatz der Nutzer erweitern, indem sie einen besseren Einblick in die Anwendungsdomäne geben. An sich hilft das Sammeln von Erfahrungen im Umgang mit KI-Assistenten bei der Anpassung an eine sich verändernde Arbeitswelt.
<br>
''Rechnerische Stabilität der Erklärungskomponente und Übereinstimmung der XAI-Ausgaben mit dem Modell oder der Domäne''<br>
Die Stabilität der Erklärungen zu der KI, muss rechnerisch überprüft werden, um sicherzustellen, dass die Ergebnisse konsistent und nachvollziehbar sind. Dies kann durch sogenannte "Sanity Checks" sichergestellt werden, bei denen die Ausgaben der KI und der XAI-Komponenten auf Plausibilität und Fehler überprüft werden. Darüber hinaus ist es wichtig, die Ergebnisse mit einem Goldstandard zu vergleichen, um sicherzustellen, dass die Erklärungen den Erwartungen bzgl. der Anwendungsdomäne und dem Modell entsprechen. Schließlich kann eine manuelle Inspektion der Rechenschritte der KI (sog. Debugging) durchgeführt werden, um eventuelle Anomalien oder Fehler in der Erklärungskomponente zu erkennen und zu beheben.
<br>
Dieser Teil des Tools wurde in Anlehnung an ($cite_link: "`[1]`", "https://doi.org/10.1145/3387166") gestaltet.
<br>
<br>
''Weiter'', mit [[Nachtrainieren der KI->KI Nachtrainieren?]].\
<br>
''Zurück'', zur [[XAI Toolbox->XAI Toolbox Overview]].}
$lifecycle_overview
<br>
<br>
<==
(text-style: "underline") [Quellen:]
`[1]`: S. Mohseni, N. Zarei and E. D. Ragan, ($cite_link: "“A Multidisciplinary Survey and Framework for Design and Evaluation of Explainable AI Systems”", "https://doi.org/10.1145/3387166"), ACM Transactions on Interactive Intelligent Systems 11, no. 3-4, pp. 1–45, (2021)\
\$add_page$humaine_logo\
=><=
##Auswahl von XAI Lösungen
<==>
{
Durch das Kombinieren der Dimensionen (unless: (history:)'s last is "Developer-targetting XAI Overview")[Akteure / betroffene Gruppen, ]Zielsetzung und Fragestellung können Sie sich Klarheit verschaffen über die Nützlichkeit von XAI-Techniken bei Ihrer spezifischen KI-Lösung.\
<br>
Im letzten Schritt, der Auswahl von Fragen an die KI, können gängige XAI-Techniken identifiziert werden, die im Kontext Ihrer KI-Lösung angewendet werden könnten.
<br>
<details style="margin-left: 30px">
<summary>Zielsetzung – Qualifizierungsziel: Was soll mittels Erklärungen sichergestellt werden?</summary>
* Einsicht in Architektur und Informationsfluss der KI-Algorithmen
* Auswahl und Abstimmung des Modells
* Debugging and Monitoring des KI-Modells
* Vertrauen des KI-Nutzers und Verlässlichkeit des Mensch-KI Systems
* Vermeidung von Verzerrung der Beweislage und Diskriminierung durch KI
* Visualisierung und Inspektion der Daten und des Modellverhaltens
* Rückführung des Modellverhaltens: Reliability, Fehlerrückverfolgung, Auditierbarkeit
* Qualifizierung der Nutzer bzgl. der Domäne und Einarbeitung in die Verbesserung und Wartung von KI
<p>Dieser Teil des Tools orientiert sich an ($cite_link: "`[1]`", "https://doi.org/10.1145/3387166").</p>
</details>
(unless: (history:)'s last is "Developer-targetting XAI Overview")[
<br>
<details style="margin-left: 30px">
<summary>Akteure/betroffene Personen: Für wen ist dieses Ziel relevant bzw. wer ist dafür verantwortlich?</summary>
* KI-Entwickler
* Daten bzw. Domänen-Experte
* KI-Endanwender
** Potentiell als Aus- oder Weiterzubildende
</details>]
<br>
<details style="margin-left: 30px">
<summary>Fragestellung: Auf welche Fragen soll die KI antworten können um nützlich, effektiv und verlässlich zu sein?</summary>
<p>(text-style: "underline", "bold") [Hinweis:] Die folgende Aufzählung ist nicht erschöpfend und fokussiert sich auf KI-gestützte Klassifikationsverfahren.</p>
<details style="margin-left: 22px">
<summary>Wie sind die //Daten// beschaffen auf die die KI trainiert wurde?</summary>
* Woher stammen die Daten?
* Wie wurden die Daten vorverarbeitet und gelabelt?
* Wie groß ist der Trainingsdatensatz und wie ist er zusammengesetzt? Wie sind die features verteilt und die Klassen vertreten?
* Auf was für Daten wurde das System nicht trainiert?
* Welche Schranken für die Inferenz und was für Verzerrungen bringen die Daten möglicherweise mit sich? Welche Qualitätserfordernisse stellt die KI an ihre Eingaben, wann sind diese hinreichend ähnlich zu den Trainingsdaten?
</details>
<details style="margin-left: 22px">
<summary>Wie sind die //Ausgaben// des Systems bestimmt?</summary>
* Was kann das System leisten und was nicht?
* In welche Prozesse und Systeme gehen die Ausgaben der KI ein?
* Wofür kann ich die KI-Ausgaben benutzen und was für Workflows bieten sich dafür an?
</details>
<details style="margin-left: 22px">
<summary>Wie //genau// oder verlässlich sind die Vorhersagen des Modells?</summary>
* Wie oft produziert das System eine falsche Ausgabe?
* Gibt es Bedingungen unter denen sich das System tendenziell richtig oder verkehrt entscheidet? Wie sehen diese aus?
* Was sind die Schranken des Systems?
* Welche Art von Fehlern wird das System wahrscheinlich machen?
* Wann rechtfertigt die Leistungsfähigkeit des Systems seinen Einsatz?
</details>
<details style="margin-left: 22px">
<summary>//Wie// geht das System allgemein bei der Entscheidungsfindung vor?</summary>
* Was für Eigenschaften berücksichtigt das System?
* Wird Feature X für die Vorhersagen genutzt oder nicht?
* Wie sieht die allgemeine Logik des Systems aus?
* Gewichtet das System unterschiedliche Features in unterschiedlichem Maße?
* Welche Art von Regeln wendet es an?
* Wie wirkt sich ein bestimmtes Merkmal auf seine Vorhersagen aus?
* Welche Regeln und Features sind für Vorhersagen am wichtigsten?
* Welche Art von Algorithmus wird verwendet? Wie wurden die Parameter festgelegt?
</details>
<details style="margin-left: 22px">
<summary>//Warum// hat die KI bei dieser Eingabe diese Entscheidung getroffen?</summary>
* Welche Features waren für das System bei dieser Entscheidung wichtig?
* Warum wurden für zwei bestimmte Instanzen die gleichen Vorhersagen getroffen?
</details>
<details style="margin-left: 22px">
<summary>//Warum// wurde diese Instanz //nicht// auf einer bestimmten Weise klassifiziert?</summary>
* Warum wurde die Instanz stattdessen so klassifiziert, wie sie klassifiziert wurde?
* Warum wurden zwei bestimmte Instanzen durch die KI unterschiedlich klassifiziert?
</details>
<details style="margin-left: 22px">
<summary>//Wie// könnte ich die Instanz //verändern//, damit sie auf einer bestimmten anderen Weise bewertet oder behandelt wird?</summary>
* Was ist die minimale (realistische) Veränderung die genügt damit die Instanz anders klassifiziert wird?
* Wie könnte ich ein bestimmtes Feature verändern, sodass die KI die Instanz anders klassifiziert?
* Wie sehen ähnliche Eingaben aus, die aber anders klassifiziert werden?
</details>
<details style="margin-left: 22px">
<summary>In welchem Rahmen kann man die Eingabe verändern und immer noch die gleiche Entscheidung von der KI erhalten?</summary>
* Welcher Wertebereich ist für ein bestimmtes Feature zulässig, damit diese Vorhersage gleich bleibt?
* Welche Feature(-werte) müssen vorhanden sein, um die aktuelle Entscheidung der KI zu gewährleisten? Welche Belegungen der Feature würden die Entscheidung verändern?
* Was sind charakteristische Eingaben für diese (Art von) Ausgabe?
</details>
* Wie würde das KI-System auf eine veränderte Eingabe reagieren?
<br>
<p>Nachdem Sie Fragen ausgesucht haben können Sie sich dazu folgende Follow-Up Fragen stellen:</p>
<details style="margin-left: 22px">
<summary>Was bezwecken Sie mit einer Antwort auf ihre Fragen an das KI-System?</summary>
Es ist sinnvoll den Nutzer nicht mit Informationen zu überladen und ihm Erklärungen nur dann anzubieten, wenn er sie braucht.
</details>
<details style="margin-left: 22px">
<summary>Was erwarten Sie sich von den Antworten?</summary>
Viele XAI-Methoden haben eine Bedeutung die sich nicht unbedigt mit den Nutzererwartungen deckt oder verkehrt interpretiert werden kann. Manche XAI-Techniken könnten auch ungenau oder für den Zweck falsch kallibriert sein.
</details>
<br>
<p>Dieser Teil des Tools wurde auf Grundlage von ($cite_link: "`[2]`", "https://doi.org/10.1145/3313831.3376590") und ($cite_link: "`[3]`", "https://doi.org/10.1145/1620545.1620576") erstellt.</p>\
</details>\
<br>
''Fortfahren'', weiter mit [[Verfahren zur Evaluierung von XAI->XAI Evaluation Tool]].}
$lifecycle_overview
<br>
<br>
<==
(text-style: "underline") [Quellen:]
`[1]`: S. Mohseni, N. Zarei and E. D. Ragan, ($cite_link: "“A Multidisciplinary Survey and Framework for Design and Evaluation of Explainable AI Systems”", "https://doi.org/10.1145/3387166"), ACM Transactions on Interactive Intelligent Systems 11, no. 3-4, pp. 1–45, (2021)
`[2]`: Q. V. Liao, D. Gruen and S. Miller, ($cite_link: "“Questioning the AI: Informing Design Practices for Explainable AI User Experiences”", "https://doi.org/10.1145/3313831.3376590"), Proceedings of the 2020 CHI Conference on Human Factors in Computing Systems, (2020)
`[3]`: B. Y. Lim and A. K. Dey, ($cite_link: "“Assessing Demand for Intelligibility in Context-Aware Applications”", "https://doi.org/10.1145/1620545.1620576"), Proceedings of the 11th international conference on Ubiquitous computing, pp. 195-204, (2009)\
\$add_page$humaine_logo\
=><=
##XAI Toolbox
<==>
{
Die steigende Komplexität moderner Modelle führt dazu, dass das Verhalten und die Vorhersagen schwer nachvollziehbar werden.
Dieses //Black-Box//-Phänomen erschwert nicht nur die Interpretation der Ergebnisse, sondern ebenfalls den gesamten Entwicklungsprozess.
<br>
Um dieser Schwierigkeit zu begegnen eignen sich Methoden aus dem Bereich der erklärbaren Künstliche Intelligenz (XAI).
Sie gewähren Einblicke in die Funktionsweise von KI.
Dies ermöglicht es, die Logik der KI zu erforschen, zu verstehen und letztlich zu kontrollieren und zu verbessern.
Für die Humanzentrierung heißt das mehr *Akzeptanz* gegenüber der KI und *zuverlässigere* Mensch-KI-Interaktion.
<div style="flex: 1; text-align: center;">
<img src="https://miro.medium.com/v2/resize:fit:720/format:webp/1*VGys7mWRRo2dlvXf4lGvoA.png" style="width: 600px; margin-top: 10px;">
<p style="text-align: center; margin-top: -10px;">
(text-size: 0.6)[Black-Box vs. Explainable Model ($cite_link: "`[1]`", "https://medium.com/advancing-analytics/how-to-explain-your-machine-learning-model-using-shap-449cf05d5160")].
</p>
</div>
}
{
''Gemäß Du et al.'' ($cite_link: "`[2]`", "https://arxiv.org/abs/1808.00033") ''kann XAI in 2 große Kategorien eingeteilt werden'':
* Intrinsic Interpretable Models: Hierbei wird die Erklärbarkeit direkt in das Modell integriert bzw. ist das Modell von sich aus bereits einfach interpretierbar. Populäre Bsp. sind Decision Trees oder auch regelbasiertes Lernen.
* Post-hoc Erklärungen: Hierbei wird die Erklärbarkeit integriert nachdem die KI fertig entwickelt wurde. Ein neues Modell, bzw. bestimmte Techniken können genutzt werden um die Vorhersagen und unter gewissen Einschränkungen auch die Funktionsweise der KI selbst zu erklären. Hier werden weiterhin agnostische und spezifische Erklärungsansätze unterschieden. Die ersteren sind universell für alle, die letzteren lediglich für bestimmte Machine Learning Modelle anwendbar ($cite_link: "`[3]`", "https://link.springer.com/chapter/10.1007/978-3-030-68640-6_2").
''Weiterhin werden diese Ansätze zudem noch in lokale und globale Erklärungen unterschieden'':
* Lokal: Hier beziehen sich die Erklärungen auf die individuellen Modellentscheidungen und helfen zu verstehen, wie ein bestimmter Input das entsprechende Resultat erzeugt.
* Global: Hier beziehen sich die Erklärungen auf übergreifende Komponenten des Modells, bzw. dessen generellen Mechaniken und allgemeinem Vorgehen.
''Nachfolgend eine Auflistung einiger populärer XAI Techniken, entnommen von ''($cite_link: "`[4]`", "https://doi.org/10.1007/978-3-031-04083-2_2")($cite_link: "`[5]`", "http://resolver.tudelft.nl/uuid:34785364-3a1a-4ac0-be8b-668e4fd01721"):
<br>
<details style="margin-left: 30px">
<summary>Partial Dependence Plots (PDP)</summary>
* PDPs visualisieren den durchschnittlichen Zusammenhang zwischen einem oder mehreren Merkmalen und der Vorhersage eines Modells.
* Dabei wird der Einfluss eines Merkmals untersucht, während alle anderen Merkmale konstant gehalten werden.
* So lässt sich herausfinden, wie sich die Vorhersage des Modells verändert, wenn der Wert des untersuchten Merkmals variiert.
* PDPs sind hilfreich, um die Wirkung einzelner Merkmale zu verstehen, insbesondere in komplexen Modellen wie Entscheidungsbäumen oder neuronalen Netzen.
<div style="flex: 1; text-align: center;">
<img src="https://scikit-learn.org/stable/_images/sphx_glr_plot_partial_dependence_006.png" style="width: 650px; margin-top: 10px;">
<p style="text-align: center; margin-top: -5px;">
(text-size: 0.6)[Partial Dependence für den Bike-Datensatz ($cite_link: "`[6]`", "https://christophm.github.io/interpretable-ml-book/pdp.html")].
</p>
</div>
</details>
<br>
<details style="margin-left: 30px">
<summary>Feature Importance</summary>
* Die Feature Importance gibt an, wie stark sich ein Merkmal auf die Vorhersage des Modells auswirkt.
* Es gibt unterschiedliche Methoden zur Bestimmung der Wichtigkeit, zum Beispiel durch die Analyse von Entscheidungsbäumen oder durch Permutationstests.
* Merkmale mit einer hohen Wichtigkeit haben einen großen Einfluss auf die Modellvorhersage, während unwichtige Merkmale wenig oder gar keinen Einfluss haben.
* Diese Metrik ist besonders nützlich, um festzustellen, welche Merkmale in einem Modell entscheidend sind und welche vernachlässigt werden können.
<div style="flex: 1; text-align: center; margin-left: 20px;">
<img src="https://scikit-learn.org/stable/_images/sphx_glr_plot_permutation_importance_002.png" style="width: 425px; margin-top: 10px;">
<p style="text-align: center; margin-top: -15px;">
(text-size: 0.6)[Permutation Feature Importance für den Titanic-Datensatz ($cite_link: "`[6]`", "https://christophm.github.io/interpretable-ml-book/interaction.html")].
</p>
</div>
</details>
<br>
<details style="margin-left: 30px">
<summary>Local Interpretable Model Agnostic Explanations (LIME)</summary>
* Hierbei wird die Vorhersage eines komplexen Modells durch den Einsatz eines einfach erklärbaren Ersatz Modells verständlich.
* Die Eingaben werden lokal um einen Datenpunkt variiert und das Ausgabeverhalten analysiert.
* Das Ersatzmodell wird auf die Ausgaben gefittet.
<div style="flex: 1; text-align: center; margin-left: 20px;">
<img src="https://c3.ai/wp-content/uploads/2020/10/Lime1-500x270.png" style="width: 400px; height: auto; margin-top: 0px;">
<p style="text-align: center; margin-top: -30px;">
(text-size: 0.6)[Schematische Darstellung von LIME ($cite_link: "`[6]`", "https://christophm.github.io/interpretable-ml-book/lime.html")].
</p>
</div>
</details>
<br>
<details style="margin-left: 30px">
<summary>Anchors</summary>
* Sind Entscheidungsregeln die Vorhersagen eines KI-Modells erklären. Sie definieren Regionen im Merkmalsraum, in denen die Vorhersagen fest bzw. „verankert“ sind.
* Ein guter “Anker” sollte eine hohe Präzision und Abdeckung haben. Präzision ist der Anteil der Datenpunkte in der vom Anker definierten Region, die dieselbe Klasse haben wie der zu erklärende Datenpunkt. Abdeckung beschreibt, wie viele Datenpunkte auf eine Anker-Entscheidungsregel anwendbar sind.
<div style="flex: 1; text-align: center;">
<img src="https://christophm.github.io/interpretable-ml-book/images/anchors-visualization.png" style="width: 400px; object-fit: cover; margin-top: 10px;">
<p style="text-align: center;">
(text-size: 0.6)[Schematischer Vergleich von Anchors vs. LIME ($cite_link: "`[6]`", "https://christophm.github.io/interpretable-ml-book/anchors.html")].
</p>
</div>
</details>
<br>
<details style="margin-left: 30px">
<summary>Shapley Additive exPlanations (SHAP)</summary>
* Dieser Ansatz basiert auf Shapley-Werten aus der Spieltheorie und weist jedem Merkmal einen solchen sogenannten SHAP-Wert zu.
* Der Einfluss eines Merkmals auf die Gesamtvorhersage wird numerisch quantifiziert, indem die Merkmale nacheinander einzeln weggelassen und die Veränderungen in der Modellvorhersage gemessen werden.
* Positive SHAP-Werte bedeuten, dass der aktuelle Wert dieses Merkmals das Ergebnis in die "positive" Richtung beeinflusst, negative Werte, dass das Ergebnis in die entgegengesetzte Richtung beeinflusst wird.
<div style="flex: 1; text-align: center;">
<img src="https://www.aidancooper.co.uk/content/images/size/w960/2021/11/beeswarm.png" style="width: 500px; object-fit: cover; margin-top: 10px;">
<p style="text-align: center; margin-top: 0px;">
(text-size: 0.6)[SHAP Values für den Housing-Datensatz ($cite_link: "`[6]`", "https://christophm.github.io/interpretable-ml-book/shap.html")].
</p>
</div>
</details>
<br>
<details style="margin-left: 30px">
<summary>Counterfactuals</summary>\
* Hierbei werden Gegenbeispiele zu dem aktuellen Modellverhalten auf Grundlage real vorliegender Datenpunkte erzeugt.
* Die Gegenbeispiele führen zu differierenden Modellausgaben und zeigen, wie sich dass Modell zu anderen Ausgaben führen lassen kann.
* Die Gegenbeispiele sind in der Regel so konstruiert, dass sie realistisch sind und möglichst wenig von dem ursprünglichen Modellverhalten abweichen.
</details>
<br>
Holzinger et al. ($cite_link: "`[4]`", "https://doi.org/10.1007/978-3-031-04083-2_2") kann zudem eine Übersicht über einige Repositorien für XAI Techniken entnommen werden.
<br>
(text-style: "bold")[Wo wollen Sie XAI einsetzen?]
<p>$developer_col[$target_symbol ] [[XAI für die Unterstützung der KI-Entwicklung->Developer-targetting XAI Overview]]\
<br>
[[XAI bei dem Gebrauch der KI->User-targetting XAI Selection Tool Intro]]</p>
}
''Zurück'', zum [[Pre-Modeling->Pre-Modeling]].
''Zurück'', zum [[Model Design->Model Design]].
''Zurück'', zum [[Deployment->Deployment]]
$lifecycle_overview
<br>
<br>
<==
(text-style: "underline") [Quellen:]
`[1]`: Lantos, D., Ogunlami, A., Regunath, G., ($cite_link: "“How to explain your machine learning model using SHAP?”", "https://medium.com/advancing-analytics/how-to-explain-your-machine-learning-model-using-shap-449cf05d5160"), https://medium.com/advancing-analytics/how-to-explain-your-machine-learning-model-using-shap-449cf05d5160 (Zugriff 19.10.2024)
`[2]`: Du, M., Liu, N., Hu, X., ($cite_link: "“Techniques for Interpretable Machine Learning”", "https://arxiv.org/abs/1808.00033"), arXiv:1808.00033v3 `[cs.LG]` (2019)
`[3]`: Gianfagna, L., Di Cecco, A., ($cite_link: "“Explainable AI: needs, opportunities, and challenges”", "https://link.springer.com/chapter/10.1007/978-3-030-68640-6_2"), In: Explainable AI with Python. Springer, Cham. https://doi.org/10.1007/978-3-030-68640-6_2, (2021)
`[4]`: Holzinger, A., Saranti, A., Molnar, C., Biecek, P., Samek, W., ($cite_link: "“Explainable AI Methods – A Brief Overview”", "https://doi.org/10.1007/978-3-031-04083-2_2"), LNAI 13200, pp. 13–38 (2022)
`[5]`: Knap, M., ($cite_link: "“Model-Agnostic XAI Models: Benefits, Limitations and Research Directions”", "http://resolver.tudelft.nl/uuid:34785364-3a1a-4ac0-be8b-668e4fd01721"), http://resolver.tudelft.nl/uuid:34785364-3a1a-4ac0-be8b-668e4fd01721 (2024)
`[6]`: Molnar, C., ($cite_link: "“Interpretable Machine Learning: A Guide for Making Black Box Models Explainable”", "https://christophm.github.io/interpretable-ml-book/"), https://christophm.github.io/interpretable-ml-book/anchors.html (2022)\
\$add_page{(set: _current to (passage:)'s name)
(set: _breadcrumbs to (a: ))
<!-- Loop through the top-level navigation elements -->
(set: _i to 1)
(for: each _item, ...$nav_elements)[
(if: _item's 1st is _current)[
(if: _i > 3)[
(set: _breadcrumbs to (a: (link-goto: "Übersicht", "KI-Lifecycle"), " > ", _item's 1st))
]
]
(set: _i to it+1)
(else-if: (_item's 4th)'s length > 0)[
<!-- If the current passage is in a sub-level, search through the sub-items -->
(for: each _subitem, ..._item's 4th)[
(if: _subitem's 2nd is _current)[
(set: _breadcrumbs to (a: (link-goto: "Übersicht", "KI-Lifecycle"), " > ",
(link-goto: _item's 1st, _item's 2nd), " > ",
_subitem's 1st))
]
]
]
]
<!-- Display the breadcrumbs -->
(text-size:0.7)[
(if: _breadcrumbs's length > 0)[
(for: each _crumb, ..._breadcrumbs)[
_crumb
]
]
]}<!--Iterate through story elements and add them to Sidebar-->
(set: _margin_left to 0)\
(if: $sidebar_visible_flag is true)[\
(append: ?SideBar)[\
(text-size:1.0)[''Navigation'']\
(for: each _item, ...$nav_elements)[ \
(set: _page_name to _item's 1st) \
(set: _page_link to _item's 2nd) \
(set: _visible_flag to _item's 3rd)\
(set: _sub_pages to _item's 4th)\
\
(if: _page_link is $lifecycle_members's 1st)[\
(set: _margin_left to 0)\
(text-size:0.9)[''Lifecycle'']
]\
(if: _visible_flag is true)[\
(css: "line-height: 2em;")[(text-indent: _margin_left)[(link-goto: _page_name, _page_link)]]
]\
(if: _page_link is $lifecycle_members's last)[(set: _margin_left to 0)]\
(if: _sub_pages's length is not 0)[\
(set: _sub_section_flag to false)\
\
<!--Check if the current page is one of the subpages-->\
(for: each _sub_page, ..._sub_pages)[\
(set: _sub_page_name to _sub_page's 1st)\
(set: _sub_page_link to _sub_page's 2nd)\
(if: (passage:)'s name is _sub_page_link)[\
(set: _sub_section_flag to true)\
]\
]\
\
(for: each _sub_page, ..._sub_pages)[\
(set: _sub_page_name to _sub_page's 1st)\
(set: _sub_page_link to _sub_page's 2nd)\
(set: _visible_flag to _sub_page's 3rd)\
(if: ((passage:)'s name is _page_link or _sub_section_flag is true) and _visible_flag is true)[\
(css: "margin-left: 20px; opacity: 0.7")[\
(text-size:0.75)[(text-indent: _margin_left)[(link-goto: _sub_page_name, _sub_page_link)]]
]\
]\
]\
(if: _page_link is $lifecycle_members's last)[(text-size:0.9)[''Toolboxes'']
]\
]\
]\
]\
{
(append: ?SideBar)[
(text-size:1.0)[''Legende'']\
<p>\
<div id="progressbar" style="position:relative;">\
<div class="bar"></div>\
</div>\
</p>\
<span id="tooltip" style="z-index: 10; display:none; position:absolute; background-color:#333; color:#fff; padding:5px; border-radius:4px;">\
''Seiten, die Sie noch nicht besucht haben: ''<br>\
(for: each _item, ...$all_pages)[\
(if: not ($passages_visited contains _item))[\
_item
]\
]\
</span>\
<script>
document.getElementById("progressbar").onmouseover = function() {
document.getElementById("tooltip").style.display = "block";
};
document.getElementById("progressbar").onmouseout = function() {
document.getElementById("tooltip").style.display = "none";
};
</script>\
]\
}
(set: _num_passages_visited to $passages_visited's length)\
(print: "<script>GE.updateProgressBar(" + (text: $num_passages_to_visit) + "," + (text: _num_passages_visited) + ");")\
\
<p>
(append: ?SideBar)[\
(css: "line-height: 2em; margin-after: 0em")[\
(text-size: 0.7)[$decision_maker_col[$target_symbol Strategisch]]
(text-size: 0.7)[ $developer_col[$target_symbol Technisch]]\
</p>
]]
]=><=
##Active Learning Toolbox
<==>
{
Active Learning (AL) ist eine Methode des überwachten maschinellen Lernens, bei der ein lernendes System gezielt ungelabelte Datenpunkte auswählen kann, über dessen Vorhersage es unsicher ist, um diese von Expert/innen labeln zu lassen.
Es gibt verschiedene Arten AL zu realisieren ($cite_link: "`[1]`", "https://burrsettles.com/pub/settles.activelearning.pdf").
Im Folgenden werden einige der etablierten Verfahren umrissen:
<br>
<details style="margin-left: 30px">
<summary>Pool-Based Sampling</summary>\
<p>
* Das Modell wird oft zunächst auf dem vollständig gelabelten Datensatz trainiert
* Dann evaluiert das Modell zunächst den **gesamten** ungelabelten Datensatz
* Anschließend wählt das Modell die ungelabelten Datenpunkte aus, die zum Trainingsdatensatz hinzugefügt werden sollen
* Diese Anfragen werden dann von einem Menschen verarbeitet und annotiert
* Die Auswahl findet häufig über die Unsicherheit der Vorhersage statt (Klassenwahrscheinlichkeiten)
* Der Hauptnachteil bei diesem Verfahren ist, dass in jedem Trainingsschritt der (möglicherweise enorme) ungelabelte Datensatz durchlaufen wird
</p>
</details>
<br>
<details style="margin-left: 30px">
<summary>Stream-Based Selective Sampling</summary>\
<p>
* Bei dieser Methode wird angenommen, dass ungelabelte Datenpunkte nicht in Mengen vorliegen, sondern einzeln eintreffen (oder gesamplet werden können)
* Das Modell sampelt und evaluiert ungelabelte Datenpunkte **einzelnd nacheinander**
* Es entscheidet dann, ob es eigenständig ein Label zuweist oder eine/n Annotator/in hinzuzieht
* Dadurch können gezielt Datenpunkte ausgewählt werden, die sehr informativ sind, oder gegenüber denen das Modell unsicher ist
* Ein Nachteil ist, dass das Modell im frühen Training einen hohen Annotationsaufwand hervorrufen kann
</p>
</details>
<br>
<details style="margin-left: 30px">
<summary>Membership Query Synthesis</summary>\
<p>
* Bei dieser Methode generiert das Modell Datenpunkte zum Annotieren aus dem Eingaberaum
* Typischerweise werden neue Datenpunkte **de novo** synthetisiert ($cite_link: "`[2]`", "https://www.sciencedirect.com/science/article/abs/pii/S0925231214008145")
* Das kann bedeuten, dass für bspw. Bilddaten Ausschnitte eines Bildes verwendet werden
* Diesen synthetischen Datenpunkten sollen dann das dem Bild zugrunde liegende Label zugeordnet zu werden
* Dadurch kann das Modell schnell und effizient, gerade bei geringen Datenmengen, lernen
* Ein Nachteil ist, dass die Anfragen unnatürlich erscheinen können und damit schwierig zu annotieren sind
</p>
</details>
<br>
Alle AL Methoden involvieren das Evaluieren der Informativität von ungelabelten Datenpunkten, um zu entscheiden, ob diese relevant sind oder nicht.
Es gibt eine Menge an Verfahren, die diese Aufgabe bewältigen sollen.
Im Folgenden werden einige der populärsten Methoden benannt:
<br>
<details style="margin-left: 30px">
<summary>Query Strategies</summary>\
<p>
* Variance Reduction ($cite_link: "`[1]`", "https://burrsettles.com/pub/settles.activelearning.pdf")
* Uncertainty Sampling ($cite_link: "`[3]`", "https://arxiv.org/abs/cmp-lg/9407020")
* Query-By-Committee ($cite_link: "`[4]`", "https://dl.acm.org/doi/10.1145/130385.130417")
* Expected Model Change ($cite_link: "`[5]`", "https://papers.nips.cc/paper_files/paper/2007/hash/a1519de5b5d44b31a01de013b9b51a80-Abstract.html")
* Expected Error Reduction ($cite_link: "`[6]`", "https://dl.acm.org/doi/10.5555/645530.655646")
</p>
</details>
<br>
Die Verwendung von Active Learning kann einige Vorteile bieten.
Dazu gehören im Allgemeinen:
* Höhere Konvergenzgeschwindigkeit
* Reduzierung der Label-Kosten
* Potenzielle bessere Modellgenauigkeit, durch die Fokussierung auf schwierige Datenbereiche
Ebenso bietet Active Learning einige humanzentrierte Vorteile:
* Reduzierung des Aufwands für Labeling-Experten
* Effiziente Nutzung des Expertenwissens
* Weniger monotone Arbeit, durch anforderungsreichere Label-Anfragen
* Bessere Überwachung und Verständnis der Modellleistung
<br>
''Zurück'', zum [[Human-in-the-loop->Human-in-the-loop]].}
$lifecycle_overview\
<br>
<br>
<==
(text-style: "underline") [Quellen:]
`[1]`: Settles, B. ($cite_link: "“Active Learning Survey”", "https://burrsettles.com/pub/settles.activelearning.pdf"), Computer Sciences Technical Report 1648. University of Wisconsin–Madison (2010).
`[2]`: Wang, L., Hu, X., Lu, J. ($cite_link: "“Active Learning via query synthesis and nearest neighbour search”", "https://www.sciencedirect.com/science/article/abs/pii/S0925231214008145"), Neurocomputing, 147 (426-434), (2015).
`[3]`: Lewis, D. & Gale, W. ($cite_link: "“A Sequential Algorithm for Training Text Classifiers”", "https://arxiv.org/abs/cmp-lg/9407020"), Proceedings of the ACM SGIR Conference on Research and Development in Information Retrieval (3-12), (1994).
`[4]`: Seung, H., Opper, M., Sompolinsky, H. ($cite_link: "“Query by committee”", "https://dl.acm.org/doi/10.1145/130385.130417"), Proceedings of the fifth annual workshop on Computational learning theory (287-294), (1992).
`[5]`: Settles, B., Craven, M., Ray, S. ($cite_link: "“Multiple-instance active learning”", "https://papers.nips.cc/paper_files/paper/2007/hash/a1519de5b5d44b31a01de013b9b51a80-Abstract.html"), Advances in Neural Information Processing Systems (NIPS), 20 (1289-1296), (2008).
`[6]`: Roy, N. & McCallum, A. ($cite_link: "“Toward optimal active learning through sampling estimation of error reduction”", "https://dl.acm.org/doi/10.5555/645530.655646"), Proceedings of the International Conference on
Machine Learning (ICML) (441-448), (2001).
`[7]`: Roy, N. & McCallum, A. ($cite_link: "“Toward optimal active learning through sampling estimation of error reduction”", "https://dl.acm.org/doi/10.5555/645530.655646"), Proceedings of the International Conference on
Machine Learning (ICML) (441-448), (2001).
\$add_page
=><=
##Einleitung
<==>
{//tachAId// ist im Wesentlichen um die zentralen Phasen im Lebenszyklus einer KI-Lösung herum organisiert: ''Konzeption'', ''Data Collection'', ''Pre-Modeling'', ''Model Design'' und ''Deployment''.
Zu jeder Phase werden tiefergehende Aspekte vorgestellt und eingeordnet, sodass Sie sich je nach Bedarf detaillierter informieren können.
Dieses Phasenmodell des Lebenszyklus lehnt an dem Industriestandard für das Datamining an ($cite_link: "`[1]`", "https://cs.unibo.it/~danilo.montesi/CBD/Beatriz/10.1.1.198.5133.pdf") (Abb. 1), wobei die Betrachtung um die Konzeption und die Datengewinnung erweitert wird.
Pre-Modeling umfasst dabei sinngemäß Datenverständnis und -vorbereitung und Model Design umfasst das Modelieren an sich, als auch die Evaluierung.
}
<div style="float: right; text-align: center; margin: 0em 0em 0em 2em;">\
<div style="display: inline-block;">\
<img src="https://i0.wp.com/statistik-dresden.de/wp-content/uploads/2012/04/CRISP-DM_Process_Diagram1.png?w=479&ssl=1" style="width: 400px;">\
<p style="width: 400px; margin: 0;">(text-size: 0.6)[Abb. 1: CRISP-DM: Cross Industry Standard Process for Data Mining ($cite_link: "`[2]`", "https://statistik-dresden.de/crisp-dm-ein-standard-prozess-modell-fur-data-mining/")].</p>\
</div>\
</div>\
{
//tachAId// ordnet potenzielle Herausforderungen, die sich aus der Schnittstelle von Mensch und KI ergeben, entsprechend diesem Phasenmodell zu und verknüpft sie mit relevanten technischen Maßnahmen und Werkzeugen.
Dadurch soll// tachAId// eine KI-Entwicklung, die mit menschenzentrierten Zielen im Einklang steht, fördern.
<details style="margin-left: 0px">\
<summary>Unser Tool basiert auf einem erweiterten human-centered AI (HCAI) Framework.</summary>
Dieses Framework nutzt sowohl ethische Kernprinzipien als auch arbeitswissenschaftliche Perspektiven, um HCAI-bezogene Herausforderungen und Ziele zu definieren und lehnt an den EU-Ethikrichtlinien für vertrauenswürdige KI ($cite_link: "`[3]`", "https://op.europa.eu/de/publication-detail/-/publication/d3988569-0434-11ea-8c1f-01aa75ed71a1") an.
</details>
}
{
Obwohl das Tool keine detaillierte Implementierungshilfen gibt, werden dennoch Hinweise zur Umsetzung und existierende Ansätze präsentiert.
Das soll ermöglichen, dass //tachAId// auch ohne wissenschaftlichte Vorabeit eigenständig genutzt werden kann.
Die meisten Tipps sind allgemeine Best Practices, die unabhängig von der Art des Algorithmus und der Anwendung sind.
}
{
Neben den einzelnen Phasen, wurden Themenbereiche, die zahlreiche Einflüsse entlang des gesamten KI-Lifecycles haben, in "Toolboxen" zusammengefasst.
Diese Schwerpunkte von //tachAId// umfassen dabei insbesondere die Automated Machine Learning (<b>AutoML</b>) und Explainable Artifical Intelligence (<b>XAI</b>) Toolbox.
Gerade das Zusammenspiel von AutoML und XAI kann eine Vielzahl von Vorteilen in sich bergen.
<br>
Beispielsweise kann der Entwicklungsprozess der KI-Lösung beschleunigt werden, indem einerseits auf bestehende Lösungen zugegriffen wird (AutoML), andererseits aber auch aus den Erkenntnissen über die Funktionsweise des KI-Modells abgeleitet wird, welche nächsten Entwicklungsschritte sinnvoll sind (XAI).
Neben dem strategischen Vorteil bietet die Nutzung dieser beiden Technologien auch eine Vielzahl von Vorteilen in Bezug auf die Humanzentrierung der KI.
So kann durch die Erklärbarkeit von Modellen die Akzeptanz des Systems unter den Nutzern gesteigert, als auch die Möglichkeit zur Kooperation zwischen Mensch und Maschine geschaffen werden (<b>Human-in-the-loop</b>).
}
{
Im Anschluss folgen die Nutzungshinweise, um Sie mit der Bedienung von //tachAId// vertraut zu machen.
}
''Weiter'' zu den [[Nutzungshinweisen->Nutzungshinweise]].
<br>
<br>
<==
(text-style: "underline") [Quellen:]
`[1]`: Wirth and Hipp, ($cite_link: "“CRISP-DM: Towards a Standard Process Model for Data Mining.”", "https://cs.unibo.it/~danilo.montesi/CBD/Beatriz/10.1.1.198.5133.pdf"), Proceedings of the 4th
international conference on the practical applications of knowledge discovery and data mining (4), pp. 29–39., (2000)
`[2]`: Statistik Dresden, ($cite_link: "https://statistik-dresden.de/crisp-dm-ein-standard-prozess-modell-fur-data-mining/", "https://statistik-dresden.de/crisp-dm-ein-standard-prozess-modell-fur-data-mining/") (Zugriff am 01/10/2024)
`[3]`: EU-Ethikrichtlinien für vertrauenswürdige KI, ($cite_link: "https://op.europa.eu/de/publication-detail/-/publication/d3988569-0434-11ea-8c1f-01aa75ed71a1", "https://op.europa.eu/de/publication-detail/-/publication/d3988569-0434-11ea-8c1f-01aa75ed71a1") (Zugriff am 01/10/2024)\
\$add_page
<script>
function EmbedTwineUpdateHeight(){
var passage = document.getElementsByTagName("tw-passage")[0];
if (passage === undefined){//SugarCube
passage = document.getElementById("passages");
}
var newHeight = passage.offsetHeight;
if(newHeight<500){newHeight=500;}
window.parent.postMessage(["setHeight", newHeight], "*");
console.log(newHeight);
}
setTimeout(EmbedTwineUpdateHeight, 50);
</script>