From 8bca9556b16b41db7808b54a30bbca984d41d29f Mon Sep 17 00:00:00 2001 From: "Dr. Min Ye" <> Date: Sun, 2 Mar 2025 14:19:36 +0100 Subject: [PATCH 1/3] submit draft 1 --- docs/conf.py | 5 +- docs/day1.rst | 1050 ++++++++++++++++++++++++++++++++++++++++++++++++ docs/day2.rst | 230 +++++++++++ docs/day3.rst | 132 ++++++ docs/day4.rst | 36 ++ docs/index.rst | 76 ++-- 6 files changed, 1477 insertions(+), 52 deletions(-) create mode 100644 docs/day1.rst create mode 100644 docs/day2.rst create mode 100644 docs/day3.rst create mode 100644 docs/day4.rst diff --git a/docs/conf.py b/docs/conf.py index afebda0..1a0ac48 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -29,9 +29,9 @@ # The master toctree document. master_doc = "index" -project = "Neural Network Tutorial" +project = "KI Schulung" author = "Min Ye, Veit Schiele" -copyright = f"2024, {author}" +copyright = f"2025, {author}" # The full version, including alpha/beta/rc tags release = re.sub("^v", "", os.popen("git describe --abbrev=0").read().strip()) @@ -53,6 +53,7 @@ "sphinxext.opengraph", "sphinx_copybutton", "sphinx_inline_tabs", + 'sphinx.ext.mathjax' # to allow mathematical formular ] # Add any paths that contain templates here, relative to this directory. diff --git a/docs/day1.rst b/docs/day1.rst new file mode 100644 index 0000000..fd857b1 --- /dev/null +++ b/docs/day1.rst @@ -0,0 +1,1050 @@ +Tag 1: Einführung, Überwachtes Lernen, Regression +============================== + +Die Schulung wird mit den grundlegenden Konzepten der Künstlichen Intelligenz (KI) und Maschinellen Lernens (ML) eingeleitet und anhand praktischer Implementierungen veranschaulicht. + + +Gliederung +---------- + +.. list-table:: Schulungsstruktur für KI-Grundlagen: Tag 1 + :header-rows: 1 + + * - Kapitel + - Inhalte + * - Einführung in Künstliche Intelligenz + - Definition und Historie der KI, Unterschiedliche Formen der KI, Anwendungsfälle, ethische Fragestellungen + * - Maschinelles Lernen: Konzepte und Typen + - Begriffe: ML, Deep Learning, Reinforcement Learning; Beispiele für reale Anwendungen + * - Überwachtes vs. Unüberwachtes Lernen + - Klassifikation vs. Regression, Clustering-Methoden + * - Trainingsdaten und Modellierung + - Datenqualität, Feature Engineering, Modelltraining + * - Evaluation von ML-Modellen + - Metriken: Accuracy (Genauigkeit), Precision (Präzision), Recall, F1-Score, MSE + * - Praktische Einführung: Lineare Regression + - Implementierung eines ML-Modells mit scikit-learn + * - Fallstudie: Vorhersage von Immobilienpreisen + - Hands-on Beispiel mit einem realen Datensatz + * - Diskussion und Fragen + - Diskussion über Anwendungen von KI in verschiedenen Bereichen + +Kapitel 1: Definition von Künstlicher Intelligenz +------------------ +Künstliche Intelligenz (KI) bezeichnet die Fähigkeit eines Computers oder einer Maschine, menschenähnliche kognitive Funktionen auszuführen. Dazu gehören Aufgaben wie Lernen, Problemlösung, Mustererkennung und Entscheidungsfindung. Der Begriff KI wurde erstmals 1956 auf der Dartmouth Conference von John McCarthy geprägt. Heute umfasst KI eine Vielzahl von Techniken, darunter maschinelles Lernen, Deep Learning und Expertensysteme. + +**Historische Entwicklung der KI** +Die Entwicklung der KI lässt sich in mehrere Phasen einteilen: + +1. **1950er–1970er: Die Pionierzeit** + +- Erste Algorithmen zur symbolischen Verarbeitung und regelbasierten Systeme wurden entwickelt. + +- Alan Turings berühmter "Turing-Test" (https://en.wikipedia.org/wiki/Turing_test) stellte eine frühe Methode zur Bewertung der Intelligenz einer Maschine vor. + +- In den 1960er Jahren entstanden erste Expertensysteme, die regelbasierte Entscheidungsfindung ermöglichten. + +2. **1980er – 1990er: Erste Fortschritte und Rückschläge** + +- KI erlebte durch das Aufkommen von neuronalen Netzen und maschinellem Lernen einen Aufschwung. + +- Aufgrund hoher Rechenkosten und begrenzter Datenverfügbarkeit flachte das Interesse an KI in den späten 1980er Jahren ab. + +3. **2000er – heute: Der Durchbruch dank Big Data und Deep Learning** + +- Fortschritte in Rechenleistung, Cloud Computing und die Verfügbarkeit großer Datenmengen haben KI auf ein neues Niveau gehoben. + +- Tiefe neuronale Netze ermöglichen Fortschritte in Spracherkennung, Bildverarbeitung und autonomem Fahren. + +**Unterschiedliche Formen der Künstlichen Intelligenz** + +KI kann auf verschiedene Art und Weisen in verschiedene Kategorien unterteilt werden. Eine Möglichkeit ist die Kategorisierung nach ihrem Funktionsumfang und ihren Anwendungsmöglichkeiten, wie von Prof. Arend Hintze definiert, Forscher und Professor der Integrative Biology an der Michigan State University (https://theconversation.com/understanding-the-four-types-of-ai-from-reactive-robots-to-self-aware-beings-67616, https://mindsquare.de/knowhow/kuenstliche-intelligenz/#der-turing-test): + +1. **Reaktive KI (Reactive AI)** + +Die erste Stufe der KI kann als "Reaktive KI" bezeichent und als ein Ur-Typ der KI angesehen werden. Sie hat weder "Gedächtnis" noch "Lernfähigkeit" und kann nur auf Eingaben reagieren für genau die eine Aufgabe, wofür sie programmiert wurde. Es ist nicht in der Lage, zukünftige Ergebnisse vorherzusagen, wenn es nicht mit den entsprechenden Informationen gefüttert wurde. + +Beispiel: Schachcomputer wie IBM Deep Blue, der auf Basis aktueller Züge die bestmöglichen Entscheidungen trifft. + +2. **Begrenzte Gedächtnis-KI (Limited Memory AI)** + +Die zweite Stufe der KI kann Informationen aus vergangenen Interaktionen nutzen, um zukünftige Entscheidungen zu verbessern. + +Beispiel: Selbstfahrende Autos, die Sensordaten aus der Umgebung speichern und auf Basis vorheriger Erfahrungen optimieren. + +Die erste und zweite Stufen der KI sind bereits teilweise im Einsatz, mit unterschiedlichen technischen Reifegrad in diversen Domänen. + +3. **Theorie des Geistes-KI (Theory of Mind AI)** *(noch in der Forschung)* + +Im Gegensatz zu den ersten beiden Formen der KI hätten die 3. und die 4. Form der KI ein eigenes Bewusstsein und Verständnis für sich selbst. Intelligente Systeme der Stufe 3 könnten menschliche Emotionen wahrnehmen und verstehen, sowie auch deren eigenes Verhalten entsprechend anpassen. + +Ziel: KI mit Verständnis für Emotionen und sozialen Kontext. + +Potenzielles Beispiel: Fortgeschrittene humanoide Roboter mit sozialem Bewusstsein. + +4. **Selbstbewusste KI (Self-Aware AI)** *(hypothetisch)* + +Diese Stufe der KI hätte ein eigenes Bewusstsein und ein Verständnis für sich selbst und käme somit dem menschlichen Bewusstsein (der menschlichen Intelligenz) am nächsten. + +Ob und wann die Entwicklung der KI jemals diese Stufe erreichen wird, ist noch viel umstritten - bisher wurde es nur in Science-Fiction Werken dargestellt. + +**Prädiktive vs. Generative KI** + +Die aktuell in der Industrie gängigen Formen der KI lassen sind insbesondere in **prädiktive KI** und **generative KI** unterscheiden: + +1. **Prädiktive KI** + + - Diese KI nutzt historische Daten, um **zukünftige Ereignisse vorherzusagen**. + + - Verwendete Algorithmen: Regression, Entscheidungsbäume, neuronale Netze. + + - Beispiele: + + - Vorhersage von Aktienkursen oder Wetterverhältnissen. + + - Diagnose von Krankheiten basierend auf medizinischen Daten. + + - Betrugserkennung im Finanzsektor. + +2. **Generative KI** + + - Diese KI erzeugt **neue Inhalte**, die zuvor nicht explizit in den Trainingsdaten enthalten waren. + + - Verwendete Modelle: Generative Adversarial Networks (GANs), Transformer-Modelle (z. B. GPT, DALL·E). + + - Beispiele: + + - Erstellung von Bildern, Musik oder Texten (z. B. KI-generierte Kunst, Chatbots). + + - Übersetzung und Zusammenfassung von Texten. + + - Deepfake-Technologien. + +**Bedeutung dieser Unterscheidung** + +- Prädiktive KI wird hauptsächlich in **Analytik und Entscheidungsfindung** eingesetzt, während generative KI für **Kreativität und Content-Erzeugung** genutzt wird. + +- In der Praxis werden oft **beide Ansätze kombiniert**, z. B. wenn eine prädiktive KI Markttrends analysiert und eine generative KI dazu passende Werbeinhalte erstellt. + + +**Anwendungsfälle von KI** + +KI findet heute in zahlreichen Bereichen Anwendung, darunter: + +- **Gesundheitswesen:** Diagnosestellung durch KI-gestützte Bildverarbeitung, Medikamentenentwicklung. + +- **Finanzwesen:** Automatische Betrugserkennung, algorithmischer Handel. + +- **Industrie:** Automatisierung von Prozessen, Qualitätskontrolle in der Fertigung. + +- **Autonome Systeme:** Selbstfahrende Autos, Drohnen, Robotersteuerung. + +- **Sprachverarbeitung:** Sprachassistenten wie Siri, Alexa oder Google Assistant. + +- **Kreative Anwendungen:** Generierung von Texten, Musik und Kunst durch KI. + +**Ethische Fragestellungen in der KI** + +Mit der rasanten Entwicklung der KI gehen auch bedeutende ethische Fragen einher: + +- **Bias und Diskriminierung:** KI-Modelle können bestehende Vorurteile aus Trainingsdaten übernehmen. + +- **Arbeitsplatzverdrängung:** Automatisierung kann menschliche Arbeitsplätze gefährden. + +- **Transparenz und Erklärbarkeit:** Viele KI-Modelle, insbesondere Deep Learning, sind schwer zu interpretieren. + +- **Verantwortung und Haftung:** Wer ist verantwortlich, wenn eine KI fehlerhafte oder schädliche Entscheidungen trifft? + +- **Datenschutz:** KI-Anwendungen erfordern oft große Datenmengen, was Datenschutzprobleme aufwirft. + + + +Kapitel 2: Maschinelles Lernen (ML): Konzepte und Typen +-------------------------------------------------- + +.. note:: + **TODO: MIT CODE BEISPIEL!** + https://www.python4data.science/de/latest/productive/dvc/dag.html + +**Definition und Konzepte des Maschinellen Lernens (ML)** + +Maschinelles Lernen (Machine Learning, ML) ist ein Teilgebiet der Künstlichen Intelligenz, das Computern ermöglicht, aus Daten zu lernen, anstatt explizit programmiert zu werden. Es gibt drei Hauptarten des ML: + +1. **Überwachtes Lernen (Supervised Learning)** +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Beim **überwachten Lernen** werden Modelle mit **gelabelten Daten** trainiert. + +Das bedeutet, dass für jeden Eingabedatensatz ein bekanntes **Ziel** existiert. + +Das Ziel des Modells ist es, eine Funktion zu lernen, die den Zusammenhang zwischen Eingaben und Ausgaben erfasst. + +Überwachtes Lernen kann sowohl für Regression als auch für Klassifikation genutzt werden. + +Beispiele hierfür sind: + +- **Klassifikation:** Vorhersage diskreter Kategorien (z. B. Spam-Filter, Bilderkennung von Hunden und Katzen). + +- **Regression:** Vorhersage kontinuierlicher Werte (z. B. Hauspreisvorhersage anhand der Wohnfläche). + +**Theoretische Konzepte des Überwachten Lernens** + +- **Trainingsprozess:** + + - Das Modell wird mit einem Trainingsdatensatz trainiert, in dem **Eingaben (Features)** und die zugehörigen **Zielwerte (Labels)** bekannt sind. + + - Die Lernfunktion (oft als **Hypothesenfunktion** bezeichnet) wird durch das Training optimiert. + +- **Modellbewertung:** + + - Das trainierte Modell wird anhand neuer Daten getestet, um sicherzustellen, dass es generalisiert und nicht nur die Trainingsdaten auswendig gelernt hat. + + - Typische Metriken: Genauigkeit, Präzision, Recall und F1-Score, Mean Squared Error (MSE). + +2. **Unüberwachtes Lernen (Unsupervised Learning)** +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Beim **unüberwachten Lernen** gibt es **keine gelabelten Daten**. + +Das Modell versucht, Muster oder Strukturen in den Daten zu entdecken. + +Dies eignet sich besonders für **Explorative Datenanalyse**, bei der keine festen Kategorien bekannt sind. + +Unüberwachtes Lernen kann direkt für Klassifikationsprobleme genutzt werden; aber nur indirekt für Regressionsprobleme, z.B. als Vorverarbeitungsschritt oder zur Merkmalextraktion, um Regression effektiver zu machen. + + +Typische Anwendungen sind: + +1. **Clustering:** + +- Ziel: Datenpunkte in Gruppen einteilen, basierend auf Ähnlichkeit. + +- Beispiele: + + - Kundensegmentierung für personalisierte Werbung. + + - Erkennung von ähnlichen Produkten in Online-Shops. + + - Gruppierung von genetischen Mustern in der Biologie. + + - Betrugserkennung durch Anomalie-Analyse in Banktransaktionen. + +2. **Dimensionsreduktion:** + +- Ziel: Komplexe Daten in eine einfachere Form umwandeln. + +- Beispiele: + + - Hauptkomponentenanalyse (PCA) zur Reduzierung hochdimensionaler Daten. + + - Visualisierung von großen Datenmengen. + + - Feature-Auswahl für effizientere Modellberechnungen. + + +3. **Theoretische Konzepte des Unüberwachten Lernens** + +- **Clustering-Algorithmen:** + + - **K-Means:** Teilt Daten in eine vordefinierte Anzahl von Clustern ein. + + - **Hierarchisches Clustering:** Erstellt eine baumartige Struktur zur Clusterbildung. + + - **DBSCAN:** Erkennt Cluster basierend auf der Dichte der Datenpunkte. + +- **Dimensionsreduktionstechniken:** + + - **PCA (Principal Component Analysis):** Extrahiert die wichtigsten Variablen aus großen Datensätzen. + + - **t-SNE (t-Distributed Stochastic Neighbor Embedding):** Visualisiert komplexe Datensätze in 2D oder 3D. + +**Vergleich: Überwachtes vs. Unüberwachtes Lernen** +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. list-table:: Vergleich von Überwachtem und Unüberwachtem Lernen + :header-rows: 1 + + * - Merkmal + - Überwachtes Lernen + - Unüberwachtes Lernen + * - Datenverfügbarkeit + - Gelabelte Daten notwendig + - Keine Labels erforderlich + * - Ziel + - Vorhersage einer bekannten Zielvariable + - Identifikation von Mustern oder Strukturen + * - Typische Algorithmen + - Lineare Regression, Entscheidungsbäume, Neuronale Netze + - K-Means, DBSCAN, PCA + * - Anwendungsbereiche + - Klassifikation, Regression + - Clustering, Dimensionsreduktion + +3. **Reinforcement Learning (Bestärkendes Lernen, RL)** +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +1. **Definition:** + + - Beim **Reinforcement Learning** (Bestärkenden Lernen, RL) lernt ein Agent durch **Interaktion mit einer Umgebung**, wobei er **Belohnungen oder Bestrafungen** erhält. + + - Das Ziel des RL ist es, eine **Optimierungsstrategie** zu entwickeln, die langfristig die höchste Gesamtbelohnung erzielt. + + - Es handelt sich um eine Form des **Lernens durch Versuch und Irrtum**, ähnlich wie ein Mensch, der durch Erfahrung lernt. + +2. **Grundprinzipien von Reinforcement Learning:** + + - **Agent** – Das KI-System, das lernt (z. B. ein Roboter, ein autonomes Auto, ein Schachprogramm). + + - **Umgebung (Environment)** – Alles außerhalb des Agents, mit dem er interagiert. + + - **Zustand (State)** – Eine Momentaufnahme der Umgebung, die den Agenten beeinflusst. + + - **Aktion (Action)** – Eine Entscheidung, die der Agent in einem bestimmten Zustand trifft. + + - **Belohnung (Reward)** – Eine numerische Bewertung der Aktion, die dem Agenten signalisiert, ob er sich der optimalen Lösung nähert oder nicht. + + - **Richtlinien (Policy)** – Eine Strategie, die den besten nächsten Schritt für den Agenten bestimmt. + + - **Qualitäts-Wert (Q-Value)** – Eine Bewertung, wie gut eine bestimmte Aktion in einem Zustand langfristig ist. + +3. **Beispiele für RL-Anwendungen:** + +- **Spielstrategien:** AlphaGo von DeepMind besiegte menschliche Meister im Go-Spiel durch RL. + +- **Autonome Fahrzeuge:** Lernen, sicher zu fahren, indem sie Belohnungen für sichere Entscheidungen erhalten. + +- **Robotik:** Industrieroboter optimieren ihre Bewegungen, um Aufgaben effizienter zu erledigen. + +- **Algorithmischer Handel:** KI-Agenten lernen, wann sie Aktien kaufen oder verkaufen sollen. + +4. **Wichtige RL-Algorithmen:** + +- **Q-Learning:** Eine tabellenbasierte Methode zur Speicherung der besten Aktionen. + +- **Deep Q-Networks (DQN):** Eine Erweiterung von Q-Learning unter Verwendung von neuronalen Netzen. + +- **Policy-Gradient-Verfahren:** Statt Werte zu lernen, lernt das Modell direkt eine optimale Strategie. + +- **Proximal Policy Optimization (PPO):** Häufig in modernen RL-Anwendungen eingesetzt (z. B. bei OpenAI Gym). + +5. **Herausforderungen im RL:** + +- **Exploration vs. Exploitation:** Ein Agent muss entscheiden, ob er eine **neue Strategie** testet oder eine **bereits bekannte, aber möglicherweise nicht optimale** Strategie nutzt. + +- **Belohnungsdesign:** Ein schlecht definierter Belohnungsmechanismus kann dazu führen, dass das Modell unerwartete oder unerwünschte Strategien lernt. + +- **Rechenaufwand:** RL benötigt oft viele Trainingsdurchläufe und Rechenleistung. + +.. seealso:: + * :doc:`day3` + + + + +.. https://python-basics-tutorial.readthedocs.io/en/latest/appendix/glossary.html + + +.. glossary: + + Eingangsschicht + Input Layer + Nimmt Daten auf (z. B. Pixelwerte eines Bildes). + + + + +4. **Deep Learning (DL) als spezialisierte Form des ML** +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +**Definition:** + +- Deep Learning (DL) ist ein Teilgebiet des maschinellen Lernens, das auf **künstlichen neuronalen Netzen (KNNs)** basiert. + +- Es verwendet **mehrere Schichten von Neuronen** (daher der Begriff „Deep“), um hochkomplexe Muster in Daten zu lernen. + +- Deep Learning ist besonders leistungsfähig bei **Bildverarbeitung, Spracherkennung und natürlicher Sprachverarbeitung (NLP).** + +**Aufbau eines neuronalen Netzes:** + +:term:`Input Layer` + Nimmt Daten auf (z. B. Pixelwerte eines Bildes). + + + +2. **Verborgene Schichten (Hidden Layers):** Extrahieren Merkmale und erkennen Muster. + +3. **Ausgangsschicht (Output Layer):** Gibt das Ergebnis der Berechnung aus (z. B. Klassifizierung in „Hund“ oder „Katze“). + +**Arten von neuronalen Netzwerken:** + +- **Feedforward Neural Networks (FNN):** Einfachste Form, bei der Informationen nur in eine Richtung fließen. + +- **Convolutional Neural Networks (CNN):** Besonders geeignet für **Bildverarbeitung** (z. B. Gesichtserkennung, medizinische Bilddiagnostik). + +- **Recurrent Neural Networks (RNN):** Nutzen vergangene Informationen zur Verarbeitung von **sequenziellen Daten** (z. B. Sprachverarbeitung, Zeitreihenanalyse). + +- **Transformer-Modelle:** Revolutionierten die **Natürliche Sprachverarbeitung (NLP)** (z. B. GPT-Modelle, BERT, T5). + +**Beispiele für Anwendungen von Deep Learning:** + +- **Bilderkennung:** Automatische Erkennung von Objekten in Bildern. + +- **Sprachverarbeitung (NLP):** Chatbots, automatische Übersetzungen (Google Translate, ChatGPT). + +- **Autonome Systeme:** Steuerung von selbstfahrenden Autos und Robotern. + +- **Medizinische Diagnosen:** Krebsfrüherkennung in MRT-Scans mit neuronalen Netzen. + +**Herausforderungen im Deep Learning:** + +- **Erklärbarkeit:** DL-Modelle sind oft **Black Boxes**, deren Entscheidungen schwer nachvollziehbar sind. + +- **Datenbedarf:** Sehr große Mengen an **trainingsdaten** sind notwendig. + +- **Rechenleistung:** DL benötigt leistungsfähige GPUs oder TPUs. + +**Zukunft von Deep Learning:** + +- **Edge AI:** Deep Learning wird zunehmend auf Edge-Geräten (Smartphones, IoT-Geräte) ausgeführt. + +- **Hybride Systeme:** Kombination von Deep Learning mit Reinforcement Learning für **komplexe Entscheidungsprozesse**. + +- **Quanten-KI:** Erste Ansätze zur Beschleunigung von Deep-Learning-Modellen mit Quantencomputing. + + + +Kapitel 3: Kategorien von Aufgaben: Regression, Klassifikation, Clustering, Autonome Aufgaben, Generative Aufgaben +-------------------------------------------------------------------------------------- + +Maschinelles Lernen kann für verschiedene **Aufgabentypen** eingesetzt werden, abhängig davon, ob das Ziel eine **Vorhersage, Gruppierung oder Entscheidungsoptimierung** ist. In diesem Kapitel werden die vier Hauptarten von ML-Aufgaben vorgestellt: **Regression, Klassifikation, Clustering und autonome Aufgaben.** + +**I. Regression** + +**Definition:** + +- Regression ist eine Technik zur **Vorhersage von kontinuierlichen Werten** auf Basis von Eingabedaten. + +- Sie wird genutzt, wenn das Ziel eine numerische Größe ist, z. B. Preis, Temperatur oder Umsatzprognose. + +**Beispiele für Regression:** + +- **Immobilienpreise vorhersagen:** Basierend auf Faktoren wie Größe, Lage und Baujahr. + +- **Wettervorhersagen:** Prognose der Temperatur für den nächsten Tag. + +- **Finanzmarktanalysen:** Vorhersage von Aktienkursen oder Umsatzentwicklungen. + +**Typische Algorithmen:** + +- Lineare Regression + +- Multiple Regression + +- Polynomial Regression + +- Neuronale Netze für kontinuierliche Vorhersagen + +------- + +**II. Klassifikation** + +**Definition:** + +- Klassifikation ist eine Methode zur **Zuordnung von Datenpunkten zu diskreten Kategorien**. + +- Das Ziel ist, eine Entscheidung über eine vordefinierte Anzahl von Klassen zu treffen. + +**Beispiele für Klassifikation:** + +- **E-Mail-Spam-Erkennung:** Klassifizierung von E-Mails als "Spam" oder "Nicht-Spam". + +- **Diagnosen in der Medizin:** Erkennung von Krankheiten anhand von Symptomen. + +- **Bilderkennung:** Identifizierung von Objekten auf Fotos (Hund vs. Katze). + +**Typische Algorithmen:** + +- Entscheidungsbäume + +- Random Forest + +- Support Vector Machines (SVM) + +- Neuronale Netze für Bilderkennung (CNNs) + +----- + +**III. Clustering** + +**Definition:** + +- Clustering ist eine Technik des **unüberwachten Lernens**, bei der Daten ohne vorherige Labels in Gruppen eingeteilt werden. + +- Das Ziel ist es, Muster oder Strukturen in den Daten zu erkennen. + +**Beispiele für Clustering:** + +- **Kundensegmentierung:** Kunden anhand ihres Kaufverhaltens in Gruppen einteilen. + +- **Genanalyse:** Identifikation von ähnlichen genetischen Mustern. + +- **Betrugserkennung:** Auffinden verdächtiger Transaktionsmuster. + +**Typische Algorithmen:** + +- K-Means-Clustering + +- DBSCAN (Density-Based Spatial Clustering) + +- Hierarchisches Clustering + +------ + +**IV. Autonome Aufgaben** + +**Definition:** + +- Autonome Aufgaben erfordern eine Kombination aus **überwachtem, unüberwachtem und bestärkendem Lernen**, um **eigenständig Entscheidungen** zu treffen und sich an neue Situationen anzupassen. + +- Diese Aufgaben sind besonders anspruchsvoll, da sie oft **Echtzeit-Entscheidungen** erfordern. + +**Beispiele für autonome Aufgaben:** + +- **Selbstfahrende Autos:** Kombination aus Bilderkennung, Reinforcement Learning und Sensorfusion zur sicheren Navigation. + +- **Industrielle Robotik:** Roboter, die sich an neue Umgebungen anpassen und Produktionslinien optimieren. + +- **Dynamische Preisgestaltung:** Systeme, die in Echtzeit Preisentscheidungen treffen, basierend auf Angebot und Nachfrage. + +**Technologien hinter autonomen Aufgaben:** + +- **Reinforcement Learning (RL):** Algorithmen lernen durch Belohnungssysteme. + +- **Neuronale Netze:** Deep Learning wird genutzt, um Sensordaten zu verarbeiten. + +- **Edge Computing:** Echtzeit-Datenverarbeitung für schnelle Reaktionen. + + +------- + +**V. Generative Aufgaben** + +Definition: + - Generative KI zielt darauf ab, neue Daten zu erzeugen, die den Muster der Trainingsdaten folgen, aber nicht identisch mit ihnen sind. + - Diese Technologie basiert auf Modellen, die durch unüberwachtes oder selbstüberwachtes Lernen trainiert werden und dann neue Inhalte generieren. + +Beispiele für generative Aufgaben: + - Bildgenerierung: + - Erstellung neuer Bilder auf Basis bestehender Stile (z. B. DeepDream, DALL·E). + - Erstellung realistischer Gesichter mit GANs (z. B. „ThisPersonDoesNotExist.com“). + - Textgenerierung: + - Chatbots wie ChatGPT, die menschenähnliche Texte generieren. + - Automatische Textzusammenfassungen oder Artikelgenerierung. + - Musik und Audio: + - KI-gestützte Musikkomposition (z. B. OpenAIs Jukebox). + - Stimmenklonen und Deepfake-Audio. + - Code-Generierung: + - KI-Systeme wie GitHub Copilot oder AlphaCode, die Programmiercode generieren. + - 3D- und Videogenerierung: + - Synthese neuer 3D-Modelle für Videospiele oder Animationen. + - KI-generierte Deepfake-Videos. + +Typische Algorithmen: + - Generative Adversarial Networks (GANs) + + - Lernen zwei konkurrierende Netzwerke: ein „Generator“ und ein „Diskriminator“. + + - Beispiel: Stiltransfer von Gemälden auf Fotos. + - Variational Autoencoders (VAEs) + - Lernen eine kompakte Darstellung der Daten und können daraus neue Instanzen generieren. + - Transformer-Modelle (z. B. GPT, BERT, T5) + - Werden für Text- und Codegenerierung eingesetzt. + - Diffusionsmodelle (DALL·E, Stable Diffusion) + - Besonders leistungsfähig für hochwertige Bilderzeugung. + +Zusammenfassung: + +- Generative KI ist eine eigene Aufgabenkategorie, da sie keine Vorhersage- oder Gruppierungsaufgabe erfüllt, sondern neue Inhalte erstellt. + +- Sie nutzt tiefe neuronale Netze, insbesondere GANs, Transformer-Modelle und Diffusionsmodelle. + +- Generative KI wird zunehmend wichtiger in Bereichen wie Kunst, Design, Code, Audio und Sprache. +------- + +**VI. Vergleich der ML-Aufgabentypen** + +.. list-table:: Vergleich von Regression, Klassifikation, Clustering und autonomen Aufgaben + :header-rows: 1 + + * - Merkmal + - Regression + - Klassifikation + - Clustering + - Autonome Aufgaben + - Generative Aufgaben + * - Art der Vorhersage + - Kontinuierlicher Wert + - Diskrete Klassen + - Gruppenbildung ohne Labels + - Eigenständige Entscheidungsfindung + - Erzeugung neuer Daten + * - Beispiele + - Preisprognosen, Finanzanalysen + - Bilderkennung, Spam-Filter + - Kundensegmentierung, Anomalieerkennung + - Selbstfahrende Autos, Industrieroboter + - KI-generierte Bilder, Texte, Musik + * - Typische Algorithmen + - Lineare Regression, neuronale Netze + - Entscheidungsbäume, SVM + - K-Means, DBSCAN + - Reinforcement Learning, Deep Learning + - GANs, VAEs, Transformer + +--- + +**Fazit** + +- Regression, Klassifikation und Clustering gehören zu den klassischen Aufgaben des maschinellen Lernens. + +- Autonome Systeme sind eine anspruchsvolle Anwendung, die verschiedene ML-Techniken kombiniert. + +- Je nach Daten und Zielsetzung kann eine Kombination dieser Methoden sinnvoll sein. + + + +Kapitel 4: Trainingsdaten und Modellierung +------------------------------------------ + +**Datenqualität und ihre Bedeutung** + +- Gute Trainingsdaten sind essenziell für die Leistungsfähigkeit eines Modells. + +- Aspekte der Datenqualität: + + - **Vollständigkeit:** Fehlende Werte können Modelle ungenau machen. + + - **Konsistenz:** Daten sollten einheitlich und korrekt sein. + + - **Ausreißererkennung:** Extreme Werte können Modelle verzerren. + + - **Datenverteilung:** Unausgewogene Datensätze (z. B. ungleich verteilte Klassen) beeinflussen Modellentscheidungen. + +**Feature Engineering** + +- Feature Engineering ist die Kunst, relevante Eingangsvariablen für ein Modell zu erstellen. + +Beispiel: Cohorte (Generation) vs. Alters-cohorte (https://de.wikipedia.org/wiki/Kohorte_(Sozialwissenschaft)) + +- Typische Techniken: + + - **Feature Skalierung:** Normalisierung und Standardisierung von Daten (z. B. Min-Max-Scaling, Z-Score-Normalisierung). + + - **Feature Selektion:** Auswahl der wichtigsten Merkmale zur Reduktion von Overfitting. + + - **Feature Transformation:** Anwendung von Logarithmus- oder Polynom-Transformationen zur Verbesserung der Modellleistung. + + - **One-Hot-Encoding:** Umwandlung kategorialer Variablen in numerische Werte. + +**Modelltraining und Optimierung** + +- Schritte des Modelltrainings: + + 1. **Datenaufteilung:** Aufteilung in Trainings-, Validierungs- und Testdatensätze. + + 2. **Modellauswahl:** Auswahl eines geeigneten Algorithmus (z. B. Entscheidungsbaum, Random Forest, neuronale Netze). + + 3. **Hyperparameter-Tuning:** Feinabstimmung der Modellparameter zur Optimierung der Leistung (z. B. Grid Search, Random Search). + + 4. **Modellbewertung:** Verwendung von Metriken wie Genauigkeit, F1-Score oder Mean Squared Error zur Bewertung der Vorhersagequalität. + + 5. **Modellbereitstellung:** Einsatz des trainierten Modells in einer produktiven Umgebung. + +**Praxisbeispiel: Modelltraining in Python** + +- Implementierung eines einfachen ML-Modells mit scikit-learn zur Vorhersage von Hauspreisen. + +- Demonstration von Datenvorbereitung, Feature Engineering und Modelltraining. + + +Kapitel 5: Evaluation von ML-Modellen +-------------------------------------- + +**Warum ist die Modellbewertung wichtig?** + +- Die Evaluation von ML-Modellen stellt sicher, dass das Modell zuverlässig und generalisierbar ist. + +- Ein gut evaluiertes Modell verhindert Overfitting und hilft, die besten Algorithmen und Parameter auszuwählen. + +**Wichtige Metriken für Klassifikationsprobleme** +1. **Accuracy (Genauigkeit):** + +Prozentsatz der korrekten Vorhersagen. + +Formel: + +.. math:: + \text{Accuracy} = \frac{\text{Anzahl der korrekten Vorhersagen}}{\text{Gesamtanzahl der Vorhersagen}} + +ACHTUNG! Accuracy hat eine Einschränkung bei (stark) unausgewogenen Datensätzen, da sie hier irreführend sein kann. + +2. **Precision (Präzision):** + +Precision ist der Anteil der tatsächlich positiven Vorhersagen unter allen als positiv klassifizierten Instanzen. + +Die Formel hierfür lautet: + +.. math:: + \text{Precision} = \frac{TP}{TP + FP} + +Precision wird vor allem bevorzugt, wenn falsch-positive Fehler besonders kritisch sind (z. B. Spam-Erkennung). + +3. **Recall (Sensitivität):** + +Recall ist der Anteil der korrekten positiven Vorhersagen unter allen tatsächlichen positiven Fällen. + +Die Formel hierfür lautet: + +.. math:: + \text{Recall} = \frac{TP}{TP + FN} + +Recall ist eine wichtige Metrik, wenn es entscheidend ist, möglichst alle positiven Fälle zu erfassen (z. B. Krebsdiagnosen). + +4. **F1-Score:** + +Der F1-Score ist Harmonic Mean von Präzision und Recall, um ein ausgewogenes Maß zu erhalten. + +Die Formel dafür lautet: + +.. math:: + \text{F1-Score} = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} + +Der F1-Score ist besonders nützlich bei unausgewogenen Datensätzen (unbiased data sets). + +**Wichtige Metriken für Regressionsprobleme** + +1. **Mean Squared Error, MSE (Mittlerer quadratischer Fehler):** + +Der MSE berechnet den Durchschnitt der quadrierten Fehler zwischen vorhergesagten und tatsächlichen Werten. + +Die Formel dafür lautet: + +.. math:: + \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 + +Somit bestraft der MSE große Fehler stärker als kleine Fehler. + +2. **Mean Absolute Error, MAE (Mittlerer absoluter Fehler):** + +Der MAE berechnet den Durchschnitt der absoluten Differenzen zwischen vorhergesagten und tatsächlichen Werten. + +Die Formel dafür lautet: + +.. math:: + \text{MAE} = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i| + + +3. **R²-Koeffizient (Bestimmtheitsmaß):** + + - Zeigt, wie gut das Modell die Varianz der Zielvariable erklärt. + + - Wertebereich: 0 (keine Erklärung) bis 1 (perfekte Erklärung). + +**Praktische Anwendung: Evaluierung eines Modells in Python** + +Ein Beispiel zur Berechnung dieser Metriken mit `scikit-learn`: + +.. py:function:: python: + + from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score + + # Beispiel: Tatsächliche Labels und Vorhersagen + + true_labels = [1, 0, 1, 1, 0, 1, 0, 0, 1, 0] + + predicted_labels = [1, 0, 1, 0, 0, 1, 0, 1, 1, 0] + + # Berechnung der Metriken + + accuracy = accuracy_score(true_labels, predicted_labels) + + precision = precision_score(true_labels, predicted_labels) + + recall = recall_score(true_labels, predicted_labels) + + f1 = f1_score(true_labels, predicted_labels) + + print(f'Accuracy: {accuracy}, Precision: {precision}, Recall: {recall}, F1-Score: {f1}') + + return (accuracy, precision, recall, f1) + + +Kapitel 6: Praktische Einführung: Lineare Regression +----------------------------------------------------- + +**Was ist Lineare Regression?** + +- Die **Lineare Regression** ist eines der grundlegendsten Modelle des maschinellen Lernens. + +- Sie wird verwendet, um eine abhängige Variable (Zielvariable) anhand einer oder mehrerer unabhängiger Variablen vorherzusagen. + +- Die Gleichung einer einfachen linearen Regression lautet: + + .. math:: + y = wX + b + + wobei: + + - `y` die Zielvariable ist, + + - `X` die unabhängige Variable, + + - `w` die Steigung der Geraden (Gewicht) und + + - `b` der Achsenabschnitt (Bias). + +**Schritte zur Implementierung eines ML-Modells mit scikit-learn** + +1. **Daten laden und vorbereiten** + + - Import von Bibliotheken und Laden eines Datensatzes. + + - Aufteilung der Daten in Trainings- und Testsets. + +2. **Modell erstellen und trainieren** + + - Ein Lineares Regressionsmodell aus `scikit-learn` erstellen und trainieren. + +3. **Modell evaluieren** + + - Vorhersagen treffen und mit Metriken wie dem mittleren quadratischen Fehler (MSE) bewerten. + +**Code-Beispiel: Lineare Regression mit scikit-learn** + +.. code-block:: python + + import numpy as np + import matplotlib.pyplot as plt + from sklearn.model_selection import train_test_split + from sklearn.linear_model import LinearRegression + from sklearn.metrics import mean_squared_error + + # Beispiel-Datensatz erstellen + np.random.seed(42) + X = 2 * np.random.rand(100, 1) + y = 4 + 3 * X + np.random.randn(100, 1) + + # Aufteilung in Trainings- und Testdaten + X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) + + # Modell erstellen und trainieren + model = LinearRegression() + model.fit(X_train, y_train) + + # Vorhersagen treffen + y_pred = model.predict(X_test) + + # Modellbewertung + mse = mean_squared_error(y_test, y_pred) + print(f'Mittlerer quadratischer Fehler (MSE): {mse}') + + # Visualisierung + plt.scatter(X_test, y_test, color='blue', label='Tatsächliche Werte') + plt.plot(X_test, y_pred, color='red', linewidth=2, label='Vorhersagen') + plt.legend() + plt.xlabel('X') + plt.ylabel('y') + plt.title('Lineare Regression mit scikit-learn') + plt.show() + +**Erklärung des Codes:** + +- Wir generieren synthetische Daten mit einer linearen Beziehung und fügen zufällige Schwankungen hinzu. + +- Wir teilen die Daten in **Trainings- und Testsets**, um eine objektive Modellbewertung zu ermöglichen. + +- Mit `LinearRegression().fit()` trainieren wir unser Modell. + +- Wir verwenden `mean_squared_error()`, um die Modellgenauigkeit zu messen. + +- Schließlich visualisieren wir die tatsächlichen und vorhergesagten Werte, um die Modellleistung zu interpretieren. + + +Kapitel 7: Fallstudie: Vorhersage von Immobilienpreisen +-------------------------------------------------------- + +**Ziel dieser Fallstudie** + +- Anwendung der erlernten Methoden zur Vorhersage von Immobilienpreisen. + +- Verwendung eines realen Datensatzes zur Modellierung. + +- Umsetzung in Python mit `scikit-learn`. + +**Schritte zur Umsetzung** + +1. **Daten laden und verstehen** + + - Nutzung eines offenen Datensatzes (z. B. `Boston Housing Dataset` oder `Kaggle Immobilienpreise`). + + - Untersuchung der Datenverteilung, Korrelationen und möglicher Ausreißer. + +2. **Datenvorbereitung** + + - Umwandlung kategorischer Merkmale (One-Hot-Encoding). + + - Normalisierung und Skalierung numerischer Merkmale. + + - Aufteilung in Trainings- und Testdaten. + +3. **Modelltraining mit Lineare Regression** + + - Trainieren eines **Linearen Regressionsmodells** mit `scikit-learn`. + + - Verwendung von Metriken zur Bewertung der Modellgüte (z. B. MSE, R²). + +4. **Modellbewertung und Interpretation** + + - Bewertung der Modellperformance auf dem Testdatensatz. + + - Interpretation der wichtigsten Einflussgrößen. + +**Code-Beispiel: Vorhersage von Immobilienpreisen** + +.. code-block:: python + + import pandas as pd + import numpy as np + import matplotlib.pyplot as plt + from sklearn.model_selection import train_test_split + from sklearn.preprocessing import StandardScaler, OneHotEncoder + from sklearn.linear_model import LinearRegression + from sklearn.metrics import mean_squared_error, r2_score + + # Beispieldatensatz laden (Boston Housing Dataset) + from sklearn.datasets import load_boston + boston = load_boston() + df = pd.DataFrame(boston.data, columns=boston.feature_names) + df['PRICE'] = boston.target + + # Aufteilung in Merkmale (X) und Zielvariable (y) + X = df.drop('PRICE', axis=1) + y = df['PRICE'] + + # Aufteilung in Trainings- und Testsets + X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) + + # Feature Scaling + scaler = StandardScaler() + X_train_scaled = scaler.fit_transform(X_train) + X_test_scaled = scaler.transform(X_test) + + # Lineare Regression trainieren + model = LinearRegression() + model.fit(X_train_scaled, y_train) + + # Vorhersagen treffen + y_pred = model.predict(X_test_scaled) + + # Modellbewertung + mse = mean_squared_error(y_test, y_pred) + r2 = r2_score(y_test, y_pred) + print(f'Mittlerer quadratischer Fehler (MSE): {mse}') + print(f'Bestimmtheitsmaß (R²): {r2}') + + # Visualisierung der Vorhersagen + plt.scatter(y_test, y_pred, alpha=0.7) + plt.xlabel('Tatsächliche Preise') + plt.ylabel('Vorhergesagte Preise') + plt.title('Tatsächliche vs. Vorhergesagte Immobilienpreise') + plt.show() + +**Erklärung des Codes:** + +- **Datensatz laden:** Wir verwenden das `Boston Housing Dataset`, das verschiedene Merkmale von Häusern enthält. + +- **Datenvorverarbeitung:** Skalierung der numerischen Variablen zur besseren Modellleistung. + +- **Modelltraining:** Wir verwenden eine einfache lineare Regression. + +- **Modellbewertung:** Berechnung des mittleren quadratischen Fehlers (MSE) und des Bestimmtheitsmaßes (R²). + +- **Visualisierung:** Darstellung der tatsächlichen vs. vorhergesagten Werte zur Überprüfung der Modellgüte. + + +Kapitel 8: Diskussion und Fragen +--------------------------------- + +**Ziel der Diskussion** + +- Reflexion der erlernten Inhalte und Beantwortung offener Fragen. + +- Gemeinsamer Austausch über die praktische Anwendbarkeit von KI in verschiedenen Branchen. + +**Diskussion über Anwendungen von KI in verschiedenen Bereichen** + +1. **Gesundheitswesen** + + - Einsatz von KI für medizinische Diagnosen (z. B. Krebsfrüherkennung mittels Bildverarbeitung). + + - Personalisierte Medizin basierend auf Patientendaten. + + - Automatisierte Medikamentenentwicklung und klinische Studienoptimierung. + +2. **Finanzwesen** + + - Algorithmischer Handel und automatisierte Investitionsstrategien. + + - Betrugserkennung in Echtzeit durch Anomalieerkennung. + + - Risikoanalysen für Kreditbewilligungen. + +3. **Industrie und Fertigung** + + - Predictive Maintenance (vorausschauende Wartung von Maschinen). + + - Automatisierung in der Fertigung mit KI-gesteuerten Robotern. + + - Optimierung von Lieferketten durch intelligente Planungssysteme. + +4. **Mobilität und Transport** + + - Autonome Fahrzeuge und intelligente Verkehrssteuerung. + + - KI-gestützte Routenoptimierung für Logistikunternehmen. + + - Fahrgastprognosen im öffentlichen Verkehr. + +5. **E-Commerce und Marketing** + + - Personalisierte Produktempfehlungen (z. B. Amazon, Netflix). + + - Chatbots für Kundenservice und automatisierte Bestellprozesse. + + - Dynamische Preisgestaltung durch KI-Analyse von Markttrends. + +6. **Recht und Verwaltung** + + - Automatisierte Vertragsanalyse und Dokumentenprüfung. + + - KI zur Unterstützung juristischer Entscheidungen. + + - Öffentliche Verwaltung und KI-gestützte Bürgerdienste. + +**Offene Diskussion und Fragen** + +- Welche KI-Technologien haben das größte Potenzial für die Zukunft? + +- Welche Herausforderungen und ethischen Bedenken gibt es in den jeweiligen Bereichen? + +- Wie kann KI für nachhaltige Entwicklungen genutzt werden? + + +Zusätzliche Materialien +----------------------- +- Einführung in `Scikit-Learn `_ +- NumPy- und Pandas-Dokumentation für Datenverarbeitung +- Matplotlib für Visualisierung +- TensorFlow/Keras für Deep Learning (für spätere Module) + + diff --git a/docs/day2.rst b/docs/day2.rst new file mode 100644 index 0000000..6d9f763 --- /dev/null +++ b/docs/day2.rst @@ -0,0 +1,230 @@ +Tag 2: Vertiefung: Neuronale Netze, Deep Learning, Use Case Fallgruben +============================== + +**Recap Tag 1** + +- Zusammenfassung der Konzepte aus Tag 1: Überwachtes, unüberwachtes und bestärkendes Lernen. + +- Wichtige Begriffe: **Modell, Trainingsdaten, Testdaten, Overfitting, Regularisierung, Optimierung.** + +- Diskussion der zentralen Herausforderungen im ML: **Bias, Datenqualität, Modellinterpretierbarkeit.** + +- Quiz oder interaktive Übung zur Wiederholung. + + +.. list-table:: Schulungsstruktur für Tag 2 + :header-rows: 1 + + * - Kapitel + - Inhalte + * - Recap der wichtigsten Themen + - Wiederholung der ML-Konzepte, Diskussion, Quiz + * - Theorie: Neuronale Netze und Deep Learning + - Aufbau, Backpropagation, Aktivierungsfunktionen + * - Praxis: Bildklassifikation mit CNNs + - Implementierung mit TensorFlow/Keras + * - Diskussion: Use Case Fallgruben + - Churn Prediction, Herausforderungen, Modellwahl + + +**Kapitel 9: Neuronale Netze und Deep Learning – Theorie** +---------------------------------------------------------- +**Grundlagen:** + +Was sind künstliche neuronale Netze? Wie unterscheiden sie sich von klassischen ML-Modellen? + +- Künstliche neuronale Netze bestehen aus **Schichten von Neuronen**, die durch gewichtete Verbindungen miteinander verbunden sind. + +- Aufbau eines neuronalen Netzes: **Eingabeschicht, versteckte Schichten, Aktivierungsfunktionen, Ausgangsschicht.** + +- Jedes Neuron führt eine Berechnung basierend auf einer **Aktivierungsfunktion** durch und gibt das Ergebnis an die nächste Schicht weiter. + +**Forwardpropagation (Vorwärtsdurchlauf):** + +1. Die Eingabedaten werden in das Netzwerk eingespeist. + +2. In jeder Schicht wird die gewichtete Summe der Eingänge berechnet: + + .. math:: + z = w_1 x_1 + w_2 x_2 + ... + w_n x_n + b + +3. Diese gewichtete Summe wird durch eine **Aktivierungsfunktion** transformiert (z. B. ReLU, Sigmoid, Softmax), um **nicht-lineare Abhängigkeiten** abzubilden. + +4. Die Ausgabe der einen Schicht wird als Eingabe an die nächste Schicht weitergegeben, bis die letzte Schicht erreicht ist. + +5. Am Ende der Forward Propagation wird die Loss Function berechnet. + + +**Loss Functions (Verlustfunktionen) und ihre Rolle:** + +- Eine **Loss Function** misst die Differenz zwischen der Vorhersage des Modells und dem tatsächlichen Wert. + +- Sie gibt an, wie gut oder schlecht das Modell arbeitet. + +- Wird während der Backpropagation genutzt, um die Gewichte des Netzwerks zu aktualisieren. + +**Typische Loss Functions:** + +1. **Mean Squared Error (MSE)** – Wird für **Regressionsprobleme** verwendet: + + .. math:: + MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 + + - Bestraft größere Fehler überproportional. + + - Gut für kontinuierliche Werte wie Preisprognosen. + +2. **Cross-Entropy Loss** – Wird für **Klassifikationsprobleme** verwendet: + + .. math:: + L = -\sum y_i \log(\hat{y}_i) + + - Erhöht die Strafe, wenn das Modell sehr sicher, aber falsch ist. + + - Wird z. B. bei **Softmax-Klassifikationen** genutzt. + +**Zusammenhang zwischen Loss Function und Gradient Descent:** + +- Gradient Descent ist der Algorithmus, der die Gewichte des Modells so anpasst, dass die Loss Function minimiert wird. + +- Die Ableitung der Loss Function bestimmt die Richtung, in die die Gewichte aktualisiert werden. + +- **Formel für das Gewicht-Update:** + + .. math:: + w := w - \alpha \frac{\partial L}{\partial w} + + wobei \( \alpha \) die Lernrate ist. + +- Dies passiert während der **Backwardpropagation (Rückwärtsdurchlauf):** + +**Backwardpropagation (Rückwärtsdurchlauf):** + +1. Der Fehler des Netzwerks wird berechnet, indem die Differenz zwischen der vorhergesagten und der tatsächlichen Ausgabe bestimmt wird, d.h. indem die Loss Function evaluiert wird. + +2. Die Fehler werden von der letzten Schicht zurück durch das Netzwerk propagiert, um **die Gewichte der Neuronen zu aktualisieren**. + +3. Die Berechnung erfolgt mit Hilfe der **Kettenregel der Ableitungen**, um die Gradienten für jedes Gewicht zu bestimmen: + +.. .. math:: +.. rac{\partial L}{\partial w} = rac{\partial L}{\partial y} \cdot rac{\partial y}{\partial z} \cdot rac{\partial z}{\partial w} + +4. Durch die Anwendung des **Gradientenabstiegsverfahrens (Gradient Descent)** werden die Gewichte so angepasst, dass der Gesamtfehler des Netzwerks iterativ minimiert und somit das Modell optimiert wird. + +**Optimierungstechniken:** + +- **Stochastischer Gradientenabstieg (SGD):** Berechnet Gradienten basierend auf einer zufälligen Stichprobe aus den Trainingsdaten. + +- **Adam-Optimizer:** Eine erweiterte Form des SGD, die adaptives Lernen ermöglicht und schneller konvergiert. + +- **Momentum-Methoden:** Nutzen vergangene Gradienteninformationen, um stabilere Updates durchzuführen. + +**Wichtige Aktivierungsfunktionen:** + +- **ReLU (Rectified Linear Unit):** Häufig in CNNs verwendet, eliminiert negative Werte. + +- **Sigmoid:** Wandelt Werte in einen Bereich zwischen 0 und 1 um, nützlich für Wahrscheinlichkeitsprognosen. + +- **Softmax:** Wird in Klassifikationsproblemen für mehr als zwei Klassen genutzt. + + +**Fortgeschrittene Deep-Learning-Techniken:** + +- Convolutional Neural Networks (CNNs) für **Bildverarbeitung**. + +- Recurrent Neural Networks (RNNs) für **Sequenz- und Textverarbeitung**. + +- Transformer-Modelle für **NLP (z. B. BERT, GPT).** + + +**Kapitel 10: Praxisbeispiel – Bildklassifikation mit CNNs** +------------------------------------------------------------ + +**Ziel:** Einführung in Convolutional Neural Networks mit TensorFlow/Keras anhand eines Bildklassifikationsproblems. + +.. note: + Code Beispiel auch mit pytorch! als "Gegenbeispiel" zu tensorflows + + +**Code-Beispiel: Klassifikation des MNIST-Datensatzes (Handgeschriebene Ziffern)** + +.. code-block:: python + + import tensorflow as tf + from tensorflow.keras import layers, models + from tensorflow.keras.datasets import mnist + import matplotlib.pyplot as plt + + # Daten laden + (x_train, y_train), (x_test, y_test) = mnist.load_data() + x_train, x_test = x_train / 255.0, x_test / 255.0 # Normalisierung + x_train = x_train[..., tf.newaxis] # Dimension erweitern + x_test = x_test[..., tf.newaxis] + + # Modell definieren + model = models.Sequential([ + layers.Conv2D(32, (3,3), activation='relu', input_shape=(28,28,1)), + layers.MaxPooling2D((2,2)), + layers.Conv2D(64, (3,3), activation='relu'), + layers.MaxPooling2D((2,2)), + layers.Conv2D(64, (3,3), activation='relu'), + layers.Flatten(), + layers.Dense(64, activation='relu'), + layers.Dense(10, activation='softmax') + ]) + + # Modell kompilieren + model.compile(optimizer='adam', + loss='sparse_categorical_crossentropy', + metrics=['accuracy']) + + # Training + model.fit(x_train, y_train, epochs=5, validation_data=(x_test, y_test)) + + # Evaluation + test_loss, test_acc = model.evaluate(x_test, y_test) + print(f'Testgenauigkeit: {test_acc}') + + # Beispielhafte Vorhersage + predictions = model.predict(x_test) + plt.imshow(x_test[0].reshape(28, 28), cmap='gray') + plt.title(f'Vorhergesagte Klasse: {predictions[0].argmax()}') + plt.show() + +**Kapitel 11: Use Case Fallgruben – Diskussion zur Kundenabwanderung (Customer Churn Prediction)** +----------------------------------------------------------------------------------------- + +**Ziel:** + +- Erarbeite eigenständig, wie du ein ML-Problem formulieren und lösen würdest. + +- Fokus liegt auf den Herausforderungen in realen Projekten. + +**Problemstellung:** + +Ein Telekommunikationsunternehmen möchte vorhersagen, ob ein Kunde abwandern wird oder nicht. Die Lernenden sollen erarbeiten: + +1. **Wie definiert man Kundenabwanderung?** + +- z.B. Vertragskunde: kündigt in den nächsten drei Monaten seinen Vertrag +- z.B. Prepaidkunde: wird innerhalb der nächsten drei Monate dessen SIM-Karte nutzen und innerhalb der nächsten 6 Monate aufladen + +2. **Welche Daten sind relevant?** + +2. **Wie sollten Features gestaltet werden?** (z. B. Anrufhäufigkeit, Vertragslaufzeit, Reklamationen?) + +3. **Welche ML-Methoden eignen sich?** (Klassifikation, Feature Engineering) + +4. **Wie validiert man das Modell?** + +5. **Welche Herausforderungen können auftreten?** + +**Diskussionsfragen:** + +- Welche Probleme könnten bei der Modellinterpretation auftreten? + +- Wie könnte man ethische Fragestellungen (z. B. Diskriminierung) berücksichtigen? + +- Welche Maßnahmen könnte ein Unternehmen basierend auf den Vorhersagen ergreifen? + + diff --git a/docs/day3.rst b/docs/day3.rst new file mode 100644 index 0000000..3098546 --- /dev/null +++ b/docs/day3.rst @@ -0,0 +1,132 @@ +Tag 3: Reinforcement Learning (RL) +======================= + +**Recap der wichtigsten Themen des zweiten Tages** + +- Wiederholung der zentralen Konzepte von **Neuronalen Netzen und Deep Learning** + +- Verständnis der **Forwardpropagation und Backwardpropagation** + +- **Loss Functions und ihre Rolle in Gradient Descent** + +- Bedeutung von **Optimierungsverfahren** wie Adam und SGD + +- Diskussion über Anwendungen von **CNNs für Bildklassifikation** + +- Offene Fragen und Klarstellungen + + +.. list-table:: Schulungsstruktur für KI-Grundlagen: Tag 3 + :header-rows: 1 + + * - Kapitel + - Inhalte + * - Recap der wichtigsten Themen + - Wiederholung von Deep Learning und CNNs + * - Einführung in Reinforcement Learning + - Konzepte, Agent, Umgebung, Belohnungen + * - Markov-Entscheidungsprozesse + - Definition, Zustände, Aktionen, Wertfunktionen + * - Wertbasierte Methoden – Q-Learning + - Theorie, Q-Tabelle, Deep Q-Networks (DQN) + * - Praxis: Q-Learning in OpenAI Gym + - Implementierung mit Python + + +**Definition:** + +- Reinforcement Learning (RL) ist eine Form des **selbstlernenden maschinellen Lernens**, bei dem ein Agent durch **Belohnung und Bestrafung** lernt. + +- Ziel ist es, eine **Strategie (Policy)** zu erlernen, die langfristig die **höchste kumulierte Belohnung** maximiert. + +- Anders als beim überwachten Lernen gibt es **keine direkten Labels**, sondern nur **Rückmeldungen** basierend auf den getroffenen Entscheidungen. + +**Grundprinzipien:** + +1. **Agent:** Der lernende KI-Teilnehmer. + +2. **Umgebung (Environment):** Die Welt, in der der Agent agiert. + +3. **Zustand (State):** Der aktuelle Status der Umgebung. + +4. **Aktion (Action):** Die Entscheidung, die der Agent in einem Zustand trifft. + +5. **Belohnung (Reward):** Signal, das die Qualität einer Aktion beschreibt. + +6. **Policy (Strategie):** Funktion, die bestimmt, welche Aktion in welchem Zustand gewählt wird. + +7. **Wertfunktion (Value Function):** Erwartete zukünftige Belohnung eines Zustands. + +--- + +**Kapitel 14: Markov-Entscheidungsprozesse (MDP)** +- RL basiert auf **Markov-Entscheidungsprozessen (MDP)**, die aus folgendem bestehen: + + 1. **S** – Menge aller möglichen Zustände. + + 2. **A** – Menge aller möglichen Aktionen. + + 3. **P(s' | s, a)** – Übergangswahrscheinlichkeit von Zustand \(s\) zu \(s'\) nach Aktion \(a\). + + 4. **R(s, a)** – Belohnung für das Ausführen von Aktion \(a\) in Zustand \(s\). + + 5. **\(\gamma\) (Discount Factor)** – Faktor für zukünftige Belohnungen (zwischen 0 und 1). + +- Das Ziel ist, eine **optimale Policy** zu finden, die die **kumulierte langfristige Belohnung maximiert**. + +--- + +**Kapitel 15: Wertbasierte Methoden – Q-Learning** + +**Q-Learning Algorithmus:** + +- Speichert eine **Q-Tabelle**, die Werte für jede **(Zustand, Aktion)-Kombination** enthält. + +- Aktualisiert sich mit der **Bellman-Gleichung:** + + .. math:: + Q(s,a) = Q(s,a) + \alpha (R + \gamma \max Q(s',a') - Q(s,a)) + +- Verwendet **Exploration vs. Exploitation:** + + - **Exploration:** Zufällige Aktionen testen, um neue Strategien zu entdecken. + + - **Exploitation:** Beste bekannte Aktion nutzen, um Belohnung zu maximieren. + +**Deep Q-Networks (DQN):** + +- Ersetzt die **Q-Tabelle durch ein neuronales Netz**, das **Q-Werte approximiert**. + +- Verwendet Replay Buffers zur Speicherung vergangener Erfahrungen. + +- Führt **Experience Replay** aus, um stabileres Lernen zu ermöglichen. + +**Code-Beispiel: Einfaches Q-Learning für eine OpenAI Gym-Umgebung** + +.. code-block:: python + + import numpy as np + import gym + + # OpenAI Gym Umgebung + env = gym.make("FrozenLake-v1", is_slippery=False) + Q = np.zeros([env.observation_space.n, env.action_space.n]) + alpha = 0.1 # Lernrate + gamma = 0.99 # Discount-Faktor + epsilon = 0.1 # Zufällige Exploration + + for episode in range(1000): + state = env.reset()[0] + done = False + while not done: + if np.random.rand() < epsilon: + action = env.action_space.sample() + else: + action = np.argmax(Q[state]) + + next_state, reward, done, _, _ = env.step(action) + Q[state, action] += alpha * (reward + gamma * np.max(Q[next_state]) - Q[state, action]) + state = next_state + + print("Q-Tabelle:") + print(Q) diff --git a/docs/day4.rst b/docs/day4.rst new file mode 100644 index 0000000..7377c33 --- /dev/null +++ b/docs/day4.rst @@ -0,0 +1,36 @@ +Tag 4: Generative KI +======================= + +Das Neural Network Tutorial möchte euch einen praxisnahen Einstieg in neuronale +Netze mit Python ermöglichen. + +Das Neural Network Tutorial ist Teil einer Reihe von Tutorials zur Datenanalyse +und -visualisierung: + +* `Python Basics `_ +* `Jupyter-Tutorial `_ +* `Python für Data Science `_ +* `PyViz-Tutorial `_ +* `cusy Design-System: Datenvisualisierung + `_ + +Alle Tutorials dienen als Seminarunterlagen für unsere aufeinander abgestimmten +Trainings: + +Abschluss +========= + +**Ethische Fragestellungen in der KI** + +Mit der rasanten Entwicklung der KI gehen auch bedeutende ethische Fragen einher: + +- **Bias und Diskriminierung:** KI-Modelle können bestehende Vorurteile aus Trainingsdaten übernehmen. + +- **Arbeitsplatzverdrängung:** Automatisierung kann menschliche Arbeitsplätze gefährden. + +- **Transparenz und Erklärbarkeit:** Viele KI-Modelle, insbesondere Deep Learning, sind schwer zu interpretieren. + +- **Verantwortung und Haftung:** Wer ist verantwortlich, wenn eine KI fehlerhafte oder schädliche Entscheidungen trifft? + +- **Datenschutz:** KI-Anwendungen erfordern oft große Datenmengen, was Datenschutzprobleme aufwirft. + diff --git a/docs/index.rst b/docs/index.rst index 852d1ff..84c2679 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,60 +1,25 @@ ======================= -Neural Network Tutorial +Einführung in KI ======================= -Das Neural Network Tutorial möchte euch einen praxisnahen Einstieg in neuronale -Netze mit Python ermöglichen. +Die Schulung "Einführung in KI" ermöglicht euch einen praxisnahen Einstieg in KI mit Python. -Das Neural Network Tutorial ist Teil einer Reihe von Tutorials zur Datenanalyse -und -visualisierung: - -* `Python Basics `_ -* `Jupyter-Tutorial `_ -* `Python für Data Science `_ -* `PyViz-Tutorial `_ -* `cusy Design-System: Datenvisualisierung - `_ +Die Schulung ist aufgebaut in 4 Blöcken und hat folgende Hauptbestandteile: Alle Tutorials dienen als Seminarunterlagen für unsere aufeinander abgestimmten Trainings: -+---------------+--------------------------------------------------------------+ -| Dauer | Titel | -+===============+==============================================================+ -| 3 Tage | `Einführung in Python`_ | -+---------------+--------------------------------------------------------------+ -| 2 Tage | `Fortgeschrittenes Python`_ | -+---------------+--------------------------------------------------------------+ -| 2 Tage | `Entwurfsmuster in Python`_ | -+---------------+--------------------------------------------------------------+ -| 2 Tage | `Effizient Testen mit Python`_ | -+---------------+--------------------------------------------------------------+ -| 1 Tag | `Software-Dokumentation mit Sphinx`_ | -+---------------+--------------------------------------------------------------+ -| 2 Tage | `Technisches Schreiben`_ | -+---------------+--------------------------------------------------------------+ -| 3 Tage | `Jupyter-Notebooks für effiziente Data-Science-Workflows`_ | -+---------------+--------------------------------------------------------------+ -| 2 Tage | `Numerische Berechnungen mit NumPy`_ | -+---------------+--------------------------------------------------------------+ -| 2 Tage | `Daten analysieren mit pandas`_ | -+---------------+--------------------------------------------------------------+ -| 3 Tage | `Daten lesen, schreiben und bereitstellen mit Python`_ | -+---------------+--------------------------------------------------------------+ -| 2 Tage | `Daten bereinigen und validieren mit Python`_ | -+---------------+--------------------------------------------------------------+ -| 5 Tage | `Daten visualisieren mit Python`_ | -+---------------+--------------------------------------------------------------+ -| 1 Tag | `Datenvisualisierungen gestalten`_ | -+---------------+--------------------------------------------------------------+ -| 2 Tage | `Dashboards erstellen`_ | -+---------------+--------------------------------------------------------------+ -| 3 Tage | `Code und Daten versioniert und reproduzierbar speichern`_ | -+---------------+--------------------------------------------------------------+ -| Abonnement | `Neues aus Python für Data-Science`_ | -| à 2 h im | | -| Quartal | | -+---------------+--------------------------------------------------------------+ ++---------------+---------------------------------------------------------------+ +| Dauer | Titel | ++===============+===============================================================+ +| Tag 1 | `Einführung, Überwachtes Lernen, Regression` | ++---------------+---------------------------------------------------------------+ +| Tag 2 | `Unüberwachtes Lernen, Klassifilation, Use Case Fallgruben` | ++---------------+---------------------------------------------------------------+ +| Tag 3 | `Reinforcement Learning` | ++---------------+---------------------------------------------------------------+ +| Tag 4 | `Generative KI - Einführung` | ++---------------+---------------------------------------------------------------+ .. _`Einführung in Python`: https://cusy.io/de/unsere-schulungsangebote/einfuehrung-in-python @@ -89,11 +54,22 @@ Trainings: .. _`Neues aus Python für Data-Science`: https://cusy.io/de/unsere-schulungsangebote/neues-aus-python-fuer-data-science +Zusatzmaterialien: +* `Python Basics `_ +* `Jupyter-Tutorial `_ +* `Python für Data Science `_ +* `PyViz-Tutorial `_ +* `cusy Design-System: Datenvisualisierung `_ + .. toctree:: :hidden: :titlesonly: :maxdepth: 0 - + + day1 + day2 + day3 + day4 changelog .. Indices and tables From 7c827fcb4d105f5c0b66db8094f66292aba371db Mon Sep 17 00:00:00 2001 From: minye Date: Sun, 2 Mar 2025 14:22:20 +0100 Subject: [PATCH 2/3] Update README.rst updated Installation git-clone command: git@github.com:AInvone/Intro-in-KI-Schulung.git --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index e7a6c18..4b7838d 100644 --- a/README.rst +++ b/README.rst @@ -21,7 +21,7 @@ Installation .. code-block:: console - $ git clone git@github.com:cusyio/neural-network-tutorial.git + $ git clone git@github.com:AInvone/Intro-in-KI-Schulung.git #. Installieren von Python-Paketen: From 6f322783628034e14663a2cd0d5f9d4d84045459 Mon Sep 17 00:00:00 2001 From: veit Date: Mon, 3 Mar 2025 15:25:28 +0100 Subject: [PATCH 3/3] :memo: Rearrange the intro --- docs/conf.py | 4 +- docs/day1.rst | 1050 ----------------------------- docs/index.rst | 6 +- docs/intro/case-study.rst | 107 +++ docs/intro/categories.rst | 249 +++++++ docs/intro/def.rst | 174 +++++ docs/intro/evaluation.rst | 120 ++++ docs/intro/extra.rst | 9 + docs/intro/index.rst | 49 ++ docs/intro/linear-regression.rst | 100 +++ docs/intro/ml-concepts.rst | 291 ++++++++ docs/intro/reflection.rst | 64 ++ docs/intro/training-modelling.rst | 68 ++ 13 files changed, 1237 insertions(+), 1054 deletions(-) delete mode 100644 docs/day1.rst create mode 100644 docs/intro/case-study.rst create mode 100644 docs/intro/categories.rst create mode 100644 docs/intro/def.rst create mode 100644 docs/intro/evaluation.rst create mode 100644 docs/intro/extra.rst create mode 100644 docs/intro/index.rst create mode 100644 docs/intro/linear-regression.rst create mode 100644 docs/intro/ml-concepts.rst create mode 100644 docs/intro/reflection.rst create mode 100644 docs/intro/training-modelling.rst diff --git a/docs/conf.py b/docs/conf.py index 1a0ac48..cca9fb2 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -53,7 +53,7 @@ "sphinxext.opengraph", "sphinx_copybutton", "sphinx_inline_tabs", - 'sphinx.ext.mathjax' # to allow mathematical formular + "sphinx.ext.mathjax", # to allow mathematical formular ] # Add any paths that contain templates here, relative to this directory. @@ -146,6 +146,8 @@ intersphinx_mapping = { "python": ("https://docs.python.org/3", None), + "Python4DataScience": ("https://www.python4data.science/de/latest", None), + "PyViz": ("https://pyviz-tutorial.readthedocs.io/de/latest", None), } diff --git a/docs/day1.rst b/docs/day1.rst deleted file mode 100644 index fd857b1..0000000 --- a/docs/day1.rst +++ /dev/null @@ -1,1050 +0,0 @@ -Tag 1: Einführung, Überwachtes Lernen, Regression -============================== - -Die Schulung wird mit den grundlegenden Konzepten der Künstlichen Intelligenz (KI) und Maschinellen Lernens (ML) eingeleitet und anhand praktischer Implementierungen veranschaulicht. - - -Gliederung ----------- - -.. list-table:: Schulungsstruktur für KI-Grundlagen: Tag 1 - :header-rows: 1 - - * - Kapitel - - Inhalte - * - Einführung in Künstliche Intelligenz - - Definition und Historie der KI, Unterschiedliche Formen der KI, Anwendungsfälle, ethische Fragestellungen - * - Maschinelles Lernen: Konzepte und Typen - - Begriffe: ML, Deep Learning, Reinforcement Learning; Beispiele für reale Anwendungen - * - Überwachtes vs. Unüberwachtes Lernen - - Klassifikation vs. Regression, Clustering-Methoden - * - Trainingsdaten und Modellierung - - Datenqualität, Feature Engineering, Modelltraining - * - Evaluation von ML-Modellen - - Metriken: Accuracy (Genauigkeit), Precision (Präzision), Recall, F1-Score, MSE - * - Praktische Einführung: Lineare Regression - - Implementierung eines ML-Modells mit scikit-learn - * - Fallstudie: Vorhersage von Immobilienpreisen - - Hands-on Beispiel mit einem realen Datensatz - * - Diskussion und Fragen - - Diskussion über Anwendungen von KI in verschiedenen Bereichen - -Kapitel 1: Definition von Künstlicher Intelligenz ------------------- -Künstliche Intelligenz (KI) bezeichnet die Fähigkeit eines Computers oder einer Maschine, menschenähnliche kognitive Funktionen auszuführen. Dazu gehören Aufgaben wie Lernen, Problemlösung, Mustererkennung und Entscheidungsfindung. Der Begriff KI wurde erstmals 1956 auf der Dartmouth Conference von John McCarthy geprägt. Heute umfasst KI eine Vielzahl von Techniken, darunter maschinelles Lernen, Deep Learning und Expertensysteme. - -**Historische Entwicklung der KI** -Die Entwicklung der KI lässt sich in mehrere Phasen einteilen: - -1. **1950er–1970er: Die Pionierzeit** - -- Erste Algorithmen zur symbolischen Verarbeitung und regelbasierten Systeme wurden entwickelt. - -- Alan Turings berühmter "Turing-Test" (https://en.wikipedia.org/wiki/Turing_test) stellte eine frühe Methode zur Bewertung der Intelligenz einer Maschine vor. - -- In den 1960er Jahren entstanden erste Expertensysteme, die regelbasierte Entscheidungsfindung ermöglichten. - -2. **1980er – 1990er: Erste Fortschritte und Rückschläge** - -- KI erlebte durch das Aufkommen von neuronalen Netzen und maschinellem Lernen einen Aufschwung. - -- Aufgrund hoher Rechenkosten und begrenzter Datenverfügbarkeit flachte das Interesse an KI in den späten 1980er Jahren ab. - -3. **2000er – heute: Der Durchbruch dank Big Data und Deep Learning** - -- Fortschritte in Rechenleistung, Cloud Computing und die Verfügbarkeit großer Datenmengen haben KI auf ein neues Niveau gehoben. - -- Tiefe neuronale Netze ermöglichen Fortschritte in Spracherkennung, Bildverarbeitung und autonomem Fahren. - -**Unterschiedliche Formen der Künstlichen Intelligenz** - -KI kann auf verschiedene Art und Weisen in verschiedene Kategorien unterteilt werden. Eine Möglichkeit ist die Kategorisierung nach ihrem Funktionsumfang und ihren Anwendungsmöglichkeiten, wie von Prof. Arend Hintze definiert, Forscher und Professor der Integrative Biology an der Michigan State University (https://theconversation.com/understanding-the-four-types-of-ai-from-reactive-robots-to-self-aware-beings-67616, https://mindsquare.de/knowhow/kuenstliche-intelligenz/#der-turing-test): - -1. **Reaktive KI (Reactive AI)** - -Die erste Stufe der KI kann als "Reaktive KI" bezeichent und als ein Ur-Typ der KI angesehen werden. Sie hat weder "Gedächtnis" noch "Lernfähigkeit" und kann nur auf Eingaben reagieren für genau die eine Aufgabe, wofür sie programmiert wurde. Es ist nicht in der Lage, zukünftige Ergebnisse vorherzusagen, wenn es nicht mit den entsprechenden Informationen gefüttert wurde. - -Beispiel: Schachcomputer wie IBM Deep Blue, der auf Basis aktueller Züge die bestmöglichen Entscheidungen trifft. - -2. **Begrenzte Gedächtnis-KI (Limited Memory AI)** - -Die zweite Stufe der KI kann Informationen aus vergangenen Interaktionen nutzen, um zukünftige Entscheidungen zu verbessern. - -Beispiel: Selbstfahrende Autos, die Sensordaten aus der Umgebung speichern und auf Basis vorheriger Erfahrungen optimieren. - -Die erste und zweite Stufen der KI sind bereits teilweise im Einsatz, mit unterschiedlichen technischen Reifegrad in diversen Domänen. - -3. **Theorie des Geistes-KI (Theory of Mind AI)** *(noch in der Forschung)* - -Im Gegensatz zu den ersten beiden Formen der KI hätten die 3. und die 4. Form der KI ein eigenes Bewusstsein und Verständnis für sich selbst. Intelligente Systeme der Stufe 3 könnten menschliche Emotionen wahrnehmen und verstehen, sowie auch deren eigenes Verhalten entsprechend anpassen. - -Ziel: KI mit Verständnis für Emotionen und sozialen Kontext. - -Potenzielles Beispiel: Fortgeschrittene humanoide Roboter mit sozialem Bewusstsein. - -4. **Selbstbewusste KI (Self-Aware AI)** *(hypothetisch)* - -Diese Stufe der KI hätte ein eigenes Bewusstsein und ein Verständnis für sich selbst und käme somit dem menschlichen Bewusstsein (der menschlichen Intelligenz) am nächsten. - -Ob und wann die Entwicklung der KI jemals diese Stufe erreichen wird, ist noch viel umstritten - bisher wurde es nur in Science-Fiction Werken dargestellt. - -**Prädiktive vs. Generative KI** - -Die aktuell in der Industrie gängigen Formen der KI lassen sind insbesondere in **prädiktive KI** und **generative KI** unterscheiden: - -1. **Prädiktive KI** - - - Diese KI nutzt historische Daten, um **zukünftige Ereignisse vorherzusagen**. - - - Verwendete Algorithmen: Regression, Entscheidungsbäume, neuronale Netze. - - - Beispiele: - - - Vorhersage von Aktienkursen oder Wetterverhältnissen. - - - Diagnose von Krankheiten basierend auf medizinischen Daten. - - - Betrugserkennung im Finanzsektor. - -2. **Generative KI** - - - Diese KI erzeugt **neue Inhalte**, die zuvor nicht explizit in den Trainingsdaten enthalten waren. - - - Verwendete Modelle: Generative Adversarial Networks (GANs), Transformer-Modelle (z. B. GPT, DALL·E). - - - Beispiele: - - - Erstellung von Bildern, Musik oder Texten (z. B. KI-generierte Kunst, Chatbots). - - - Übersetzung und Zusammenfassung von Texten. - - - Deepfake-Technologien. - -**Bedeutung dieser Unterscheidung** - -- Prädiktive KI wird hauptsächlich in **Analytik und Entscheidungsfindung** eingesetzt, während generative KI für **Kreativität und Content-Erzeugung** genutzt wird. - -- In der Praxis werden oft **beide Ansätze kombiniert**, z. B. wenn eine prädiktive KI Markttrends analysiert und eine generative KI dazu passende Werbeinhalte erstellt. - - -**Anwendungsfälle von KI** - -KI findet heute in zahlreichen Bereichen Anwendung, darunter: - -- **Gesundheitswesen:** Diagnosestellung durch KI-gestützte Bildverarbeitung, Medikamentenentwicklung. - -- **Finanzwesen:** Automatische Betrugserkennung, algorithmischer Handel. - -- **Industrie:** Automatisierung von Prozessen, Qualitätskontrolle in der Fertigung. - -- **Autonome Systeme:** Selbstfahrende Autos, Drohnen, Robotersteuerung. - -- **Sprachverarbeitung:** Sprachassistenten wie Siri, Alexa oder Google Assistant. - -- **Kreative Anwendungen:** Generierung von Texten, Musik und Kunst durch KI. - -**Ethische Fragestellungen in der KI** - -Mit der rasanten Entwicklung der KI gehen auch bedeutende ethische Fragen einher: - -- **Bias und Diskriminierung:** KI-Modelle können bestehende Vorurteile aus Trainingsdaten übernehmen. - -- **Arbeitsplatzverdrängung:** Automatisierung kann menschliche Arbeitsplätze gefährden. - -- **Transparenz und Erklärbarkeit:** Viele KI-Modelle, insbesondere Deep Learning, sind schwer zu interpretieren. - -- **Verantwortung und Haftung:** Wer ist verantwortlich, wenn eine KI fehlerhafte oder schädliche Entscheidungen trifft? - -- **Datenschutz:** KI-Anwendungen erfordern oft große Datenmengen, was Datenschutzprobleme aufwirft. - - - -Kapitel 2: Maschinelles Lernen (ML): Konzepte und Typen --------------------------------------------------- - -.. note:: - **TODO: MIT CODE BEISPIEL!** - https://www.python4data.science/de/latest/productive/dvc/dag.html - -**Definition und Konzepte des Maschinellen Lernens (ML)** - -Maschinelles Lernen (Machine Learning, ML) ist ein Teilgebiet der Künstlichen Intelligenz, das Computern ermöglicht, aus Daten zu lernen, anstatt explizit programmiert zu werden. Es gibt drei Hauptarten des ML: - -1. **Überwachtes Lernen (Supervised Learning)** -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Beim **überwachten Lernen** werden Modelle mit **gelabelten Daten** trainiert. - -Das bedeutet, dass für jeden Eingabedatensatz ein bekanntes **Ziel** existiert. - -Das Ziel des Modells ist es, eine Funktion zu lernen, die den Zusammenhang zwischen Eingaben und Ausgaben erfasst. - -Überwachtes Lernen kann sowohl für Regression als auch für Klassifikation genutzt werden. - -Beispiele hierfür sind: - -- **Klassifikation:** Vorhersage diskreter Kategorien (z. B. Spam-Filter, Bilderkennung von Hunden und Katzen). - -- **Regression:** Vorhersage kontinuierlicher Werte (z. B. Hauspreisvorhersage anhand der Wohnfläche). - -**Theoretische Konzepte des Überwachten Lernens** - -- **Trainingsprozess:** - - - Das Modell wird mit einem Trainingsdatensatz trainiert, in dem **Eingaben (Features)** und die zugehörigen **Zielwerte (Labels)** bekannt sind. - - - Die Lernfunktion (oft als **Hypothesenfunktion** bezeichnet) wird durch das Training optimiert. - -- **Modellbewertung:** - - - Das trainierte Modell wird anhand neuer Daten getestet, um sicherzustellen, dass es generalisiert und nicht nur die Trainingsdaten auswendig gelernt hat. - - - Typische Metriken: Genauigkeit, Präzision, Recall und F1-Score, Mean Squared Error (MSE). - -2. **Unüberwachtes Lernen (Unsupervised Learning)** -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Beim **unüberwachten Lernen** gibt es **keine gelabelten Daten**. - -Das Modell versucht, Muster oder Strukturen in den Daten zu entdecken. - -Dies eignet sich besonders für **Explorative Datenanalyse**, bei der keine festen Kategorien bekannt sind. - -Unüberwachtes Lernen kann direkt für Klassifikationsprobleme genutzt werden; aber nur indirekt für Regressionsprobleme, z.B. als Vorverarbeitungsschritt oder zur Merkmalextraktion, um Regression effektiver zu machen. - - -Typische Anwendungen sind: - -1. **Clustering:** - -- Ziel: Datenpunkte in Gruppen einteilen, basierend auf Ähnlichkeit. - -- Beispiele: - - - Kundensegmentierung für personalisierte Werbung. - - - Erkennung von ähnlichen Produkten in Online-Shops. - - - Gruppierung von genetischen Mustern in der Biologie. - - - Betrugserkennung durch Anomalie-Analyse in Banktransaktionen. - -2. **Dimensionsreduktion:** - -- Ziel: Komplexe Daten in eine einfachere Form umwandeln. - -- Beispiele: - - - Hauptkomponentenanalyse (PCA) zur Reduzierung hochdimensionaler Daten. - - - Visualisierung von großen Datenmengen. - - - Feature-Auswahl für effizientere Modellberechnungen. - - -3. **Theoretische Konzepte des Unüberwachten Lernens** - -- **Clustering-Algorithmen:** - - - **K-Means:** Teilt Daten in eine vordefinierte Anzahl von Clustern ein. - - - **Hierarchisches Clustering:** Erstellt eine baumartige Struktur zur Clusterbildung. - - - **DBSCAN:** Erkennt Cluster basierend auf der Dichte der Datenpunkte. - -- **Dimensionsreduktionstechniken:** - - - **PCA (Principal Component Analysis):** Extrahiert die wichtigsten Variablen aus großen Datensätzen. - - - **t-SNE (t-Distributed Stochastic Neighbor Embedding):** Visualisiert komplexe Datensätze in 2D oder 3D. - -**Vergleich: Überwachtes vs. Unüberwachtes Lernen** -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. list-table:: Vergleich von Überwachtem und Unüberwachtem Lernen - :header-rows: 1 - - * - Merkmal - - Überwachtes Lernen - - Unüberwachtes Lernen - * - Datenverfügbarkeit - - Gelabelte Daten notwendig - - Keine Labels erforderlich - * - Ziel - - Vorhersage einer bekannten Zielvariable - - Identifikation von Mustern oder Strukturen - * - Typische Algorithmen - - Lineare Regression, Entscheidungsbäume, Neuronale Netze - - K-Means, DBSCAN, PCA - * - Anwendungsbereiche - - Klassifikation, Regression - - Clustering, Dimensionsreduktion - -3. **Reinforcement Learning (Bestärkendes Lernen, RL)** -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -1. **Definition:** - - - Beim **Reinforcement Learning** (Bestärkenden Lernen, RL) lernt ein Agent durch **Interaktion mit einer Umgebung**, wobei er **Belohnungen oder Bestrafungen** erhält. - - - Das Ziel des RL ist es, eine **Optimierungsstrategie** zu entwickeln, die langfristig die höchste Gesamtbelohnung erzielt. - - - Es handelt sich um eine Form des **Lernens durch Versuch und Irrtum**, ähnlich wie ein Mensch, der durch Erfahrung lernt. - -2. **Grundprinzipien von Reinforcement Learning:** - - - **Agent** – Das KI-System, das lernt (z. B. ein Roboter, ein autonomes Auto, ein Schachprogramm). - - - **Umgebung (Environment)** – Alles außerhalb des Agents, mit dem er interagiert. - - - **Zustand (State)** – Eine Momentaufnahme der Umgebung, die den Agenten beeinflusst. - - - **Aktion (Action)** – Eine Entscheidung, die der Agent in einem bestimmten Zustand trifft. - - - **Belohnung (Reward)** – Eine numerische Bewertung der Aktion, die dem Agenten signalisiert, ob er sich der optimalen Lösung nähert oder nicht. - - - **Richtlinien (Policy)** – Eine Strategie, die den besten nächsten Schritt für den Agenten bestimmt. - - - **Qualitäts-Wert (Q-Value)** – Eine Bewertung, wie gut eine bestimmte Aktion in einem Zustand langfristig ist. - -3. **Beispiele für RL-Anwendungen:** - -- **Spielstrategien:** AlphaGo von DeepMind besiegte menschliche Meister im Go-Spiel durch RL. - -- **Autonome Fahrzeuge:** Lernen, sicher zu fahren, indem sie Belohnungen für sichere Entscheidungen erhalten. - -- **Robotik:** Industrieroboter optimieren ihre Bewegungen, um Aufgaben effizienter zu erledigen. - -- **Algorithmischer Handel:** KI-Agenten lernen, wann sie Aktien kaufen oder verkaufen sollen. - -4. **Wichtige RL-Algorithmen:** - -- **Q-Learning:** Eine tabellenbasierte Methode zur Speicherung der besten Aktionen. - -- **Deep Q-Networks (DQN):** Eine Erweiterung von Q-Learning unter Verwendung von neuronalen Netzen. - -- **Policy-Gradient-Verfahren:** Statt Werte zu lernen, lernt das Modell direkt eine optimale Strategie. - -- **Proximal Policy Optimization (PPO):** Häufig in modernen RL-Anwendungen eingesetzt (z. B. bei OpenAI Gym). - -5. **Herausforderungen im RL:** - -- **Exploration vs. Exploitation:** Ein Agent muss entscheiden, ob er eine **neue Strategie** testet oder eine **bereits bekannte, aber möglicherweise nicht optimale** Strategie nutzt. - -- **Belohnungsdesign:** Ein schlecht definierter Belohnungsmechanismus kann dazu führen, dass das Modell unerwartete oder unerwünschte Strategien lernt. - -- **Rechenaufwand:** RL benötigt oft viele Trainingsdurchläufe und Rechenleistung. - -.. seealso:: - * :doc:`day3` - - - - -.. https://python-basics-tutorial.readthedocs.io/en/latest/appendix/glossary.html - - -.. glossary: - - Eingangsschicht - Input Layer - Nimmt Daten auf (z. B. Pixelwerte eines Bildes). - - - - -4. **Deep Learning (DL) als spezialisierte Form des ML** -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -**Definition:** - -- Deep Learning (DL) ist ein Teilgebiet des maschinellen Lernens, das auf **künstlichen neuronalen Netzen (KNNs)** basiert. - -- Es verwendet **mehrere Schichten von Neuronen** (daher der Begriff „Deep“), um hochkomplexe Muster in Daten zu lernen. - -- Deep Learning ist besonders leistungsfähig bei **Bildverarbeitung, Spracherkennung und natürlicher Sprachverarbeitung (NLP).** - -**Aufbau eines neuronalen Netzes:** - -:term:`Input Layer` - Nimmt Daten auf (z. B. Pixelwerte eines Bildes). - - - -2. **Verborgene Schichten (Hidden Layers):** Extrahieren Merkmale und erkennen Muster. - -3. **Ausgangsschicht (Output Layer):** Gibt das Ergebnis der Berechnung aus (z. B. Klassifizierung in „Hund“ oder „Katze“). - -**Arten von neuronalen Netzwerken:** - -- **Feedforward Neural Networks (FNN):** Einfachste Form, bei der Informationen nur in eine Richtung fließen. - -- **Convolutional Neural Networks (CNN):** Besonders geeignet für **Bildverarbeitung** (z. B. Gesichtserkennung, medizinische Bilddiagnostik). - -- **Recurrent Neural Networks (RNN):** Nutzen vergangene Informationen zur Verarbeitung von **sequenziellen Daten** (z. B. Sprachverarbeitung, Zeitreihenanalyse). - -- **Transformer-Modelle:** Revolutionierten die **Natürliche Sprachverarbeitung (NLP)** (z. B. GPT-Modelle, BERT, T5). - -**Beispiele für Anwendungen von Deep Learning:** - -- **Bilderkennung:** Automatische Erkennung von Objekten in Bildern. - -- **Sprachverarbeitung (NLP):** Chatbots, automatische Übersetzungen (Google Translate, ChatGPT). - -- **Autonome Systeme:** Steuerung von selbstfahrenden Autos und Robotern. - -- **Medizinische Diagnosen:** Krebsfrüherkennung in MRT-Scans mit neuronalen Netzen. - -**Herausforderungen im Deep Learning:** - -- **Erklärbarkeit:** DL-Modelle sind oft **Black Boxes**, deren Entscheidungen schwer nachvollziehbar sind. - -- **Datenbedarf:** Sehr große Mengen an **trainingsdaten** sind notwendig. - -- **Rechenleistung:** DL benötigt leistungsfähige GPUs oder TPUs. - -**Zukunft von Deep Learning:** - -- **Edge AI:** Deep Learning wird zunehmend auf Edge-Geräten (Smartphones, IoT-Geräte) ausgeführt. - -- **Hybride Systeme:** Kombination von Deep Learning mit Reinforcement Learning für **komplexe Entscheidungsprozesse**. - -- **Quanten-KI:** Erste Ansätze zur Beschleunigung von Deep-Learning-Modellen mit Quantencomputing. - - - -Kapitel 3: Kategorien von Aufgaben: Regression, Klassifikation, Clustering, Autonome Aufgaben, Generative Aufgaben --------------------------------------------------------------------------------------- - -Maschinelles Lernen kann für verschiedene **Aufgabentypen** eingesetzt werden, abhängig davon, ob das Ziel eine **Vorhersage, Gruppierung oder Entscheidungsoptimierung** ist. In diesem Kapitel werden die vier Hauptarten von ML-Aufgaben vorgestellt: **Regression, Klassifikation, Clustering und autonome Aufgaben.** - -**I. Regression** - -**Definition:** - -- Regression ist eine Technik zur **Vorhersage von kontinuierlichen Werten** auf Basis von Eingabedaten. - -- Sie wird genutzt, wenn das Ziel eine numerische Größe ist, z. B. Preis, Temperatur oder Umsatzprognose. - -**Beispiele für Regression:** - -- **Immobilienpreise vorhersagen:** Basierend auf Faktoren wie Größe, Lage und Baujahr. - -- **Wettervorhersagen:** Prognose der Temperatur für den nächsten Tag. - -- **Finanzmarktanalysen:** Vorhersage von Aktienkursen oder Umsatzentwicklungen. - -**Typische Algorithmen:** - -- Lineare Regression - -- Multiple Regression - -- Polynomial Regression - -- Neuronale Netze für kontinuierliche Vorhersagen - -------- - -**II. Klassifikation** - -**Definition:** - -- Klassifikation ist eine Methode zur **Zuordnung von Datenpunkten zu diskreten Kategorien**. - -- Das Ziel ist, eine Entscheidung über eine vordefinierte Anzahl von Klassen zu treffen. - -**Beispiele für Klassifikation:** - -- **E-Mail-Spam-Erkennung:** Klassifizierung von E-Mails als "Spam" oder "Nicht-Spam". - -- **Diagnosen in der Medizin:** Erkennung von Krankheiten anhand von Symptomen. - -- **Bilderkennung:** Identifizierung von Objekten auf Fotos (Hund vs. Katze). - -**Typische Algorithmen:** - -- Entscheidungsbäume - -- Random Forest - -- Support Vector Machines (SVM) - -- Neuronale Netze für Bilderkennung (CNNs) - ------ - -**III. Clustering** - -**Definition:** - -- Clustering ist eine Technik des **unüberwachten Lernens**, bei der Daten ohne vorherige Labels in Gruppen eingeteilt werden. - -- Das Ziel ist es, Muster oder Strukturen in den Daten zu erkennen. - -**Beispiele für Clustering:** - -- **Kundensegmentierung:** Kunden anhand ihres Kaufverhaltens in Gruppen einteilen. - -- **Genanalyse:** Identifikation von ähnlichen genetischen Mustern. - -- **Betrugserkennung:** Auffinden verdächtiger Transaktionsmuster. - -**Typische Algorithmen:** - -- K-Means-Clustering - -- DBSCAN (Density-Based Spatial Clustering) - -- Hierarchisches Clustering - ------- - -**IV. Autonome Aufgaben** - -**Definition:** - -- Autonome Aufgaben erfordern eine Kombination aus **überwachtem, unüberwachtem und bestärkendem Lernen**, um **eigenständig Entscheidungen** zu treffen und sich an neue Situationen anzupassen. - -- Diese Aufgaben sind besonders anspruchsvoll, da sie oft **Echtzeit-Entscheidungen** erfordern. - -**Beispiele für autonome Aufgaben:** - -- **Selbstfahrende Autos:** Kombination aus Bilderkennung, Reinforcement Learning und Sensorfusion zur sicheren Navigation. - -- **Industrielle Robotik:** Roboter, die sich an neue Umgebungen anpassen und Produktionslinien optimieren. - -- **Dynamische Preisgestaltung:** Systeme, die in Echtzeit Preisentscheidungen treffen, basierend auf Angebot und Nachfrage. - -**Technologien hinter autonomen Aufgaben:** - -- **Reinforcement Learning (RL):** Algorithmen lernen durch Belohnungssysteme. - -- **Neuronale Netze:** Deep Learning wird genutzt, um Sensordaten zu verarbeiten. - -- **Edge Computing:** Echtzeit-Datenverarbeitung für schnelle Reaktionen. - - -------- - -**V. Generative Aufgaben** - -Definition: - - Generative KI zielt darauf ab, neue Daten zu erzeugen, die den Muster der Trainingsdaten folgen, aber nicht identisch mit ihnen sind. - - Diese Technologie basiert auf Modellen, die durch unüberwachtes oder selbstüberwachtes Lernen trainiert werden und dann neue Inhalte generieren. - -Beispiele für generative Aufgaben: - - Bildgenerierung: - - Erstellung neuer Bilder auf Basis bestehender Stile (z. B. DeepDream, DALL·E). - - Erstellung realistischer Gesichter mit GANs (z. B. „ThisPersonDoesNotExist.com“). - - Textgenerierung: - - Chatbots wie ChatGPT, die menschenähnliche Texte generieren. - - Automatische Textzusammenfassungen oder Artikelgenerierung. - - Musik und Audio: - - KI-gestützte Musikkomposition (z. B. OpenAIs Jukebox). - - Stimmenklonen und Deepfake-Audio. - - Code-Generierung: - - KI-Systeme wie GitHub Copilot oder AlphaCode, die Programmiercode generieren. - - 3D- und Videogenerierung: - - Synthese neuer 3D-Modelle für Videospiele oder Animationen. - - KI-generierte Deepfake-Videos. - -Typische Algorithmen: - - Generative Adversarial Networks (GANs) - - - Lernen zwei konkurrierende Netzwerke: ein „Generator“ und ein „Diskriminator“. - - - Beispiel: Stiltransfer von Gemälden auf Fotos. - - Variational Autoencoders (VAEs) - - Lernen eine kompakte Darstellung der Daten und können daraus neue Instanzen generieren. - - Transformer-Modelle (z. B. GPT, BERT, T5) - - Werden für Text- und Codegenerierung eingesetzt. - - Diffusionsmodelle (DALL·E, Stable Diffusion) - - Besonders leistungsfähig für hochwertige Bilderzeugung. - -Zusammenfassung: - -- Generative KI ist eine eigene Aufgabenkategorie, da sie keine Vorhersage- oder Gruppierungsaufgabe erfüllt, sondern neue Inhalte erstellt. - -- Sie nutzt tiefe neuronale Netze, insbesondere GANs, Transformer-Modelle und Diffusionsmodelle. - -- Generative KI wird zunehmend wichtiger in Bereichen wie Kunst, Design, Code, Audio und Sprache. -------- - -**VI. Vergleich der ML-Aufgabentypen** - -.. list-table:: Vergleich von Regression, Klassifikation, Clustering und autonomen Aufgaben - :header-rows: 1 - - * - Merkmal - - Regression - - Klassifikation - - Clustering - - Autonome Aufgaben - - Generative Aufgaben - * - Art der Vorhersage - - Kontinuierlicher Wert - - Diskrete Klassen - - Gruppenbildung ohne Labels - - Eigenständige Entscheidungsfindung - - Erzeugung neuer Daten - * - Beispiele - - Preisprognosen, Finanzanalysen - - Bilderkennung, Spam-Filter - - Kundensegmentierung, Anomalieerkennung - - Selbstfahrende Autos, Industrieroboter - - KI-generierte Bilder, Texte, Musik - * - Typische Algorithmen - - Lineare Regression, neuronale Netze - - Entscheidungsbäume, SVM - - K-Means, DBSCAN - - Reinforcement Learning, Deep Learning - - GANs, VAEs, Transformer - ---- - -**Fazit** - -- Regression, Klassifikation und Clustering gehören zu den klassischen Aufgaben des maschinellen Lernens. - -- Autonome Systeme sind eine anspruchsvolle Anwendung, die verschiedene ML-Techniken kombiniert. - -- Je nach Daten und Zielsetzung kann eine Kombination dieser Methoden sinnvoll sein. - - - -Kapitel 4: Trainingsdaten und Modellierung ------------------------------------------- - -**Datenqualität und ihre Bedeutung** - -- Gute Trainingsdaten sind essenziell für die Leistungsfähigkeit eines Modells. - -- Aspekte der Datenqualität: - - - **Vollständigkeit:** Fehlende Werte können Modelle ungenau machen. - - - **Konsistenz:** Daten sollten einheitlich und korrekt sein. - - - **Ausreißererkennung:** Extreme Werte können Modelle verzerren. - - - **Datenverteilung:** Unausgewogene Datensätze (z. B. ungleich verteilte Klassen) beeinflussen Modellentscheidungen. - -**Feature Engineering** - -- Feature Engineering ist die Kunst, relevante Eingangsvariablen für ein Modell zu erstellen. - -Beispiel: Cohorte (Generation) vs. Alters-cohorte (https://de.wikipedia.org/wiki/Kohorte_(Sozialwissenschaft)) - -- Typische Techniken: - - - **Feature Skalierung:** Normalisierung und Standardisierung von Daten (z. B. Min-Max-Scaling, Z-Score-Normalisierung). - - - **Feature Selektion:** Auswahl der wichtigsten Merkmale zur Reduktion von Overfitting. - - - **Feature Transformation:** Anwendung von Logarithmus- oder Polynom-Transformationen zur Verbesserung der Modellleistung. - - - **One-Hot-Encoding:** Umwandlung kategorialer Variablen in numerische Werte. - -**Modelltraining und Optimierung** - -- Schritte des Modelltrainings: - - 1. **Datenaufteilung:** Aufteilung in Trainings-, Validierungs- und Testdatensätze. - - 2. **Modellauswahl:** Auswahl eines geeigneten Algorithmus (z. B. Entscheidungsbaum, Random Forest, neuronale Netze). - - 3. **Hyperparameter-Tuning:** Feinabstimmung der Modellparameter zur Optimierung der Leistung (z. B. Grid Search, Random Search). - - 4. **Modellbewertung:** Verwendung von Metriken wie Genauigkeit, F1-Score oder Mean Squared Error zur Bewertung der Vorhersagequalität. - - 5. **Modellbereitstellung:** Einsatz des trainierten Modells in einer produktiven Umgebung. - -**Praxisbeispiel: Modelltraining in Python** - -- Implementierung eines einfachen ML-Modells mit scikit-learn zur Vorhersage von Hauspreisen. - -- Demonstration von Datenvorbereitung, Feature Engineering und Modelltraining. - - -Kapitel 5: Evaluation von ML-Modellen --------------------------------------- - -**Warum ist die Modellbewertung wichtig?** - -- Die Evaluation von ML-Modellen stellt sicher, dass das Modell zuverlässig und generalisierbar ist. - -- Ein gut evaluiertes Modell verhindert Overfitting und hilft, die besten Algorithmen und Parameter auszuwählen. - -**Wichtige Metriken für Klassifikationsprobleme** -1. **Accuracy (Genauigkeit):** - -Prozentsatz der korrekten Vorhersagen. - -Formel: - -.. math:: - \text{Accuracy} = \frac{\text{Anzahl der korrekten Vorhersagen}}{\text{Gesamtanzahl der Vorhersagen}} - -ACHTUNG! Accuracy hat eine Einschränkung bei (stark) unausgewogenen Datensätzen, da sie hier irreführend sein kann. - -2. **Precision (Präzision):** - -Precision ist der Anteil der tatsächlich positiven Vorhersagen unter allen als positiv klassifizierten Instanzen. - -Die Formel hierfür lautet: - -.. math:: - \text{Precision} = \frac{TP}{TP + FP} - -Precision wird vor allem bevorzugt, wenn falsch-positive Fehler besonders kritisch sind (z. B. Spam-Erkennung). - -3. **Recall (Sensitivität):** - -Recall ist der Anteil der korrekten positiven Vorhersagen unter allen tatsächlichen positiven Fällen. - -Die Formel hierfür lautet: - -.. math:: - \text{Recall} = \frac{TP}{TP + FN} - -Recall ist eine wichtige Metrik, wenn es entscheidend ist, möglichst alle positiven Fälle zu erfassen (z. B. Krebsdiagnosen). - -4. **F1-Score:** - -Der F1-Score ist Harmonic Mean von Präzision und Recall, um ein ausgewogenes Maß zu erhalten. - -Die Formel dafür lautet: - -.. math:: - \text{F1-Score} = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} - -Der F1-Score ist besonders nützlich bei unausgewogenen Datensätzen (unbiased data sets). - -**Wichtige Metriken für Regressionsprobleme** - -1. **Mean Squared Error, MSE (Mittlerer quadratischer Fehler):** - -Der MSE berechnet den Durchschnitt der quadrierten Fehler zwischen vorhergesagten und tatsächlichen Werten. - -Die Formel dafür lautet: - -.. math:: - \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 - -Somit bestraft der MSE große Fehler stärker als kleine Fehler. - -2. **Mean Absolute Error, MAE (Mittlerer absoluter Fehler):** - -Der MAE berechnet den Durchschnitt der absoluten Differenzen zwischen vorhergesagten und tatsächlichen Werten. - -Die Formel dafür lautet: - -.. math:: - \text{MAE} = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i| - - -3. **R²-Koeffizient (Bestimmtheitsmaß):** - - - Zeigt, wie gut das Modell die Varianz der Zielvariable erklärt. - - - Wertebereich: 0 (keine Erklärung) bis 1 (perfekte Erklärung). - -**Praktische Anwendung: Evaluierung eines Modells in Python** - -Ein Beispiel zur Berechnung dieser Metriken mit `scikit-learn`: - -.. py:function:: python: - - from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score - - # Beispiel: Tatsächliche Labels und Vorhersagen - - true_labels = [1, 0, 1, 1, 0, 1, 0, 0, 1, 0] - - predicted_labels = [1, 0, 1, 0, 0, 1, 0, 1, 1, 0] - - # Berechnung der Metriken - - accuracy = accuracy_score(true_labels, predicted_labels) - - precision = precision_score(true_labels, predicted_labels) - - recall = recall_score(true_labels, predicted_labels) - - f1 = f1_score(true_labels, predicted_labels) - - print(f'Accuracy: {accuracy}, Precision: {precision}, Recall: {recall}, F1-Score: {f1}') - - return (accuracy, precision, recall, f1) - - -Kapitel 6: Praktische Einführung: Lineare Regression ------------------------------------------------------ - -**Was ist Lineare Regression?** - -- Die **Lineare Regression** ist eines der grundlegendsten Modelle des maschinellen Lernens. - -- Sie wird verwendet, um eine abhängige Variable (Zielvariable) anhand einer oder mehrerer unabhängiger Variablen vorherzusagen. - -- Die Gleichung einer einfachen linearen Regression lautet: - - .. math:: - y = wX + b - - wobei: - - - `y` die Zielvariable ist, - - - `X` die unabhängige Variable, - - - `w` die Steigung der Geraden (Gewicht) und - - - `b` der Achsenabschnitt (Bias). - -**Schritte zur Implementierung eines ML-Modells mit scikit-learn** - -1. **Daten laden und vorbereiten** - - - Import von Bibliotheken und Laden eines Datensatzes. - - - Aufteilung der Daten in Trainings- und Testsets. - -2. **Modell erstellen und trainieren** - - - Ein Lineares Regressionsmodell aus `scikit-learn` erstellen und trainieren. - -3. **Modell evaluieren** - - - Vorhersagen treffen und mit Metriken wie dem mittleren quadratischen Fehler (MSE) bewerten. - -**Code-Beispiel: Lineare Regression mit scikit-learn** - -.. code-block:: python - - import numpy as np - import matplotlib.pyplot as plt - from sklearn.model_selection import train_test_split - from sklearn.linear_model import LinearRegression - from sklearn.metrics import mean_squared_error - - # Beispiel-Datensatz erstellen - np.random.seed(42) - X = 2 * np.random.rand(100, 1) - y = 4 + 3 * X + np.random.randn(100, 1) - - # Aufteilung in Trainings- und Testdaten - X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) - - # Modell erstellen und trainieren - model = LinearRegression() - model.fit(X_train, y_train) - - # Vorhersagen treffen - y_pred = model.predict(X_test) - - # Modellbewertung - mse = mean_squared_error(y_test, y_pred) - print(f'Mittlerer quadratischer Fehler (MSE): {mse}') - - # Visualisierung - plt.scatter(X_test, y_test, color='blue', label='Tatsächliche Werte') - plt.plot(X_test, y_pred, color='red', linewidth=2, label='Vorhersagen') - plt.legend() - plt.xlabel('X') - plt.ylabel('y') - plt.title('Lineare Regression mit scikit-learn') - plt.show() - -**Erklärung des Codes:** - -- Wir generieren synthetische Daten mit einer linearen Beziehung und fügen zufällige Schwankungen hinzu. - -- Wir teilen die Daten in **Trainings- und Testsets**, um eine objektive Modellbewertung zu ermöglichen. - -- Mit `LinearRegression().fit()` trainieren wir unser Modell. - -- Wir verwenden `mean_squared_error()`, um die Modellgenauigkeit zu messen. - -- Schließlich visualisieren wir die tatsächlichen und vorhergesagten Werte, um die Modellleistung zu interpretieren. - - -Kapitel 7: Fallstudie: Vorhersage von Immobilienpreisen --------------------------------------------------------- - -**Ziel dieser Fallstudie** - -- Anwendung der erlernten Methoden zur Vorhersage von Immobilienpreisen. - -- Verwendung eines realen Datensatzes zur Modellierung. - -- Umsetzung in Python mit `scikit-learn`. - -**Schritte zur Umsetzung** - -1. **Daten laden und verstehen** - - - Nutzung eines offenen Datensatzes (z. B. `Boston Housing Dataset` oder `Kaggle Immobilienpreise`). - - - Untersuchung der Datenverteilung, Korrelationen und möglicher Ausreißer. - -2. **Datenvorbereitung** - - - Umwandlung kategorischer Merkmale (One-Hot-Encoding). - - - Normalisierung und Skalierung numerischer Merkmale. - - - Aufteilung in Trainings- und Testdaten. - -3. **Modelltraining mit Lineare Regression** - - - Trainieren eines **Linearen Regressionsmodells** mit `scikit-learn`. - - - Verwendung von Metriken zur Bewertung der Modellgüte (z. B. MSE, R²). - -4. **Modellbewertung und Interpretation** - - - Bewertung der Modellperformance auf dem Testdatensatz. - - - Interpretation der wichtigsten Einflussgrößen. - -**Code-Beispiel: Vorhersage von Immobilienpreisen** - -.. code-block:: python - - import pandas as pd - import numpy as np - import matplotlib.pyplot as plt - from sklearn.model_selection import train_test_split - from sklearn.preprocessing import StandardScaler, OneHotEncoder - from sklearn.linear_model import LinearRegression - from sklearn.metrics import mean_squared_error, r2_score - - # Beispieldatensatz laden (Boston Housing Dataset) - from sklearn.datasets import load_boston - boston = load_boston() - df = pd.DataFrame(boston.data, columns=boston.feature_names) - df['PRICE'] = boston.target - - # Aufteilung in Merkmale (X) und Zielvariable (y) - X = df.drop('PRICE', axis=1) - y = df['PRICE'] - - # Aufteilung in Trainings- und Testsets - X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) - - # Feature Scaling - scaler = StandardScaler() - X_train_scaled = scaler.fit_transform(X_train) - X_test_scaled = scaler.transform(X_test) - - # Lineare Regression trainieren - model = LinearRegression() - model.fit(X_train_scaled, y_train) - - # Vorhersagen treffen - y_pred = model.predict(X_test_scaled) - - # Modellbewertung - mse = mean_squared_error(y_test, y_pred) - r2 = r2_score(y_test, y_pred) - print(f'Mittlerer quadratischer Fehler (MSE): {mse}') - print(f'Bestimmtheitsmaß (R²): {r2}') - - # Visualisierung der Vorhersagen - plt.scatter(y_test, y_pred, alpha=0.7) - plt.xlabel('Tatsächliche Preise') - plt.ylabel('Vorhergesagte Preise') - plt.title('Tatsächliche vs. Vorhergesagte Immobilienpreise') - plt.show() - -**Erklärung des Codes:** - -- **Datensatz laden:** Wir verwenden das `Boston Housing Dataset`, das verschiedene Merkmale von Häusern enthält. - -- **Datenvorverarbeitung:** Skalierung der numerischen Variablen zur besseren Modellleistung. - -- **Modelltraining:** Wir verwenden eine einfache lineare Regression. - -- **Modellbewertung:** Berechnung des mittleren quadratischen Fehlers (MSE) und des Bestimmtheitsmaßes (R²). - -- **Visualisierung:** Darstellung der tatsächlichen vs. vorhergesagten Werte zur Überprüfung der Modellgüte. - - -Kapitel 8: Diskussion und Fragen ---------------------------------- - -**Ziel der Diskussion** - -- Reflexion der erlernten Inhalte und Beantwortung offener Fragen. - -- Gemeinsamer Austausch über die praktische Anwendbarkeit von KI in verschiedenen Branchen. - -**Diskussion über Anwendungen von KI in verschiedenen Bereichen** - -1. **Gesundheitswesen** - - - Einsatz von KI für medizinische Diagnosen (z. B. Krebsfrüherkennung mittels Bildverarbeitung). - - - Personalisierte Medizin basierend auf Patientendaten. - - - Automatisierte Medikamentenentwicklung und klinische Studienoptimierung. - -2. **Finanzwesen** - - - Algorithmischer Handel und automatisierte Investitionsstrategien. - - - Betrugserkennung in Echtzeit durch Anomalieerkennung. - - - Risikoanalysen für Kreditbewilligungen. - -3. **Industrie und Fertigung** - - - Predictive Maintenance (vorausschauende Wartung von Maschinen). - - - Automatisierung in der Fertigung mit KI-gesteuerten Robotern. - - - Optimierung von Lieferketten durch intelligente Planungssysteme. - -4. **Mobilität und Transport** - - - Autonome Fahrzeuge und intelligente Verkehrssteuerung. - - - KI-gestützte Routenoptimierung für Logistikunternehmen. - - - Fahrgastprognosen im öffentlichen Verkehr. - -5. **E-Commerce und Marketing** - - - Personalisierte Produktempfehlungen (z. B. Amazon, Netflix). - - - Chatbots für Kundenservice und automatisierte Bestellprozesse. - - - Dynamische Preisgestaltung durch KI-Analyse von Markttrends. - -6. **Recht und Verwaltung** - - - Automatisierte Vertragsanalyse und Dokumentenprüfung. - - - KI zur Unterstützung juristischer Entscheidungen. - - - Öffentliche Verwaltung und KI-gestützte Bürgerdienste. - -**Offene Diskussion und Fragen** - -- Welche KI-Technologien haben das größte Potenzial für die Zukunft? - -- Welche Herausforderungen und ethischen Bedenken gibt es in den jeweiligen Bereichen? - -- Wie kann KI für nachhaltige Entwicklungen genutzt werden? - - -Zusätzliche Materialien ------------------------ -- Einführung in `Scikit-Learn `_ -- NumPy- und Pandas-Dokumentation für Datenverarbeitung -- Matplotlib für Visualisierung -- TensorFlow/Keras für Deep Learning (für spätere Module) - - diff --git a/docs/index.rst b/docs/index.rst index 84c2679..537dfe9 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -4,7 +4,7 @@ Einführung in KI Die Schulung "Einführung in KI" ermöglicht euch einen praxisnahen Einstieg in KI mit Python. -Die Schulung ist aufgebaut in 4 Blöcken und hat folgende Hauptbestandteile: +Die Schulung ist aufgebaut in 4 Blöcken und hat folgende Hauptbestandteile: Alle Tutorials dienen als Seminarunterlagen für unsere aufeinander abgestimmten Trainings: @@ -65,8 +65,8 @@ Zusatzmaterialien: :hidden: :titlesonly: :maxdepth: 0 - - day1 + + intro/index day2 day3 day4 diff --git a/docs/intro/case-study.rst b/docs/intro/case-study.rst new file mode 100644 index 0000000..843e4bc --- /dev/null +++ b/docs/intro/case-study.rst @@ -0,0 +1,107 @@ +Fallstudie: Vorhersage von Immobilienpreisen +============================================ + +Ziel dieser Fallstudie +---------------------- + +- Anwendung der erlernten Methoden zur Vorhersage von Immobilienpreisen. + +- Verwendung eines realen Datensatzes zur Modellierung. + +- Umsetzung in Python mit `scikit-learn`. + +Schritte zur Umsetzung +---------------------- + +1. **Daten laden und verstehen** + + * Nutzung eines offenen Datensatzes (:abbr:`z.B. (zum Beispiel)` `Boston + Housing Dataset` oder `Kaggle Immobilienpreise`). + * Untersuchung der Datenverteilung, Korrelationen und möglicher Ausreißer. + +2. **Datenvorbereitung** + + * Umwandlung kategorischer Merkmale (One-Hot-Encoding). + * Normalisierung und Skalierung numerischer Merkmale. + * Aufteilung in Trainings- und Testdaten. + +3. **Modelltraining mit Lineare Regression** + + * Trainieren eines **Linearen Regressionsmodells** mit ``scikit-learn``. + * Verwendung von Metriken zur Bewertung der Modellgüte (:abbr:`z.B. (zum + Beispiel)` MSE, R²). + +4. **Modellbewertung und Interpretation** + + * Bewertung der Modellperformance auf dem Testdatensatz. + * Interpretation der wichtigsten Einflussgrößen. + +Code-Beispiel +------------- + +.. code-block:: python + :linenos: + + import pandas as pd + import numpy as np + import matplotlib.pyplot as plt + from sklearn.model_selection import train_test_split + from sklearn.preprocessing import StandardScaler, OneHotEncoder + from sklearn.linear_model import LinearRegression + from sklearn.metrics import mean_squared_error, r2_score + + # Beispieldatensatz laden (Boston Housing Dataset) + from sklearn.datasets import load_boston + + boston = load_boston() + df = pd.DataFrame(boston.data, columns=boston.feature_names) + df["PRICE"] = boston.target + + # Aufteilung in Merkmale (X) und Zielvariable (y) + X = df.drop("PRICE", axis=1) + y = df["PRICE"] + + # Aufteilung in Trainings- und Testsets + X_train, X_test, y_train, y_test = train_test_split( + X, y, test_size=0.2, random_state=42 + ) + + # Feature Scaling + scaler = StandardScaler() + X_train_scaled = scaler.fit_transform(X_train) + X_test_scaled = scaler.transform(X_test) + + # Lineare Regression trainieren + model = LinearRegression() + model.fit(X_train_scaled, y_train) + + # Vorhersagen treffen + y_pred = model.predict(X_test_scaled) + + # Modellbewertung + mse = mean_squared_error(y_test, y_pred) + r2 = r2_score(y_test, y_pred) + print(f"Mittlerer quadratischer Fehler (MSE): {mse}") + print(f"Bestimmtheitsmaß (R²): {r2}") + + # Visualisierung der Vorhersagen + plt.scatter(y_test, y_pred, alpha=0.7) + plt.xlabel("Tatsächliche Preise") + plt.ylabel("Vorhergesagte Preise") + plt.title("Tatsächliche vs. Vorhergesagte Immobilienpreise") + plt.show() + +Zeilen 12–14 + **Datensatz laden:** Wir verwenden das `Boston Housing Dataset`, das + verschiedene Merkmale von Häusern enthält. +Zeilen 26–28 + **Datenvorverarbeitung:** Skalierung der numerischen Variablen zur besseren + Modellleistung. +Zeilen 31–32 + **Modelltraining:** Wir verwenden eine einfache lineare Regression. +Zeilen 38–41 + **Modellbewertung:** Berechnung des mittleren quadratischen Fehlers (MSE) + und des Bestimmtheitsmaßes (R²). +Zeilen 44–48 + **Visualisierung:** Darstellung der tatsächlichen vs. vorhergesagten Werte + zur Überprüfung der Modellgüte. diff --git a/docs/intro/categories.rst b/docs/intro/categories.rst new file mode 100644 index 0000000..e6bd7f4 --- /dev/null +++ b/docs/intro/categories.rst @@ -0,0 +1,249 @@ +Kategorien von Aufgaben +======================= + +Maschinelles Lernen kann für verschiedene **Aufgabentypen** eingesetzt werden, +abhängig davon, ob das Ziel eine **Vorhersage, Gruppierung oder +Entscheidungsoptimierung** ist. In diesem Kapitel werden die vier Hauptarten von +ML-Aufgaben vorgestellt: :ref:`regression`, :ref:`classification`, +:ref:`clustering` und :ref:`autonomous`. + +.. _regression: + +Regression +---------- + +* Sie ist eine Technik zur **Vorhersage von kontinuierlichen Werten** auf Basis + von Eingabedaten. +* Sie wird genutzt, wenn das Ziel eine numerische Größe ist, :abbr:`z.B. + (zum Beispiel)` Preis, Temperatur oder Umsatzprognose. + +Beispiele +~~~~~~~~~ + +Immobilienpreise vorhersagen + Basierend auf Faktoren wie Größe, Lage und Baujahr. +Wettervorhersagen + Prognose der Temperatur für den nächsten Tag. +Finanzmarktanalysen + Vorhersage von Aktienkursen oder Umsatzentwicklungen. + +Typische Algorithmen +~~~~~~~~~~~~~~~~~~~~ + +* Lineare Regression +* Multiple Regression +* Polynomial Regression +* Neuronale Netze für kontinuierliche Vorhersagen + +.. _classification: + +Klassifikation +-------------- + +Definition +~~~~~~~~~~ + +* Klassifikation ist eine Methode zur **Zuordnung von Datenpunkten zu diskreten + Kategorien**. +* Das Ziel ist, eine Entscheidung über eine vordefinierte Anzahl von Klassen zu + treffen. + +Beispiele +~~~~~~~~~ + +E-Mail-Spam-Erkennung + Klassifizierung von E-Mails als "Spam" oder "Nicht-Spam". +Diagnosen in der Medizin + Erkennung von Krankheiten anhand von Symptomen. +Bilderkennung + Identifizierung von Objekten auf Fotos (Hund vs. Katze). + +Typische Algorithmen +~~~~~~~~~~~~~~~~~~~~ + +* Entscheidungsbäume +* Random Forest +* Support Vector Machines (SVM) +* Neuronale Netze für Bilderkennung (CNNs) + +.. _clustering: + +Clustering +---------- + +Definition +~~~~~~~~~~ + +* Clustering ist eine Technik des **unüberwachten Lernens**, bei der Daten ohne + vorherige Labels in Gruppen eingeteilt werden. +* Das Ziel ist es, Muster oder Strukturen in den Daten zu erkennen. + +Beispiele +~~~~~~~~~ + +Kundensegmentierung + Kunden anhand ihres Kaufverhaltens in Gruppen einteilen. +Genanalyse + Identifikation von ähnlichen genetischen Mustern. +Betrugserkennung + Auffinden verdächtiger Transaktionsmuster. + +Typische Algorithmen +~~~~~~~~~~~~~~~~~~~~ + +* K-Means-Clustering +* DBSCAN (Density-Based Spatial Clustering) +* Hierarchisches Clustering + +.. _autonomous: + +Autonome Aufgaben +----------------- + +Definition +~~~~~~~~~~ + +* Autonome Aufgaben erfordern eine Kombination aus **überwachtem, unüberwachtem + und bestärkendem Lernen**, um **eigenständig Entscheidungen** zu treffen und + sich an neue Situationen anzupassen. +* Diese Aufgaben sind besonders anspruchsvoll, da sie oft + **Echtzeit-Entscheidungen** erfordern. + +Beispiele +~~~~~~~~~ + +Selbstfahrende Autos + Kombination aus Bilderkennung, Reinforcement Learning und Sensorfusion zur + sicheren Navigation. +Industrielle Robotik + Roboter, die sich an neue Umgebungen anpassen und Produktionslinien + optimieren. +Dynamische Preisgestaltung + Systeme, die in Echtzeit Preisentscheidungen treffen, basierend auf Angebot + und Nachfrage. + +Technologien +~~~~~~~~~~~~ + +Reinforcement Learning (RL): + Algorithmen lernen durch Belohnungssysteme. +Neuronale Netze + Deep Learning wird genutzt, um Sensordaten zu verarbeiten. +Edge Computing + Echtzeit-Datenverarbeitung für schnelle Reaktionen. + +.. _generative: + +Generative Aufgaben +------------------- + +Definition +~~~~~~~~~~ + +* Generative KI zielt darauf ab, neue Daten zu erzeugen, die den Muster der + Trainingsdaten folgen, aber nicht identisch mit ihnen sind. +* Diese Technologie basiert auf Modellen, die durch unüberwachtes oder + selbstüberwachtes Lernen trainiert werden und dann neue Inhalte generieren. + +Beispiele +~~~~~~~~~ + +* Bildgenerierung: + + * Erstellung neuer Bilder auf Basis bestehender Stile (:abbr:`z.B. (zum + Beispiel)` DeepDream, DALL·E). + * Erstellung realistischer Gesichter mit GANs (:abbr:`z.B. (zum Beispiel)` + „ThisPersonDoesNotExist.com“). + +* Textgenerierung: + + * Chatbots wie ChatGPT, die menschenähnliche Texte generieren. + * Automatische Textzusammenfassungen oder Artikelgenerierung. + +* Musik und Audio: + + * KI-gestützte Musikkomposition (:abbr:`z.B. (zum Beispiel)` OpenAIs Jukebox). + * Stimmenklonen und Deepfake-Audio. + +* Code-Generierung: + + * KI-Systeme wie GitHub Copilot oder AlphaCode, die Programmiercode + generieren. + +* 3D- und Videogenerierung: + + * Synthese neuer 3D-Modelle für Videospiele oder Animationen. + * KI-generierte Deepfake-Videos. + +Typische Algorithmen +~~~~~~~~~~~~~~~~~~~~ + +* Generative Adversarial Networks (GANs) + + * Lernen zwei konkurrierende Netzwerke: ein „Generator“ und ein + „Diskriminator“. + + * Beispiel: Stiltransfer von Gemälden auf Fotos. + +* Variational Autoencoders (VAEs) + + * Lernen eine kompakte Darstellung der Daten und können daraus neue Instanzen generieren. + +* Transformer-Modelle (:abbr:`z.B. (zum Beispiel)` GPT, BERT, T5) + + * Werden für Text- und Codegenerierung eingesetzt. + +* Diffusionsmodelle (DALL·E, Stable Diffusion) + + * Besonders leistungsfähig für hochwertige Bilderzeugung. + +Zusammenfassung +~~~~~~~~~~~~~~~ + +* Generative KI ist eine eigene Aufgabenkategorie, da sie keine Vorhersage- oder + Gruppierungsaufgabe erfüllt, sondern neue Inhalte erstellt. +* Sie nutzt tiefe neuronale Netze, insbesondere GANs, Transformer-Modelle und + Diffusionsmodelle. +* Generative KI wird zunehmend wichtiger in Bereichen wie Kunst, Design, Code, + Audio und Sprache. + +Vergleich der ML-Aufgabentypen +------------------------------ + +.. list-table:: Vergleich von Regression, Klassifikation, Clustering und autonomen Aufgaben + :header-rows: 1 + + * - Merkmal + - :ref:`regression` + - :ref:`classification` + - :ref:`clustering` + - :ref:`autonomous` + - :ref:`generative` + * - Art der Vorhersage + - Kontinuierlicher Wert + - Diskrete Klassen + - Gruppenbildung ohne Labels + - Eigenständige Entscheidungsfindung + - Erzeugung neuer Daten + * - Beispiele + - Preisprognosen, Finanzanalysen + - Bilderkennung, Spam-Filter + - Kundensegmentierung, Anomalieerkennung + - Selbstfahrende Autos, Industrieroboter + - KI-generierte Bilder, Texte, Musik + * - Typische Algorithmen + - Lineare Regression, neuronale Netze + - Entscheidungsbäume, SVM + - K-Means, DBSCAN + - Reinforcement Learning, Deep Learning + - GANs, VAEs, Transformer + +Fazit +----- + +* Regression, Klassifikation und Clustering gehören zu den klassischen Aufgaben + des maschinellen Lernens. +* Autonome Systeme sind eine anspruchsvolle Anwendung, die verschiedene + ML-Techniken kombiniert. +* Je nach Daten und Zielsetzung kann eine Kombination dieser Methoden sinnvoll + sein. diff --git a/docs/intro/def.rst b/docs/intro/def.rst new file mode 100644 index 0000000..ca00bb0 --- /dev/null +++ b/docs/intro/def.rst @@ -0,0 +1,174 @@ +Definition von Künstlicher Intelligenz +====================================== + +Künstliche Intelligenz (KI) bezeichnet die Fähigkeit eines Computers oder einer +Maschine, menschenähnliche kognitive Funktionen auszuführen. Dazu gehören +Aufgaben wie Lernen, Problemlösung, Mustererkennung und Entscheidungsfindung. +Der Begriff KI wurde erstmals 1956 auf der Dartmouth Conference von John +McCarthy geprägt. Heute umfasst KI eine Vielzahl von Techniken, darunter +maschinelles Lernen, Deep Learning und Expertensysteme. + +Historische Entwicklung der KI +------------------------------ + +Die Entwicklung der KI lässt sich in mehrere Phasen einteilen: + +1950er–1970er: Die Pionierzeit + * Erste Algorithmen zur symbolischen Verarbeitung und regelbasierten Systeme + wurden entwickelt. + * Alan Turings berühmter `Turing-Test + `_ stellte eine frühe Methode + zur Bewertung der Intelligenz einer Maschine vor. + * In den 1960er Jahren entstanden erste Expertensysteme, die regelbasierte + Entscheidungsfindung ermöglichten. + +1980er–1990er: Erste Fortschritte und Rückschläge** + * KI erlebte durch das Aufkommen von neuronalen Netzen und maschinellem + Lernen einen Aufschwung. + * Aufgrund hoher Rechenkosten und begrenzter Datenverfügbarkeit flachte das + Interesse an KI in den späten 1980er Jahren ab. + +2000er–heute: Der Durchbruch dank Big Data und Deep Learning + * Fortschritte in Rechenleistung, Cloud Computing und die Verfügbarkeit + großer Datenmengen haben KI auf ein neues Niveau gehoben. + * Tiefe neuronale Netze ermöglichen Fortschritte in Spracherkennung, + Bildverarbeitung und autonomem Fahren. + +Unterschiedliche Formen der Künstlichen Intelligenz +--------------------------------------------------- + +KI kann auf verschiedene Art und Weisen in verschiedene Kategorien unterteilt +werden. Eine Möglichkeit ist die Kategorisierung nach ihrem Funktionsumfang und +ihren Anwendungsmöglichkeiten, wie von Prof. Arend Hintze definiert, Forscher +und Professor der Integrative Biology an der Michigan State University: + +#. Reaktive KI (Reactive AI) + + Die erste Stufe der KI kann als *Reaktive KI* bezeichent und als ein Ur-Typ + der KI angesehen werden. Sie hat weder *Gedächtnis* noch *Lernfähigkeit* und + kann nur auf Eingaben reagieren für genau die eine Aufgabe, wofür sie + programmiert wurde. Es ist nicht in der Lage, zukünftige Ergebnisse + vorherzusagen, wenn es nicht mit den entsprechenden Informationen gefüttert + wurde. + + **Beispiel:** Schachcomputer wie IBM Deep Blue, der auf Basis aktueller Züge + die bestmöglichen Entscheidungen trifft. + +#. Begrenzte Gedächtnis-KI (Limited Memory AI) + + Die zweite Stufe der KI kann Informationen aus vergangenen Interaktionen + nutzen, um zukünftige Entscheidungen zu verbessern. + + **Beispiel:** Selbstfahrende Autos, die Sensordaten aus der Umgebung + speichern und auf Basis vorheriger Erfahrungen optimieren. + +Die erste und zweite Stufen der KI sind bereits teilweise im Einsatz, mit +unterschiedlichen technischen Reifegrad in diversen Domänen. + +3. Theorie des Geistes-KI (Theory of Mind AI) – noch in der Forschung + + Im Gegensatz zu den ersten beiden Formen der KI hätten die 3. und die 4. Form + der KI ein eigenes Bewusstsein und Verständnis für sich selbst. Intelligente + Systeme der Stufe 3 könnten menschliche Emotionen wahrnehmen und verstehen, + sowie auch deren eigenes Verhalten entsprechend anpassen. + + **Ziel:** KI mit Verständnis für Emotionen und sozialen Kontext. + + Potenzielles Beispiel: Fortgeschrittene humanoide Roboter mit sozialem + Bewusstsein. + +#. Selbstbewusste KI (Self-Aware AI) – hypothetisch + + Diese Stufe der KI hätte ein eigenes Bewusstsein und ein Verständnis für sich + selbst und käme somit dem menschlichen Bewusstsein (der menschlichen + Intelligenz) am nächsten. + + Ob und wann die Entwicklung der KI jemals diese Stufe erreichen wird, ist + noch viel umstritten – bisher wurde es nur in Science-Fiction Werken + dargestellt. + +.. seealso: + * `Understanding the four types of AI, from reactive robots to self-aware + beings + `_ + * `Der Turing-Test + `_ + +Prädiktive vs. Generative KI +---------------------------- + +Die aktuell in der Industrie gängigen Formen der KI lassen sind insbesondere in +**prädiktive KI** und **generative KI** unterscheiden: + +#. Prädiktive KI + + * Diese KI nutzt historische Daten, um **zukünftige Ereignisse + vorherzusagen**. + * Verwendete Algorithmen: Regression, Entscheidungsbäume, neuronale Netze. + + Beispiele: + + * Vorhersage von Aktienkursen oder Wetterverhältnissen. + * Diagnose von Krankheiten basierend auf medizinischen Daten. + * Betrugserkennung im Finanzsektor. + +2. Generative KI + + * Diese KI erzeugt **neue Inhalte**, die zuvor nicht explizit in den + Trainingsdaten enthalten waren. + * Verwendete Modelle: Generative Adversarial Networks (GANs), + Transformer-Modelle (:abbr:`z.B. (zum Beispiel)` GPT, DALL·E). + * Beispiele: + + * Erstellung von Bildern, Musik oder Texten (:abbr:`z.B. (zum Beispiel)` + KI-generierte Kunst, Chatbots). + * Übersetzung und Zusammenfassung von Texten. + * Deepfake-Technologien. + +Bedeutung dieser Unterscheidung +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +* Prädiktive KI wird hauptsächlich in **Analytik und Entscheidungsfindung** + eingesetzt, während generative KI für **Kreativität und Content-Erzeugung** + genutzt wird. +* In der Praxis werden oft **beide Ansätze kombiniert**, :abbr:`z.B. (zum + Beispiel)` wenn eine prädiktive KI Markttrends analysiert und eine generative + KI dazu passende Werbeinhalte erstellt. + +Anwendungsfälle von KI +---------------------- + +KI findet heute in zahlreichen Bereichen Anwendung, darunter: + +Gesundheitswesen + Diagnosestellung durch KI-gestützte Bildverarbeitung, + Medikamentenentwicklung. +Finanzwesen + Automatische Betrugserkennung, algorithmischer Handel. +Industrie + Automatisierung von Prozessen, Qualitätskontrolle in der Fertigung. +Autonome Systeme + Selbstfahrende Autos, Drohnen, Robotersteuerung. +Sprachverarbeitung + Sprachassistenten wie Siri, Alexa oder Google Assistant. +Kreative Anwendungen + Generierung von Texten, Musik und Kunst durch KI. + +Ethische Fragestellungen in der KI +---------------------------------- + +Mit der rasanten Entwicklung der KI gehen auch bedeutende ethische Fragen +einher: + +Bias und Diskriminierung + KI-Modelle können bestehende Vorurteile aus Trainingsdaten übernehmen. +Arbeitsplatzverdrängung + Automatisierung kann menschliche Arbeitsplätze gefährden. +Transparenz und Erklärbarkeit + Viele KI-Modelle, insbesondere Deep Learning, sind schwer zu interpretieren. +Verantwortung und Haftung + Wer ist verantwortlich, wenn eine KI fehlerhafte oder schädliche + Entscheidungen trifft? +Datenschutz + KI-Anwendungen erfordern oft große Datenmengen, was Datenschutzprobleme + aufwirft. diff --git a/docs/intro/evaluation.rst b/docs/intro/evaluation.rst new file mode 100644 index 0000000..fed9770 --- /dev/null +++ b/docs/intro/evaluation.rst @@ -0,0 +1,120 @@ +Evaluation von ML-Modellen +========================== + +Warum ist die Modellbewertung wichtig? +-------------------------------------- + +* Die Evaluation von ML-Modellen stellt sicher, dass das Modell zuverlässig und + generalisierbar ist. +* Ein gut evaluiertes Modell verhindert Overfitting und hilft, die besten + Algorithmen und Parameter auszuwählen. + +Wichtige Metriken für Klassifikationsprobleme +--------------------------------------------- + +Accuracy (Genauigkeit) +~~~~~~~~~~~~~~~~~~~~~~ + +Prozentsatz der korrekten Vorhersagen: + +.. math:: + \text{Accuracy} = \frac{\text{Anzahl der korrekten Vorhersagen}}{\text{Gesamtanzahl der Vorhersagen}} + +.. warning: + Accuracy hat eine Einschränkung bei (stark) unausgewogenen Datensätzen, da + sie hier irreführend sein kann. + +Precision (Präzision) +~~~~~~~~~~~~~~~~~~~~~ + +Precision ist der Anteil der tatsächlich positiven Vorhersagen unter allen als +positiv klassifizierten Instanzen: + +.. math:: + \text{Precision} = \frac{TP}{TP + FP} + +Precision wird vor allem bevorzugt, wenn falsch-positive Fehler besonders +kritisch sind (:abbr:`z.B. (zum Beispiel)` Spam-Erkennung). + +Recall (Sensitivität) +~~~~~~~~~~~~~~~~~~~~~ + +Recall ist der Anteil der korrekten positiven Vorhersagen unter allen +tatsächlichen positiven Fällen: + +.. math:: + \text{Recall} = \frac{TP}{TP + FN} + +Recall ist eine wichtige Metrik, wenn es entscheidend ist, möglichst alle +positiven Fälle zu erfassen (:abbr:`z.B. (zum Beispiel)` Krebsdiagnosen). + +F1-Score +~~~~~~~~ + +Der F1-Score ist das harmonisches Mittel von Präzision und Recall, um ein +ausgewogenes Maß zu erhalten: + +.. math:: + \text{F1-Score} = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} + +Der F1-Score ist besonders nützlich bei unausgewogenen Datensätzen (engl.: +*unbiased data sets*). + +Wichtige Metriken für Regressionsprobleme +----------------------------------------- + +Mean Squared Error, MSE (Mittlerer quadratischer Fehler) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Der MSE berechnet den Durchschnitt der quadrierten Fehler zwischen +vorhergesagten und tatsächlichen Werten: + +.. math:: + \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 + +Somit bestraft der MSE große Fehler stärker als kleine Fehler. + +Mean Absolute Error, MAE (Mittlerer absoluter Fehler) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Der MAE berechnet den Durchschnitt der absoluten Differenzen zwischen +vorhergesagten und tatsächlichen Werten: + +.. math:: + \text{MAE} = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i| + +R²-Koeffizient (Bestimmtheitsmaß) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +* Zeigt, wie gut das Modell die Varianz der Zielvariable erklärt. +* Wertebereich: 0 (keine Erklärung) bis 1 (perfekte Erklärung). + +Praktische Anwendung: Evaluierung eines Modells in Python +--------------------------------------------------------- + +Ein Beispiel zur Berechnung dieser Metriken mit `scikit-learn`: + +.. code-block:: python + :linenos: + + from sklearn.metrics import ( + accuracy_score, + precision_score, + recall_score, + f1_score, + ) + + # Beispiel: Tatsächliche Labels und Vorhersagen + true_labels = [1, 0, 1, 1, 0, 1, 0, 0, 1, 0] + predicted_labels = [1, 0, 1, 0, 0, 1, 0, 1, 1, 0] + + # Berechnung der Metriken + accuracy = accuracy_score(true_labels, predicted_labels) + precision = precision_score(true_labels, predicted_labels) + recall = recall_score(true_labels, predicted_labels) + f1 = f1_score(true_labels, predicted_labels) + + print( + f"Accuracy: {accuracy}, Precision: {precision}, Recall: {recall}, F1-Score: {f1}" + ) + return (accuracy, precision, recall, f1) diff --git a/docs/intro/extra.rst b/docs/intro/extra.rst new file mode 100644 index 0000000..da94dab --- /dev/null +++ b/docs/intro/extra.rst @@ -0,0 +1,9 @@ +Zusätzliche Materialien +======================= + +- Einführung in `Scikit-Learn `_ +- :doc:`Python4DataScience:workspace/numpy/index`- und + :doc:`Python4DataScience:workspace/pandas/index`-Dokumentation für + Datenverarbeitung +- :doc:`PyViz:matplotlib/index` für Visualisierung +- TensorFlow/Keras für Deep Learning (für spätere Module) diff --git a/docs/intro/index.rst b/docs/intro/index.rst new file mode 100644 index 0000000..548db31 --- /dev/null +++ b/docs/intro/index.rst @@ -0,0 +1,49 @@ +Einführung, Überwachtes Lernen und Regression +============================================= + +Die Schulung wird mit den grundlegenden Konzepten der :abbr:`KI (Künstliche +Intelligenz)` und :abbr:`ML (Maschinelles Lernen)` eingeleitet und anhand +praktischer Implementierungen veranschaulicht. + +Gliederung +---------- + +.. list-table:: Schulungsstruktur für KI-Grundlagen: Tag 1 + :header-rows: 1 + + * - Kapitel + - Inhalte + * - Einführung in Künstliche Intelligenz + - Definition und Historie der KI, Unterschiedliche Formen der KI, + Anwendungsfälle, ethische Fragestellungen + * - Maschinelles Lernen: Konzepte und Typen + - Begriffe: ML, Deep Learning, Reinforcement Learning; Beispiele für reale + Anwendungen + * - Überwachtes vs. Unüberwachtes Lernen + - Klassifikation vs. Regression, Clustering-Methoden + * - Trainingsdaten und Modellierung + - Datenqualität, Feature Engineering, Modelltraining + * - Evaluation von ML-Modellen + - Metriken: Accuracy (Genauigkeit), Precision (Präzision), Recall, + F1-Score, MSE + * - Praktische Einführung: Lineare Regression + - Implementierung eines ML-Modells mit scikit-learn + * - Fallstudie: Vorhersage von Immobilienpreisen + - Hands-on Beispiel mit einem realen Datensatz + * - Diskussion und Fragen + - Diskussion über Anwendungen von KI in verschiedenen Bereichen + +.. toctree:: + :hidden: + :titlesonly: + :maxdepth: 0 + + def + ml-concepts + categories + training-modelling + evaluation + linear-regression + case-study + reflection + extra diff --git a/docs/intro/linear-regression.rst b/docs/intro/linear-regression.rst new file mode 100644 index 0000000..0caef4f --- /dev/null +++ b/docs/intro/linear-regression.rst @@ -0,0 +1,100 @@ +Praktische Einführung: Lineare Regression +========================================= + +Was ist Lineare Regression? +--------------------------- + +- Die **Lineare Regression** ist eines der grundlegendsten Modelle des maschinellen Lernens. + +- Sie wird verwendet, um eine abhängige Variable (Zielvariable) anhand einer oder mehrerer unabhängiger Variablen vorherzusagen. + +- Die Gleichung einer einfachen linearen Regression lautet: + + .. math:: + y = wX + b + + wobei: + + - `y` die Zielvariable ist, + + - `X` die unabhängige Variable, + + - `w` die Steigung der Geraden (Gewicht) und + + - `b` der Achsenabschnitt (Bias). + +Beispiel mit scikit-learn +------------------------- + +Schritte zur Implementierung eines ML-Modells +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +1. **Daten laden und vorbereiten** + + - Import von Bibliotheken und Laden eines Datensatzes. + + - Aufteilung der Daten in Trainings- und Testsets. + +2. **Modell erstellen und trainieren** + + - Ein Lineares Regressionsmodell aus `scikit-learn` erstellen und trainieren. + +3. **Modell evaluieren** + + - Vorhersagen treffen und mit Metriken wie dem mittleren quadratischen Fehler (MSE) bewerten. + +Code +~~~~ + +.. code-block:: python + :linenos: + + import numpy as np + import matplotlib.pyplot as plt + from sklearn.model_selection import train_test_split + from sklearn.linear_model import LinearRegression + from sklearn.metrics import mean_squared_error + + # Beispiel-Datensatz erstellen + np.random.seed(42) + X = 2 * np.random.rand(100, 1) + y = 4 + 3 * X + np.random.randn(100, 1) + + # Aufteilung in Trainings- und Testdaten + X_train, X_test, y_train, y_test = train_test_split( + X, y, test_size=0.2, random_state=42 + ) + + # Modell erstellen und trainieren + model = LinearRegression() + model.fit(X_train, y_train) + + # Vorhersagen treffen + y_pred = model.predict(X_test) + + # Modellbewertung + mse = mean_squared_error(y_test, y_pred) + print(f"Mittlerer quadratischer Fehler (MSE): {mse}") + + # Visualisierung + plt.scatter(X_test, y_test, color="blue", label="Tatsächliche Werte") + plt.plot(X_test, y_pred, color="red", linewidth=2, label="Vorhersagen") + plt.legend() + plt.xlabel("X") + plt.ylabel("y") + plt.title("Lineare Regression mit scikit-learn") + plt.show() + +Zeilen 8–10 + Wir generieren synthetische Daten mit einer linearen Beziehung und fügen + zufällige Schwankungen hinzu. +Zeilen 13–15 + Wir teilen die Daten in **Trainings- und Testsets**, um eine objektive + Modellbewertung zu ermöglichen. +Zeilen 18–19 + Mit `LinearRegression().fit()` trainieren wir unser Modell. +Zeilen 25–26 + Wir verwenden `mean_squared_error()`, um die Modellgenauigkeit zu messen. +Zeilen 29–35 + Schließlich visualisieren wir die tatsächlichen und vorhergesagten Werte, um + die Modellleistung zu interpretieren. diff --git a/docs/intro/ml-concepts.rst b/docs/intro/ml-concepts.rst new file mode 100644 index 0000000..8b52735 --- /dev/null +++ b/docs/intro/ml-concepts.rst @@ -0,0 +1,291 @@ +Maschinelles Lernen (ML): Konzepte und Typen +============================================ + +.. note:: + **TODO: MIT CODE BEISPIEL!** + https://www.python4data.science/de/latest/productive/dvc/dag.html + +Definition und Konzepte des Maschinellen Lernens (ML) +----------------------------------------------------- + +Maschinelles Lernen (Machine Learning, ML) ist ein Teilgebiet der Künstlichen +Intelligenz, das Computern ermöglicht, aus Daten zu lernen, anstatt explizit +programmiert zu werden. Es gibt drei Hauptarten des ML: + +Überwachtes Lernen (Supervised Learning) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Beim **überwachten Lernen** werden Modelle mit **gelabelten Daten** trainiert. + +Das bedeutet, dass für jeden Eingabedatensatz ein bekanntes **Ziel** existiert. + +Das Ziel des Modells ist es, eine Funktion zu lernen, die den Zusammenhang +zwischen Eingaben und Ausgaben erfasst. + +Überwachtes Lernen kann sowohl für Regression als auch für Klassifikation +genutzt werden. + +Beispiele hierfür sind: + +Klassifikation + Vorhersage diskreter Kategorien (:abbr:`z.B. (zum Beispiel)` Spam-Filter, + Bilderkennung von Hunden und Katzen). +Regression + Vorhersage kontinuierlicher Werte (:abbr:`z.B. (zum Beispiel)` + Hauspreisvorhersage anhand der Wohnfläche). + +Theoretische Konzepte des überwachten Lernens +::::::::::::::::::::::::::::::::::::::::::::: + +Trainingsprozess +................ + +* Das Modell wird mit einem Trainingsdatensatz trainiert, in dem **Eingaben + (Features)** und die zugehörigen **Zielwerte (Labels)** bekannt sind. +* Die Lernfunktion (oft als **Hypothesenfunktion** bezeichnet) wird durch das + Training optimiert. + +Modellbewertung +............... + +* Das trainierte Modell wird anhand neuer Daten getestet, um sicherzustellen, + dass es generalisiert und nicht nur die Trainingsdaten auswendig gelernt hat. +* Typische Metriken: Genauigkeit, Präzision, Recall und F1-Score, Mean Squared + Error (MSE). + +Unüberwachtes Lernen (Unsupervised Learning) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Beim **unüberwachten Lernen** gibt es **keine gelabelten Daten**. + +Das Modell versucht, Muster oder Strukturen in den Daten zu entdecken. + +Dies eignet sich besonders für **Explorative Datenanalyse**, bei der keine +festen Kategorien bekannt sind. + +Unüberwachtes Lernen kann direkt für Klassifikationsprobleme genutzt werden; +aber nur indirekt für Regressionsprobleme, :abbr:`z.B. (zum Beispiel)` als +Vorverarbeitungsschritt oder zur Merkmalextraktion, um Regression effektiver zu +machen. + +Typische Anwendungen sind: + +Clustering + Ziel: Datenpunkte in Gruppen einteilen, basierend auf Ähnlichkeit. + + Beispiele: + + * Kundensegmentierung für personalisierte Werbung. + * Erkennung von ähnlichen Produkten in Online-Shops. + * Gruppierung von genetischen Mustern in der Biologie. + * Betrugserkennung durch Anomalie-Analyse in Banktransaktionen. + +Dimensionsreduktion + Ziel: Komplexe Daten in eine einfachere Form umwandeln. + + Beispiele: + + * Hauptkomponentenanalyse (PCA) zur Reduzierung hochdimensionaler Daten. + * Visualisierung von großen Datenmengen. + * Feature-Auswahl für effizientere Modellberechnungen. + +Theoretische Konzepte des Unüberwachten Lernens +::::::::::::::::::::::::::::::::::::::::::::::: + + +Clustering-Algorithmen +...................... + +K-Means + teilt Daten in eine vordefinierte Anzahl von Clustern ein. +Hierarchisches Clustering + erstellt eine baumartige Struktur zur Clusterbildung. +DBSCAN + erkennt Cluster basierend auf der Dichte der Datenpunkte. + +Dimensionsreduktionstechniken +............................. + +PCA (Principal Component Analysis) + extrahiert die wichtigsten Variablen aus großen Datensätzen. + +t-SNE (t-Distributed Stochastic Neighbor Embedding) + visualisiert komplexe Datensätze in 2D oder 3D. + +Vergleich: Überwachtes vs. Unüberwachtes Lernen +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. list-table:: Vergleich von Überwachtem und Unüberwachtem Lernen + :header-rows: 1 + + * - Merkmal + - Überwachtes Lernen + - Unüberwachtes Lernen + * - Datenverfügbarkeit + - Gelabelte Daten notwendig + - Keine Labels erforderlich + * - Ziel + - Vorhersage einer bekannten Zielvariable + - Identifikation von Mustern oder Strukturen + * - Typische Algorithmen + - Lineare Regression, Entscheidungsbäume, Neuronale Netze + - K-Means, DBSCAN, PCA + * - Anwendungsbereiche + - Klassifikation, Regression + - Clustering, Dimensionsreduktion + +Reinforcement Learning (Bestärkendes Lernen, RL) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. seealso:: + * :doc:`../day3` + +Definition +:::::::::: + +Beim **Reinforcement Learning** (Bestärkenden Lernen, RL) lernt ein Agent durch +**Interaktion mit einer Umgebung**, wobei er **Belohnungen oder Bestrafungen** +erhält. + +Das Ziel des RL ist es, eine **Optimierungsstrategie** zu entwickeln, die +langfristig die höchste Gesamtbelohnung erzielt. + +Es handelt sich um eine Form des **Lernens durch Versuch und Irrtum**, ähnlich +wie ein Mensch, der durch Erfahrung lernt. + +Grundprinzipien von Reinforcement Learning +:::::::::::::::::::::::::::::::::::::::::: + +Agent + Das KI-System, das lernt (:abbr:`z.B. (zum Beispiel)` ein Roboter, ein + autonomes Auto, ein Schachprogramm). +Umgebung (Environment) + Alles außerhalb des Agents, mit dem er interagiert. +Zustand (State) + Eine Momentaufnahme der Umgebung, die den Agenten beeinflusst. +Aktion (Action) + Eine Entscheidung, die der Agent in einem bestimmten Zustand trifft. +Belohnung (Reward) + Eine numerische Bewertung der Aktion, die dem Agenten signalisiert, ob er + sich der optimalen Lösung nähert oder nicht. +Richtlinien (Policy) + Eine Strategie, die den besten nächsten Schritt für den Agenten bestimmt. +Qualitäts-Wert (Q-Value) + Eine Bewertung, wie gut eine bestimmte Aktion in einem Zustand langfristig + ist. + +Beispiele für RL-Anwendungen +:::::::::::::::::::::::::::: + +Spielstrategien + AlphaGo von DeepMind besiegte menschliche Meister im Go-Spiel durch RL. +Autonome Fahrzeuge + Lernen, sicher zu fahren, indem sie Belohnungen für sichere Entscheidungen + erhalten. +Robotik + Industrieroboter optimieren ihre Bewegungen, um Aufgaben effizienter zu + erledigen. +Algorithmischer Handel + KI-Agenten lernen, wann sie Aktien kaufen oder verkaufen sollen. + +Wichtige RL-Algorithmen +::::::::::::::::::::::: + +Q-Learning + Eine tabellenbasierte Methode zur Speicherung der besten Aktionen. +Deep Q-Networks (DQN) + Eine Erweiterung von Q-Learning unter Verwendung von neuronalen Netzen. +Policy-Gradient-Verfahren + Statt Werte zu lernen, lernt das Modell direkt eine optimale Strategie. +Proximal Policy Optimization (PPO) + Häufig in modernen RL-Anwendungen eingesetzt (z. B. bei OpenAI Gym). + +Herausforderungen im RL +::::::::::::::::::::::: + +Exploration vs. Exploitation + Ein Agent muss entscheiden, ob er eine **neue Strategie** testet oder eine + **bereits bekannte, aber möglicherweise nicht optimale** Strategie nutzt. +Belohnungsdesign + Ein schlecht definierter Belohnungsmechanismus kann dazu führen, dass das + Modell unerwartete oder unerwünschte Strategien lernt. +Rechenaufwand + RL benötigt oft viele Trainingsdurchläufe und Rechenleistung. + +Deep Learning (DL) als spezialisierte Form des ML +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Definition +:::::::::: + +Deep Learning (DL) ist ein Teilgebiet des maschinellen Lernens, das auf +**künstlichen neuronalen Netzen (KNNs)** basiert. + +Es verwendet **mehrere Schichten von Neuronen** (daher der Begriff „Deep“), um +hochkomplexe Muster in Daten zu lernen. + +Deep Learning ist besonders leistungsfähig bei **Bildverarbeitung, +Spracherkennung und natürlicher Sprachverarbeitung (NLP).** + +Aufbau eines neuronalen Netzes +:::::::::::::::::::::::::::::: + +Input Layer + Nimmt Daten auf (:abbr:`z.B. (zum Beispiel)` Pixelwerte eines Bildes). +Verborgene Schichten (Hidden Layers) + Extrahieren Merkmale und erkennen Muster. +Ausgangsschicht (Output Layer) + Gibt das Ergebnis der Berechnung aus (:abbr:`z.B. (zum Beispiel)` + Klassifizierung in „Hund“ oder „Katze“). + +Arten von neuronalen Netzwerken +::::::::::::::::::::::::::::::: + +Feedforward Neural Networks (FNN) + Einfachste Form, bei der Informationen nur in eine Richtung fließen. +Convolutional Neural Networks (CNN) + Besonders geeignet für **Bildverarbeitung** (:abbr:`z.B. (zum Beispiel)` + Gesichtserkennung, medizinische Bilddiagnostik). +Recurrent Neural Networks (RNN) + Nutzen vergangene Informationen zur Verarbeitung von **sequenziellen Daten** + (:abbr:`z.B. (zum Beispiel)` Sprachverarbeitung, Zeitreihenanalyse). +Transformer-Modelle + Revolutionierten die **Natürliche Sprachverarbeitung (NLP)** (:abbr:`z.B. + (zum Beispiel)` GPT-Modelle, BERT, T5). + +Beispiele für Anwendungen von Deep Learning +::::::::::::::::::::::::::::::::::::::::::: + +Bilderkennung:** Automatische Erkennung von Objekten in Bildern. + +Sprachverarbeitung (NLP) + Chatbots, automatische Übersetzungen (Google Translate, ChatGPT). +Autonome Systeme + Steuerung von selbstfahrenden Autos und Robotern. +Medizinische Diagnosen + Krebsfrüherkennung in MRT-Scans mit neuronalen Netzen. + +Herausforderungen im Deep Learning +:::::::::::::::::::::::::::::::::: + +Erklärbarkeit + DL-Modelle sind oft **Black Boxes**, deren Entscheidungen schwer + nachvollziehbar sind. + +Datenbedarf + Sehr große Mengen an **Trainingsdaten** sind notwendig. +Rechenleistung + DL benötigt leistungsfähige GPUs oder TPUs. + +Zukunft von Deep Learning +::::::::::::::::::::::::: + +Edge AI + Deep Learning wird zunehmend auf Edge-Geräten (Smartphones, IoT-Geräte) + ausgeführt. +Hybride Systeme + Kombination von Deep Learning mit Reinforcement Learning für **komplexe + Entscheidungsprozesse**. +Quanten-KI + Erste Ansätze zur Beschleunigung von Deep-Learning-Modellen mit + Quantencomputing. diff --git a/docs/intro/reflection.rst b/docs/intro/reflection.rst new file mode 100644 index 0000000..204e211 --- /dev/null +++ b/docs/intro/reflection.rst @@ -0,0 +1,64 @@ +Diskussion und Fragen +===================== + +Ziel der Diskussion +------------------- + +* Reflexion der erlernten Inhalte und Beantwortung offener Fragen. +* Gemeinsamer Austausch über die praktische Anwendbarkeit von KI in + verschiedenen Branchen. + +Diskussion über Anwendungen von KI in verschiedenen Bereichen +------------------------------------------------------------- + +Gesundheitswesen +~~~~~~~~~~~~~~~~ + +* Einsatz von KI für medizinische Diagnosen (:abbr:`z.B. (zum Beispiel)` + Krebsfrüherkennung mittels Bildverarbeitung). +* Personalisierte Medizin basierend auf Patientendaten. +* Automatisierte Medikamentenentwicklung und klinische Studienoptimierung. + +Finanzwesen +~~~~~~~~~~~ + +* Algorithmischer Handel und automatisierte Investitionsstrategien. +* Betrugserkennung in Echtzeit durch Anomalieerkennung. +* Risikoanalysen für Kreditbewilligungen. + +Industrie und Fertigung +~~~~~~~~~~~~~~~~~~~~~~~ + +* Predictive Maintenance (vorausschauende Wartung von Maschinen). +* Automatisierung in der Fertigung mit KI-gesteuerten Robotern. +* Optimierung von Lieferketten durch intelligente Planungssysteme. + +Mobilität und Transport +~~~~~~~~~~~~~~~~~~~~~~~ + +* Autonome Fahrzeuge und intelligente Verkehrssteuerung. +* KI-gestützte Routenoptimierung für Logistikunternehmen. +* Fahrgastprognosen im öffentlichen Verkehr. + +E-Commerce und Marketing +~~~~~~~~~~~~~~~~~~~~~~~~ + +* Personalisierte Produktempfehlungen (:abbr:`z.B. (zum Beispiel)` Amazon, + Netflix). +* Chatbots für Kundenservice und automatisierte Bestellprozesse. +* Dynamische Preisgestaltung durch KI-Analyse von Markttrends. + +Recht und Verwaltung +~~~~~~~~~~~~~~~~~~~~ + +* Automatisierte Vertragsanalyse und Dokumentenprüfung. +* KI zur Unterstützung juristischer Entscheidungen. +* Öffentliche Verwaltung und KI-gestützte Bürgerdienste. + +Offene Diskussion und Fragen +---------------------------- + +* Welche KI-Technologien haben das größte Potenzial für die Zukunft? +* Welche Herausforderungen und ethischen Bedenken gibt es in den jeweiligen + Bereichen? +* Wie kann KI für nachhaltige Entwicklungen genutzt werden? diff --git a/docs/intro/training-modelling.rst b/docs/intro/training-modelling.rst new file mode 100644 index 0000000..e743be3 --- /dev/null +++ b/docs/intro/training-modelling.rst @@ -0,0 +1,68 @@ +Trainingsdaten und Modellierung +=============================== + +Datenqualität und ihre Bedeutung +-------------------------------- + +* Gute Trainingsdaten sind essenziell für die Leistungsfähigkeit eines Modells. +* Aspekte der Datenqualität: + + Vollständigkeit + Fehlende Werte können Modelle ungenau machen. + Konsistenz + Daten sollten einheitlich und korrekt sein. + Ausreißererkennung + Extreme Werte können Modelle verzerren. + Datenverteilung + Unausgewogene Datensätze (:abbr:`z.B. (zum Beispiel)` ungleich verteilte + Klassen) beeinflussen Modellentscheidungen. + +Feature Engineering +------------------- + +Definition +~~~~~~~~~~ + +Feature Engineering ist die Kunst, relevante Eingangsvariablen für ein Modell zu +erstellen. + +Beispiel +~~~~~~~~ + +`Kohorte `_ + +Typische Techniken +~~~~~~~~~~~~~~~~~~ + +Feature Skalierung + Normalisierung und Standardisierung von Daten (:abbr:`z.B. (zum Beispiel)` + Min-Max-Scaling, Z-Score-Normalisierung). +Feature Selektion + Auswahl der wichtigsten Merkmale zur Reduktion von Overfitting. +Feature Transformation + Anwendung von Logarithmus- oder Polynom-Transformationen zur Verbesserung + der Modellleistung. +One-Hot-Encoding + Umwandlung kategorialer Variablen in numerische Werte. + +Modelltraining und Optimierung +------------------------------ + +- Schritte des Modelltrainings: + + 1. **Datenaufteilung:** Aufteilung in Trainings-, Validierungs- und Testdatensätze. + + 2. **Modellauswahl:** Auswahl eines geeigneten Algorithmus (z. B. Entscheidungsbaum, Random Forest, neuronale Netze). + + 3. **Hyperparameter-Tuning:** Feinabstimmung der Modellparameter zur Optimierung der Leistung (z. B. Grid Search, Random Search). + + 4. **Modellbewertung:** Verwendung von Metriken wie Genauigkeit, F1-Score oder Mean Squared Error zur Bewertung der Vorhersagequalität. + + 5. **Modellbereitstellung:** Einsatz des trainierten Modells in einer produktiven Umgebung. + +Praxisbeispiel: Modelltraining in Python +---------------------------------------- + +- Implementierung eines einfachen ML-Modells mit scikit-learn zur Vorhersage von Hauspreisen. + +- Demonstration von Datenvorbereitung, Feature Engineering und Modelltraining.