feature(notes): add notes from lession 1
This commit is contained in:
@@ -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!
|
||||
Reference in New Issue
Block a user