CODECENTRIC.AI BOOTCAMP

Was ist Machine Learning?

created by @moseroli

Machine Learning

     Big Picture

0101011101
0011010100
1100101001

DATEN

MODELL

f(x) = ax + bx^2 ...
f(x)=ax+bx2...f(x) = ax + bx^2 ...

TRAINIEREN

  • Software 2.0 -> Lernen aus Daten
  • nicht if/else Regeln des Software Entwicklers
  • immer komplexere Programme werden möglich
  • jedes Problem lässt sich durch eine Funktion annähern

(vereinfachtes Beispiel)

"Gradient descent can write code better than you. I'm sorry."

Andrej Karpathy, Director of AI @ Tesla

Quelle [1]: A. Karpathy (medium.com)

Programm Komplexität

Programm Raum

Software 1.0
(Code durch Entwickler)

Software 2.0
(gelernt aus Daten)

Title Text

Machine Learning

Deep 

Learning

Neuronale

Netze 

 

Diese Lektion (grober Überblick)

  • Ziel: Wichtigste Begriffe einmal gehört!

Schwerpunkt
Weiterer Kurs

It's all about

MATH !

  • Basis = "pure Mathematik"
  • Unterschiedlichste Algorithmen
  • Training = Approximation
  • das Modell ist eine mathematische Funktion mit u.U. sehr vielen Parametern
  • Hauptarbeit oft: Daten erheben und vorbereiten
  • immer einfacher durch Frameworks
  • "Standard" Vorgehensweisen
     
  • anwendbar auch ohne Mathe-Studium!

No. It's not !!

Typisches ML Projekt

Daten holen

Daten verstehen

und visualisieren

Daten vorbereiten

Modell trainieren

Evaluieren und Optimieren

Deploy. Run. Monitor.

(Arbeitszeit)

(Rechenzeit)

(Operations)

Supervised

Unsupervised

Reinforced

- Überwachtes Lernen

- Training mit "Labels"

- weit verbreitet

- Erstellen von Labels kann aufwändig sein

Hund

Katze

- keine Labels

- Clustering

- Reduktion von Dimensionen

 

- Lernen durch Bestätigung und/oder Strafe

- Erproben von Strategien (in Simulationen)

Arten von

Machine Learning

Klassifikation vs.

Regression

Kind

Erwachsener

Rentner

Klassifikation:

Regression
(Alter):

8,5

38,1

75,3

Daten:

Lernen durch

x

x

x

x

x

f(x) = ax + b
f(x)=ax+bf(x) = ax + b

mathematische Annäherung

a = 0,5 ; b = 1

a = 1 ; b = 0

x = Labels

Finde (iterativ) die optimalen Werte für a und b, so dass der Fehler insgesamt möglichst gering ist.

(sehr vereinfachtes Modell)

(in der Praxis sind Modelle komplexer mit viel mehr Parametern)

Kosten Funktionen

x

x

x

x

x

Fehler

RMSE (X, f) = \sqrt{ \frac1m \sum_{i=1}^m(f(x_i) - y_i)^2}
RMSE(X,f)=1mi=1m(f(xi)yi)2RMSE (X, f) = \sqrt{ \frac1m \sum_{i=1}^m(f(x_i) - y_i)^2}

Unterschiedliche Kosten Funktionen haben unterschiedliche Eigenschaften.

            (Cost Functions, Loss Functions, Objective Functions)

x

y

Generalisieren

Trainingsdaten

Lerne Konzept

Verständnis von "Dreieck"

predict(    ) 

 Dreieck!

ist das Ziel

Overfitting vs.
            Underfitting

Overfitting vs.
            Underfitting

Wie lang muss man trainieren?

generalisiert!

Train, Eval, Test

  • Daten in Sets splitten
  • Trainiere mit TRAIN Daten
  • Optimiere mit EVAL Daten 
    • Overfitting?
    • Underfitting?
  • Messe 1 mal (!)
    mit TEST Daten

TRAIN

EVAL

TEST

Daten

Cross Validation

Daten

  • Splits nicht einmal statisch
  • verändert sich bei pro Trainingslauf


Trainingsdaten

Eval-/Testdaten


Akkurat klassifiziert?

ABER Vorsicht: Accuracy ist nicht immer eine gute Metrik!

Qualität des Modells messbar machen

Accuracy

Eval/Test Set

Input Prediction Richtig?
Kreis ja
Dreieck ja
Dreieck NEIN
Dreieck NEIN
Dreieck ja

3 von 5 = Acc: 0.6

Accuracy ist

nicht immer das Richtige

Beispiel:

  • 1 von 1000 Usern klickt auf Werbeanzeige
  • Aufgabe: anhand User-Profil vorhersagen, ob der User auf Anzeige klickt (Klassifikation)
    0 = klickt nicht
    1  = klickt

Modell: f(x) = 0

Accuracy: 0.999

... klingt toll - sagt nichts aus.

Precision vs. Recall

Echte Klasse

(ein Kompromiss)

Vorhergesagte Klasse

P

P

N

N

TP

TN

FP

FN

precision = \frac{TP}{TP+FP}
precision=TPTP+FPprecision = \frac{TP}{TP+FP}
recall = \frac{TP}{TP+FN}
recall=TPTP+FNrecall = \frac{TP}{TP+FN}

Beispiel:

  • 20.000 User
  • 20 klicken auf Anzeige
  • System sagt 12 mal richtig vorher und 1 mal falsch
    • TP = 12
    • FP = 1
    • FN = 7

12 / (12 + 1) = 0,92

12 / (12 + 7) = 0,62

F_1 = 2 * \frac{ precision * recall }{ precision + recall }
F1=2precisionrecallprecision+recallF_1 = 2 * \frac{ precision * recall }{ precision + recall }

2 * 0,57 / 1,54 = 0,74

Daten und Features

strukturiert

unstrukturiert

Datum Produkt Ort Umsatz
01.11.2011 Kaugummi Laden 1 55 EUR
12.12.2012 Schoko Riegel Laden 2 23 EUR

Feature 1

Feature 2

Feature 3

Target / Label

Frameworks und Tools

  • Jupyter Notebooks
    (IDE im Browser)
  • Pandas (strukturierte Daten)
  • Numpy (Multidimensionale Arrays)
  • scikit-learn (Machine Learning Algorithmen)

(Machine Learning)

  • Hadoop (große Datenmengen)
  • Spark (schneller durch in Memory)
  • RAPIDS (noch viel schneller durch GPU)
  • Cloud Services (AWS SageMaker, Google ML engine, ...)

ML at scale:

Deep Learning (später im Kurs)

FAZIT

  • "klassisches" Machine Learning ist weit verbreitet
  • man kann damit eine Vielzahl von Problemen lösen
  • es gibt ausgereifte Tools und Frameworks
  • Lernen aus Daten ermöglicht es hoch komplexe Programme zu entwickeln

ABER

  • Manche Probleme sind auch dafür zu komplex
    • Verstehen von Sprache
    • Verstehen von Bildern
    • Modelle mit Millionen von Parametern

Neuronale Netze und Deep Learning

Was ist Maschine Learning?

By Oliver Moser

Was ist Maschine Learning?

  • 272
Loading comments...

More from Oliver Moser