---
marp: true
theme: uncover
color: #eee
colorSecondary: #333
backgroundColor: #111
paginate: true
footer: "ML101 | TP1: Choisir un modèle | Paul-Louis Nech | INTECH 2022-2023"
---

<style>
li  {
  font-size: 0.8em;
}
</style>

# <!-- fit --> TP1: Choisir un modèle
<!-- 
Théorie : méthodes
fondamentales
Pratique : choisir un modèle
adapté à son problème
-->

---

Objectifs : 
- Acquérir une intuition des différences entre grandes familles de modèles de Machine Learnig
- Savoir choisir choisir un modèle adapté à son problème
---

Format: Rendu écrit (fichier Markdown ou Doc avec une section par _Level_)
Sur l'intranet ou à formation@nech.pl

<br />

**DEADLINE : 23 Janvier 23:59:59**

<br />

> _Le cachet de mon mailserver faisant foi_.

---

## Lvl 0: La base

![bg right:35% w:300](https://www.meme-arsenal.com/memes/a6effdba5a540560c7b5ee616ee0f1f3.jpg)
<!-- Image credit: World of Warcraft Tutorial boar -->

###### Faites une phrase avec vos propres mots pour définir ce que veut dire:
- "Apprentissage Supervisé"
- "Apprentissage Non Supervisé"
- "Layer"
- "Métrique"

---

## Lvl 1: Intro to Neural Nets by Google
- [Google Colab: Exercises - Intro to Neural Nets](https://colab.research.google.com/github/google/eng-edu/blob/main/ml/cc/exercises/intro_to_neural_nets.ipynb?hl=en#scrollTo=g8HC-TDgB1D1)

:rocket: simple linear regression model VS Neural network :rocket:

---

## Lvl 1.1 : baseline 

**Terminez les sections jusqu'à "_Build a linear regression model as a baseline_"**

<br />

- Partagez les métriques `loss` et `mean_squared_error` obtenues avec votre baseline de régression linéaire

Exemple: 
```
 Evaluate the linear regression model against the test set:
300/300 [==============================] - 1s 2ms/step - loss: 0.4018 - mean_squared_error: 0.4018

[0.40178823471069336, 0.40178823471069336]
```

---

## Lvl 1.2 : beat the baseline :metal: 

**Terminez les sections jusqu'à "_Call the functions to build and train a deep neural net_"**
<br />

- Partagez les premières métriques `loss` et `mean_squared_error` obtenues avec votre modèle de réseau de neurones - faites mieux que la régression linéaire :smirk:

Exemple: 
```
Evaluate the new model against the test set:
3/3 [==============================] - 0s 7ms/step - loss: 0.3705 - mean_squared_error: 0.3705

[0.3705473244190216, 0.3705473244190216]
```

---


## Lvl 2 : now beat yourself :smiling_imp: 


**Terminez les sections jusqu'à "_Task 2: Optimize the deep neural network's topography_"**
<br />

- Partagez la définition finale de votre réseau de neurones


- Partagez votre :muscle: **meilleur résultat** :muscle: de métriques `loss` et `mean_squared_error` obtenues avec votre modèle de réseau de neurones 

- Répondez en quelques mots : qu'est-ce qui affectait la performance de votre réseau de neurones ? Quel impact sur sa vitesse d'apprentissage ?

---

## Lvl 3 : now beat the real world

Comment faire mieux sur le _test_ set, et pas seulement bien apprendre le _training set_ ?

**Terminez la dernière section "_Task 3: Regularize the deep neural network_"**
<br />

---

## Lvl 3.1 : high score, real world

- Partagez votre :brain: **meilleur résultat en situation réelle** :brain: de métriques `loss` et `mean_squared_error` obtenues avec votre modèle de réseau de neurones régularisé 

---

## Bonus: Mais alors mon modèle d'avant il vaut quoi ?

- Répondez en quelques mots : en quoi la régularisation est utile ? Qu'en concluez vous sur votre évaluation initiale du modèle (les "meilleures métriques du Lvl 2?)
