From 36a7af3ff4e0c37fefadd60a2b0385c01c42731c Mon Sep 17 00:00:00 2001 From: aaron Date: Tue, 28 Apr 2026 14:49:13 +0200 Subject: [PATCH] feature(notes): add notes from lession 1 --- notes/Notizen_CAS_PML_1.md | 376 +++++++++++++++++++++++++++++++++++++ 1 file changed, 376 insertions(+) create mode 100644 notes/Notizen_CAS_PML_1.md diff --git a/notes/Notizen_CAS_PML_1.md b/notes/Notizen_CAS_PML_1.md new file mode 100644 index 0000000..bcd76ec --- /dev/null +++ b/notes/Notizen_CAS_PML_1.md @@ -0,0 +1,376 @@ +# Notizen Lektion 1 + +>Thema: Einführung Practical Machine Learning +>Datum: 22.04.2026 +>Dozent: Jürgen Vogel + +## Beispiele von ML Applications + +> [!NOTE] Definition +> Tokenization -> Datenpunkte aus Datenmenge extrahieren + +- Sales and customer support + - Binärklassifikation +- Process automation + - Fehlererkennung -> Klassifikationsproblem +- Maintenance (Industrieanlagen) + - Wann Wartung nötig? -> Optimierungsproblem +- Autonomous driving + - Möglichst keine Fussgänger überfahren -> Klassifikationsproblem +- Farming + - Vollautomatisches Pflücken von Unkraut + - Erkennen von Unkraut -> Klassifikationsproblem +- Robotics +- Translation + - Sprache übersetzen in andere Sprache -> Generative KI + - Google Translate + - Deepl + +## Bsp. E-Mail Classification + +> [!NOTE] Definition +> Training Data -> (Feature Engineering) -> Vectorized Data -> (Training) -> ML Algorithm + +- Bsp. automatische Vorsortierung von e-Mail Anfragen von Anfragen beim Kanton + - Umweltdepartement + - Energiedepartement + - Wirtschaftsdepartement +- Training Data + - Diverse Ausgangsdaten / Trainingsdaten + - Müssen vorbereitet werden, das nennt man **Feature Engineering** + - Macht aus Training Data Vectorized Data die vom Modell verwendet werden können + - Schlüsselworterkennung (bspw. Photovoltaik, Energie, Finanzen) + - 0/1-Feature -> Binäres Feature "Ist Schlüsselwort genannt oder nicht?" + - Sobald die Trainsingsdaten in Features umgewandelt wurden + - Müssen sie in eine Datenstruktur abgebildet werden + - ML Algorithmen sind Problemunabhängig (Bild klassifikation oder Email) + - Algorithmus hat Feature Erkennung basierend auf Zahlenwerte + - Input Vektor wird auf Output gemapped + - Mit bestimmter mathematischer Funktion + - Daher kann nicht von KI gesprochen werden + - Eingangsvektor -> Zahlenwerten + - Ausgangswerte -> Ebenfalls Zahlenwerte + - Müssen wieder Umgewandelt werden in Features +- ML Model + - Resultiert aus Training mit ML Algorithmus basierend auf vektorisierten Daten + - Stellt den Zusammenhang zwischen Referenzdaten und Departement her + - Input Layer -> Hidden Layer -> Output Layer + - Ist im Grunde genommen eine **Parameter Optimiertung** + - Lierfert eine Klassifikation als Resultat +- Wie werden Daten überprüft? + - ML Engineer muss überprüfen ob das Modell fehler generiert oder nicht + - Test Data, wo man weiss was das Ergebnis ist + - Daraus wird eine Error Rate bestimmt + - Wichtige Fragestellung: Was eine akzeptable Fehlerquote? + - Iterative Verbesserung + +## Machine Learning + +- Learning + - Die Welt wird beobachtet + - Wissen wird dabei abgeleitet + - Kann faktenbasiertes Wissen sein (auf dem Bild ist eine Person) + - Kann regelbasiertes Wissen sein (Bild zeigt Person, wenn Objekt mit Features XYZ vorhanden) +- Machine Learning + - Informal + - Ist ein Algorithmus welcher Learning automatisiert umsetzt + - Formal + - an Algorithm learns from experience E to solve some tasks T with performance P if P improves with E +- Artificial Intelligence (AI) + - Hat mit machine Learning relativ wenig zu tun + - Systeme die sich wie ein Mensch verhalten + - Wie testet man ob ein System intelligent ist? + - Turing Test + - Systeme die wie ein Mensch denken + - Nachbildung Kognitiver Denkprozesse -> Hirnstrukturen nachbilden + - Nachbildung Logischer Denkprozesse -> Fakten und Regeln verknüpfen + - Problemlösung -> Lösungen aktiv suchen + - Reasoning -> Wissen aus bereits gemachten Erfahrungen ableiten + - Sense and Manipulate -> Mit der Umwelt interagieren und daraus lernen + +## Machine Learning Models + +> [!NOTE] Definition +> an Algorithm learns from experience E to solve some tasks T with performance P if P improves with E + +- Model + - represents the solution to the tasks T + - is learnt by the ML algorithm + - is adapted by the ML algorithm based on E + - can be evaluated with respect to P + - can be stored + - mas be human-readable or not (white box model vs black box) + - white box -> man kann sich die Parameter anschauen (reinschauen) + - man kann das Modell debuggen und Fehler nachvollziehen + - black box -> Neuronale Netze sind immer solche + - können nicht verstanden oder nachvollzogen werden + - warum wurde Person auf Bild nicht erkannt? -> Schwierig nachzuvollziehen + - Für Projekt: Anfangen immer mit einfachem Modell -> um Task und Problematik zu verstehen + - Dann auf anderen Algorithmus umschwenken +- Features + - are the relevant part of the data E for creating the model + - may have to be designed explicitly depending on the ML algorithm + - Dazu gibt es für gewisse Modelle Standardfunktionen + +## Traditional Programming vs Machine Learning + +- Oft ist es wichig zu entscheiden welche Probleme mit welchem Ansatz gelöst werden müssen +- Was sind vor und nachteile von ML? + - Viele Probleme lassen sich auch klassisch gut lösen +- Was sind die unterschiede? + +| Traditional Programming | Machine Learning | +| ------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | +| transform input data into output data via a series of fixed instructions (conditions, loops, etc) | maps input data to output data via an adaptive model | +| white box problem solving | black box problem solving | +| deterministic results | continous result improving | +| easy to test through classical unit testing | unknown environments or situation are not problematic | +| avoid errors introduced by random noise | avoid misconceptions about the real world | + + +## Statistics vs Machine Learning + + +| Statistics | Machine Learning | +| ---------------------------------------------- | ----------------------------------------------------- | +| analyzing and interpreting data | algorithms that improve through training (experience) | +| relationshios between vars and math equiations | statistical and mathematical methods | +| | sacrifices correctness for computability | +| estimation | learning | +| hypothesis testing | classification | +| datapoint | instance/example | +| independent variable | feature | +| dependent variable | class / label | + + +## Different Machine Learning Approaches (1) + +What experience E can be exploited for learning? + +1. Supervised Learning + - the ML algorithm infers the model from sample data E for which the task T has been solved with optimal performance P + - **Algorithmus wird anhand von Beispielen trainiert** + - Problem: Trainingsdaten -> wo bekommt man die her? + - Ist sehr aufwändig und erfordert auch eine hohe Qualität + - Man braucht Daten die gelabled sind zum Trainieren +2. Unsupervised Learning + - The ML algorithm infers the model from data E based on some adaptation to distinctive features of E + - the algorithm does not have access to P + - Keine Referenzlösungen sondern "etwas anderes" -> Features + - Bspw. in Mails wird nach Schlüsselworten gesucht, und in Features umgesetzt + - Andere Schlüsselworte generiern andere Featurevektoren, die dann verglichen werden können + - Wie kann ich dem Algorithmus helfen Datenpunkte auseinanderzuhalten auf Basis von einem feature Vektor + - Man braucht Daten die gelabled sind (Referenzdaten) nur zum Testen + - Im Gegensatz zum Supervised Learning braucht man also weniger Daten -> Günstiger und effizienter +3. Reinforcement Learning + - CAS AI -> da spielt das eine grosse Rolle (Robotik) + - Man startet mit einem initialen Modell (neuronales Netz) mit default Werten, die Parameter sind zufällig. + - Dann stellt man das Modell sofort produktiv + - Man braucht eine Art zu entscheiden ob der Output gut oder schlecht ist + - Damit hat man einen realen Trainingsdatensatz und kann damit das Modell verbessern + - Rinse and repeat + - Trainingsdatensatz wächst kontinuierlich und dadurch wird das Modell besser + - Modell wird "bestraft" oder "belohnt" bei positivem oder negativem Verhalten + - Bspw.: Bewegungsabläufe eines Roborters trainieren + - Welcher Motor dreht sich um wieviel Grad mit welcher stärke + - Ergebnis: Roboter bewegt sich in Richtung XY mit Geschwindigkeit Z + - Lässt sich gut beobachten -> Roboter fällt auf die Nase bspw. schlecht + - Bspw.: Schachcomputer Programm + - Lässt sich mit RL einfach und effizient umsetzen, da die Regeln des Spiels bekannt sind und bewertet werden können + - Bspw.: Suchmaschine + - Query -> Optimale Eergebnisliste + - Feedback: Wie geht der Benutzer mit der generierten Ergebnisliste um? Worauf wird geklickt? + +## Different Machine Learning Approaches (2) + +> [!NOTE] Definition +> What type of Task T is solved? + +1. Clustering + - Input data should be divided into distinctive groups + - Man hat eine Datenmenge und man vermutet, dass die sich aufteilen lässt in Teilmengen + - Ich will Kategorien herausfinden + - Bspw.: Kundensegmentierung + - Kundengruppen in onlineshop erkennen + - Regionale Gruppen, Altersgruppen, Einkommensklassen, Hobby, etc. + - model often based on similarity: members in one group are similar + - **Unsupervised Learning** ist hier sehr prominent +2. Classification + - input data should be assigned a certain class/category/label + - Ich will eine vorgegebene Anzahl von Kategorien zuweisen + - bspw.: an email is classified as spam or as not-spam + - **Supervised Learning** ist hier sehr prominent +3. Regression + - estimates the relationship between input data (independent variables) and the output we are interested in (dependent variable) + - model is a regression function, often for continous variables + - Mit einer Regression lassen sich auch Klassifikationsprobleme lösen, aber nicht umgekehrt + - bspw: prediciton of birth date + +## Generative AI (GenAI): Large Language Model (LLM) + +- Modell Speichert grosse Mengen an vorhanden Daten (Internet) + - Lernt Sprache +- Was löst das LLM? + - Klassifikationsproblem -> Es ist eigentlich ein Classifier +- Wie funktioniert ein LLM? + - Output ist lediglich eine Wortsequenz + - Input -> Prompt -> wird umgewandelt zum Feature Vektor und dem Modell übergeben + - Output -> Klassifikation oder Vorhersage welches Wort am besten zum Prompt passt + - Man nennt das auch Word Prediction + - Es wird immer nur ein Wort predicted, der Rest findet iterativ statt, Wort für Wort + - Prompt und Erstes Wort als Input geben + - Dann das nächste Wort, und so weiter + - Iterative Klassifikation + +## Machine Learning Workflow (CRISP-DM) + +- Wir arbeiten iterativ und es wird eine Reihe von Arbeitsschritten durchlaufen + - der erste Wurf ist meist nicht gut genug +- Der Ablauf lässt isch wie folgt definieren: + 1. Welches Problem will ich lösen -> Business Understanding + 2. Daten verstehn und labeln -> Data Understanding + 3. Daten in Feature Vektor umwandeln -> Data preparation + 4. Aus Daten ein Modell ableiten -> Modeling + 5. Metrik Feststellen und Testen -> Evaluation + 6. Praktisches Einsetzen -> Deployment + +## Business understanding + +- Problem definieren "Welches Problem will ich überhaupt lösen?" +- Für Projektarbeit: Klar abgegrenztes, einfach lösbares Problem definieren + - predict the remaining lifetime of a machine + - classify email as spam or not + - detect a human face in an image +- Antibeispiel: "We have a ton of XYZ data -> can you make something useful out of it?" + - data science: iteratively addressing the information needed + - machine learning not necessarily means automation + - Es muss nicht alles automatisiert werden, auch Unterstützung ist sinnvol + - Statt vollautomatischem Mailbeantworten vielleicht eher eine Vorsortierung oder ein Templating der Antworten + - bspw.: Supermarkt + - Leute kaufen oft Bier und Chips zusammen + - Was kann mit dieser Information gemacht werden? + - Entweder Produkte nebeneinander Stellen damit der Durchlauf höher wird + - Oder möglichst weit auseinander, damit die Zeit im Shop maximiert wird -> grösserer Einkauf + +## Example: To Wait or Not to Wait + +> [!NOTE] Fragestellung +> Will people wait in line for eating in a restaurant? + +1. Collecting data + - Internal or external sources? + - Intern: Unternehmensdaten anzapfen + - Extern: Referenzdatensatz aus der Verhaltensforschung + - Fragestellgun: Sind die Daten bereits gelabeled? + - Wenn ein Problem mit SL gelöst werden soll -> Ist es realistisch die Daten im Rahmen des Projekts zu Labeln? Aufwändig! Wenn nein, mach was anderes. + - Es werden schnell 4 oder 5 stellige Mengen an Daten benötigt + - [Kaggel](https://www.kaggle.com/datasets)-> Data Science challenges sind bspw. eine gute Quelle + - Forschungscommunity -> Referenzdatensätze + - Google Scholar -> in den referenzen stehen meist die Datensätze +2. Understanding Data + - Which aspects of available data can be utilized as features? + - Was wurde in Referenzprojekten verwendet? + - feature types: boolean, nominal (categorial), or numeric + - often helpful to look at basic statistics to develop a "feeling" + - histograms and frequency distributions or graphs + - Verteilungsfunktion + - Welche features kommen in welchen Klassen vor? + - Viel Zeit reservieren für Semesterarbeit + - Wie häufig sind meine Klassen in den Daten vertreten? + - many classification problems are unbalanced! + - 99% der emails sind nicht spam und 1% spam + - Das Modell wird oft auf die Klasse optimiert, auf die Klasse die am Meisten vorkommt + - classes are not evenly distributed but a class may be very rare or very frequent + - e.g: detecting rare diseases: only x cases in a million + - may not even occur in a dataset at hand +3. Preparing (cleaning) Data + - data integration: data from different sources may use different schema (syntax) or semantics + - data transformation: e.g. turn numeric feature (age) into nominal (age-category) + - data may be missing: e.g some features have not been recorded for some instances -> Daten können fehlen oder fehlerhaft sein! + - Messfehler, Duplikate + - Bewusste Irreführung bei Umfragen + - Features können fehlen da sie noch nicht gemessen wurde + - Veraltete Daten die vielleicht sogar obsolet sind + - feature generation: processing low-level data into higher-level features + - feature selection: selecting the best features from a (too) large set + - Brauche ich wirklich alle Features in einem Datenset? +4. Modeling + 1. Selecting an appropriate ML algorithm + - black box or white box + - Im Restaurants-Beispiel entscheiden wir uns für einen Entscheidungsbaum + - Das ist ein Supervised Classifier + 2. Building the Model + - via training (automatically) + - via configuration (manually) + 3. Decision Tree (DT) + - Supervised Classification Algorithm + - binary classification: two classes true/false + - tree leaves represent class labels + - all other nodes represent a devision based on a certain feature + - path between parent to child nodes represents next relevant decision + - path from root to leaf node represents conjunctive devisions + - Der Aufbau des Baumes wird durch den Algorithmus spezifiziert + - Es handelt sich um ein white box Verfahren + - DT Construction + - Challenge: many alternative and equivalent DT exits + - Correct but inefficient DT: All samples are leaf nodes with path utilizing all present features (bruteforce) + - Bei numerischen Variablen wird es schwierig einen Schwellwert zu setzen + - Wartezeiten sind individuell und schwierig zu klassifizieren + - Fehler potenzieren sich pro Entscheidung + - Strategie: Pfade möglichst kurz halten, entscheidungen möglichst schnell treffen, daher ist ein Bruteforce apporach mit allen entscheidungen schlecht + - Wichtig: Entscheidungspfade müssen kurz sein (optimaler Baum) + - Optimaler Algorithmus: + - for the next node, choose feature that splits the sample data into the most homogeneous subsets. + - Attribute die die Samples möglichst stark aufteilen (klassifizieren) zuerst! + - Patrons -> (None,Some,Full) -> liefert die beste Trennung + - Type -> (French, Italian, Thai, Burger) -> Informationsgewinn gleich Null + - Für jeden Teilschritt muss das optimale Attribute herausgesucht werden + - formally: the feature that minimizes the remaining entropy (optimale codierung) + - Different DT Algorithms around this Idea: ID3, C4.5, C5 +5. Evaluating the Model + - Is the model good enough? + - what is the metric for good enough? + - fester Wertebereich -> zwischen 0 und 1 + - durchschnittlicher Fehler bspw. + - kann auch der worst case sein + - So setzen, dass worst case noch akzeptabel + - processing time and scalability + - offers a human-understandable explanation (white box) + - in real-world scenarios it's impossible to have error-free models + - missing or noisy data + - model tries to generalize but there may be executions +6. Productizing a Model + - Some aspects to consider + - Human and Computational resources + - Training des Models kann viel kosten + - Feature Generierung kann auch teuer sein + - Ist das Model update fähig? + - some models may be incrementally updated + - ML Ops considerations + - runtime environment + - interface + - versioning (Model und Daten) + - Application development + - model provides useful features of a larger application + - human factors: trust, bias, accountability, security + +## Summary: Machine Learning Challenges + +For ML to work, we need the following: + +- Konkrete Aufgabenstellung, bei welcher man eine wohldefinierte Überprüfungsfunktion hat +- Man benötigt Daten in der notwendigen Quantität und Qualität + - data may be garbled or missing + - dataset may be too small for the task at hand + - dataset may not be representative or biased +- Man braucht gute Features + - Welche in welcher Kombination? +- Decisive patterns + - patterns may be inexact or spurious + - most patterns are not interesting +- Auswahl des passenden ML Algorithmus + - which one in which configuration + - Kombinationen von Parametern wichtig + - Ist es eine zukunftsfähige Lösung? Was wenn sich die Datenmenge verzehnfacht? +- Akzeptable Fehlerquote definieren + - kein Modell ist frei von Fehlern!