Machine Learning

Machine Learning

Wat is het?

En wat is het niet?

Klassieke algoritmen

  • Geeft optimale oplossingen
  • Looptijd algoritme makkelijk te schatten
  • Niet altijd schaalbaar in tijd
  • Gebaseerd op voorkennis (expert)
  • Makkelijk verifieerbaar
  • Optimale parameters van tevoren specificeren
  • Heuristieke beslissingen zelf inprogrammeren

Zelflerende algoritmen

  • Oplossingen nooit optimaal
  • Looptijd algoritme moeilijk te schatten
  • Schalen kan door vroegtijdig te stoppen met trainen
  • Gebaseerd op data
  • Black box
  • Parameters kunnen getraind worden
  • Heuristieke beslissingen worden uit de data geëxtrapoleerd

Wat werkt beter?

Any sufficiently advanced technology is indistinguishable from magic...

~ Arthur C. Clarke

Any sufficiently advanced technology is indistinguishable from magic...

~ Arthur C. Clarke

Image inpainting

Any sufficiently advanced technology is indistinguishable from magic...

~ Arthur C. Clarke

Image generation

Any sufficiently advanced technology is indistinguishable from magic...

~ Arthur C. Clarke

Virtual movement

Any sufficiently advanced technology is indistinguishable from magic...

~ Arthur C. Clarke

Deepfakes

Any sufficiently advanced technology is indistinguishable from magic...

~ Arthur C. Clarke

Image sharpening - ENHANCE!

Any sufficiently advanced technology is indistinguishable from magic...

~ Arthur C. Clarke

Andere voorbeelden:

  • Competitive gaming
  • Text translations
  • Physics simulations
  • Music synthesis
  • Protein folding
  • Gene expression prediction
  • Text-to-speech
  • Network security
  • Autonomous driving
  • Natural Language Processing
  • Code creation
  • Crime prediction

Soorten:

  • Classification
    • class(data[x]) = A of B
  • Prediction
    • f(t+3) = ?
  • Translation
    • to_image("cats with light sabers") =

Hoe werkt het?

Hoe werkt het?

Input

Hoe werkt het?

Input

Parameters

Hoe werkt het?

Input

Parameters

Model

Hoe werkt het?

Input

Parameters

Model

Training

Hoe werkt het?

Input

Parameters

Model

Training

More training

Hoe werkt het?

Input

Hyperparameters

Model

Training

More training

Output

Wat houdt deep learning in?

In het kort:

  • Minder structuur in model
  • Opgebouwd uit veel lagen
  • Soms combinaties van modellen
  • Leert minder snel
  • Heeft meer input data nodig
  • Kan betere resultaten behalen

Is het echt zo eenvoudig?

Input

Hyperparameters

Model

Training

More training

Output

Ja en nee...

Is het echt zo eenvoudig?

Input

Hyperparameters

Model

Training

More training

Output

Ja en nee...

Ja, want:

De logica wordt door trainen automatisch verwerkt in het model

Is het echt zo eenvoudig?

Input

Hyperparameters

Model

Training

More training

Output

Ja en nee...

Ja, want:

De logica wordt door trainen automatisch verwerkt in het model

Nee, want:

We moeten ervoor zorgen dat het model de logica op de juiste manier leert...

Letten op:

  1. Input data
  2. Trainingsproces
  3. Interpreteren output

Input data

  • Genoeg data nodig, 10k, 100k, 1M
  • Gebalanceerd
  • Gecleaned
  • Geformatteerd
  • Garbage in, garbage out

Voorbeeld model

  • Stel: Data afkomstig van IC van ziekenhuizen, 100k records
  • Doel: A.h.v. symptomen voorspellen of iemand Corona heeft

Hoesten?

Niezen?

Koorts?

Secundaire infecties?

Zuurstof nodig?

Vocht in longen?

Model

Corona?

Input data

Trainingsproces

  • "Requirements" voor model
    • Aannames over distributie data

Trainingsproces

  • "Requirements" voor model
  • Fitness of error metric nodig
    • Sum of absolute errors
    • Sum of squared errors
    • Distance

Gradient descent

Trainingsproces

  • "Requirements" voor model
  • Fitness of error metric nodig
    • Sum of absolute errors
    • Sum of squared errors
    • Distance

Trainingsproces

  • "Requirements" voor model
  • Fitness of error metric nodig
  • Overfitting tegengaan

Over overfitting...

Over overfitting...

Interpreteren output

  • Confidence

Interpreteren output

  • Confidence
  • Incorrecte waarden

Interpreteren output

  • Confidence
  • Incorrecte waarden
  • Limieten van model
    • Bijv. lineaire verbanden

Best practices

  • Data inspecteren, visualiseren
  • N-fold cross validation tegen overfitten

5-fold cross validation

 

 

 

Data set

 

 

 

5-fold cross validation

Data set 1

Data set 2

Data set 3

Data set 4

Data set 5

5-fold cross validation

Data set 1

Data set 2

Data set 3

Data set 4

Data set 5

Training

Training

Training

Validation

Testing

5-fold cross validation

Data set 1

Data set 2

Data set 3

Data set 4

Data set 5

Training

Training

Training

Validation

Testing

5-fold cross validation

Best practices

  • Data inspecteren, visualiseren
  • N-fold cross validation tegen overfitten

Best practices

  • Data inspecteren, visualiseren
  • N-fold cross validation tegen overfitten
  • Regularization penalty tegen overfitten
  • Specificity, sensitivity, accuracy, recall

Best practices

  • Data inspecteren, visualiseren
  • N-fold cross validation tegen overfitten
  • Regularization penalty tegen overfitten
  • Specificity, sensitivity, accuracy, recall
  • Trainen: GPU of TPU ipv CPU gebruiken
  • Trainen: Cloud services
  • Pre-trained model gebruiken

Best practices

  • Data inspecteren, visualiseren
  • N-fold cross validation tegen overfitten
  • Regularization penalty tegen overfitten
  • Specificity, sensitivity, accuracy, recall
  • Trainen: GPU of TPU ipv CPU gebruiken
  • Trainen: Cloud services
  • Pre-trained model gebruiken
  • Confidence interval berekenen bij result

Hoe kunnen wij machine learning gebruiken?

Hoe kunnen wij machine learning gebruiken?

  • Pre-trained models en services
  • Zelf een model trainen

Wat voor soort problemen kunnen we tacklen?

  • Oplossen met klassiek algoritme is moeilijk
  • Veel data/pre-trained model beschikbaar
  • Herkenbaar patroon in data
  • Fitness of error metric/functie
  • Incorrecte output is toelaatbaar
  • Uitleg over berekende resultaat is niet nodig

Vragen?

Machine Learning

By mjorden

Machine Learning

  • 30