Commit d4bdc4e3 by PLN (Algolia)

ML101: TP2++

parent 0575e100
......@@ -66,7 +66,7 @@ $$ f(\mathbf{x}) = \begin{cases}1 & \text{if }\ \mathbf{w} \cdot \mathbf{x} + b
---
# Intuition: apprentissage d'un Perceptron
### Intuition: apprentissage d'un Perceptron
<!-- _backgroundColor:
_color: -->
......@@ -152,10 +152,15 @@ co-founded Distill, a scientific journal focused on outstanding communication.
Encoder Representations from Transformers](https://arxiv.org/pdf/1810.04805v2.pdf)
---
### Genetic Algorithms
---
<!-- _backgroundColor:
_color: -->
### Reinforcement Agents
![bg right 90%](./img/01-reinforcement.png)
<!-- Image Credit: [Megajuice](https://en.wikipedia.org/wiki/Reinforcement_learning#/media/File:Reinforcement_learning_diagram.svg) -->
- [Exemple d'AlphaZero](https://arxiv.org/pdf/1712.01815.pdf)
---
# Pratique : Choisir un Modèle
......@@ -182,4 +187,22 @@ Encoder Representations from Transformers](https://arxiv.org/pdf/1810.04805v2.pd
### Selon le tooling à disposition
<!--
Target:
Learning and deploy, or continuous learning?
GPU? CPU? Embarqué ?
Mobile ?
Language/frameworks:
CUDA
PyTorch
etc
Deployment/ops:
Own model deployed and monitored ?
ML as a Service, e.g. HuggingFace inference API
-->
......@@ -9,7 +9,18 @@ paginate: true
# Entrainer son Modèle
## Comment setup
<!-- https://developers.google.com/machine-learning/crash-course/descending-into-ml/training-and-loss -->
---
## Comment setup le training
- Loss Function
- Training Loop
- [Exemple avec TensorFlow](https://www.tensorflow.org/guide/basic_training_loops)
---
## Quand s'arrêter
......
......@@ -7,29 +7,95 @@ backgroundColor: #111
paginate: true
---
<style>
li {
font-size: 0.8em;
}
</style>
# Tester son Modèle
---
## À la main
## 1. À la main
---
## Outils d'introspection:
- [What If Tool](https://pair-code.github.io/what-if-tool/) - see [Iris demo](https://pair-code.github.io/what-if-tool/demos/iris.html)
- [TensorFlow Playground](http://playground.tensorflow.org/)
- [TensorFlow Embedding Projector](https://projector.tensorflow.org/)
---
## Pour éviter des régressions
## 2. Pour éviter des régressions
<!--
Comparer aux précédentes métriques
Comparer aux précédentes datas
-->
---
## De manière continue
<!--
In your CI!
-->
---
### Quand la data change
> The tricky part is making the new dataset “compliant” with what the model expects.
> ~Jacek Podlewski, [Quora](https://www.quora.com/How-can-I-test-my-trained-model-on-a-completely-new-dataset)
---
### Quand le modèle évolue
---
### Dans ta CI/CD
![](https://air.imag.fr/images/5/55/Demo_2.PNG)
_CircleCI, a continuous integration platform_
- Ref: [CircleCI ML Guide](https://circleci.com/blog/increase-reliability-in-data-science-and-machine-learning-projects-with-circleci/)
- Ref: [Valohai's Colecting User Feedback](https://valohai.com/blog/cicd-for-machine-learning/)
---
# Évaluer un modèle
Sur les métriques visées
---
Sur ses biais éventuels
- Avec CHECKLIST
- Avec des users différents
- [TDS: 3 common strategies to measure bias in NLP models](https://towardsdatascience.com/3-common-strategies-to-measure-bias-in-nlp-models-2022-b948a671d257)
- Par perturbation/permutation: e.g. [Reducing Sentiment Bias in Language Models
via Counterfactual Evaluation](https://arxiv.org/pdf/1911.03064.pdf)
- [CHECK LIST!](https://aclanthology.org/2020.acl-main.442.pdf)
- https://github.com/marcotcr/checklist
---
### Adversarial perturbations
![bg right:40% fit](https://i0.wp.com/bdtechtalks.com/wp-content/uploads/2020/11/adversarial-js.jpg?resize=1024%2C568&ssl=1)
- [See Christophm's Interpretable Machine Learning: Something is Wrong With my Dog](https://christophm.github.io/interpretable-ml-book/adversarial.html)
- Pour Aller plus loin : [Adversarial Robustness - Theory and Practice](https://adversarial-ml-tutorial.org/)
---
## Avec des users différents
![bg right fit](https://images.unsplash.com/photo-1587440871875-191322ee64b0?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1771&q=80)
<!-- Image credit: UX Indonesia, Unsplash.com -->
- [Case Study by _dscout_: User Research for ML Systems](https://dscout.com/people-nerds/user-research-for-machine-learning)
---
![bg right fit](https://www.boxuk.com/wp-content/uploads/2019/09/blog-post-teaser-guerrilla-testing-square.jpg)
<!-- Image credit: BoxUK | https://www.boxuk.com/insight/unboxing-guerrilla-usability-testing/ -->
## Adversarial perturbations
## Méthodes
### Train/test/val split
### Avec du
### Guerrilla Testing
- [How to do Guerrilla Testing](https://medium.com/one-more-thing-studio/how-to-do-guerrilla-testing-right-f36beb186ca)
- [Designing a Chatbot Personality](https://chatbotsmagazine.com/designing-a-chatbots-personality-52dcf1f4df7d)
\ No newline at end of file
......@@ -51,7 +51,7 @@ Sur l'intranet ou à formation@nech.pl
- "Apprentissage Supervisé"
- "Apprentissage Non Supervisé"
- "Layer"
- ""
- "Métrique"
---
......@@ -85,7 +85,7 @@ Exemple:
**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
- 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:
```
......
......@@ -5,7 +5,7 @@ color: #eee
colorSecondary: #333
backgroundColor: #111
paginate: true
footer: "ML101 | TP1: Choisir un modèle | Paul-Louis Nech | INTECH 2022-2023"
footer: "ML101 | TP2: Entrainer un modèle | Paul-Louis Nech | INTECH 2022-2023"
---
<style>
......@@ -14,7 +14,7 @@ li {
}
</style>
# <!-- fit --> TP1: Choisir un modèle
# <!-- fit --> TP2: Entrainer un modèle
<!--
Théorie : méthodes
fondamentales
......@@ -54,5 +54,3 @@ FOO BAR BAZ
## Lvl 1: Multi-class classification with MNIST
- [Google Colab: Exercises - Multi-Class Classification with MNIST](https://colab.research.google.com/github/google/eng-edu/blob/main/ml/cc/exercises/multi-class_classification_with_MNIST.ipynb?hl=en#scrollTo=XuKlphuImFSN)
:rocket: simple linear regression model VS Neural network :rocket:
---
marp: true
theme: uncover
color: #eee
colorSecondary: #333
backgroundColor: #111
paginate: true
footer: "ML101 | TP3: Tester un modèle | Paul-Louis Nech | INTECH 2022-2023"
---
<style>
li {
font-size: 0.8em;
}
</style>
# <!-- fit --> TP3: Tester un modèle
<!--
Théorie : méthodes
fondamentales
Pratique : choisir un modèle
adapté à son problème
-->
---
Objectifs :
- Théorie : outils fondamentaux
- Pratique : entrainer un modèle
---
Format: Rendu écrit (fichier Markdown ou Doc avec une section par _Level_)
Sur l'intranet ou à formation@nech.pl
<br />
**DEADLINE : 24 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:
FOO BAR BAZ
---
## Lvl 1 : Utiliser checklist pour évaluer un modèle
---
## Lvl 2 : Break neural networks in your browser :fire:
https://kennysong.github.io/adversarial.js/
\ No newline at end of file
---
marp: true
theme: uncover
color: #eee
colorSecondary: #333
backgroundColor: #111
paginate: true
footer: "ML101 | TP4: Utiliser un modèle | Paul-Louis Nech | INTECH 2022-2023"
---
<style>
li {
font-size: 0.8em;
}
</style>
# <!-- fit --> TP4: Utiliser un modèle
<!--
Théorie : méthodes
fondamentales
Pratique : choisir un modèle
adapté à son problème
-->
https://github.com/TheLastBen/fast-stable-diffusion
https://colab.research.google.com/github/huggingface/notebooks/blob/main/diffusers/sd_dreambooth_training.ipynb#scrollTo=rscg285SBh4M
https://github.com/huggingface/diffusers
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment