Files
cas-pml/ML/notizen/L1_Notizen.md
T

377 lines
18 KiB
Markdown

# 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!