François HU - Data scientist au DataLab de la Société Générale Assurances - 19/11/19 - https://nbviewer.jupyter.org/github/curiousML/DSA/tree/master/text_mining/
from IPython.display import HTML, Image
HTML('''<script>code_show=true; function code_toggle() {if (code_show){$('div.input').hide();} else {$('div.input').show();}code_show = !code_show} $( document ).ready(code_toggle);</script><form action="javascript:code_toggle()"><input type="submit" value="cacher / afficher code"></form>''')
from jyquickhelper import add_notebook_menu
add_notebook_menu()
Processus classique d'apprentissage statistique passif (passive machine learning) :
Image("img/passive_learning.png", width=600)
Processus d'apprentissage statistique actif (active machine learning) :
Image("img/active_learning.png", width=600)
Notations (supposons que nous avons un petit ensemble de données labélisées) :
nous allons voir deux stratégies classiques : échantillonnage basé sur l'incertitude du modèle et échantillonnage basé sur le désaccord des modèles
Image("img/SVM_AL_US_tong_koller.png", width=800, height=200)
(Prateek Jain, Sudheendra Vijayanarasimhan et Kristen Grauman)
Echantillonnage "least confident"
L'apprenant actif requête les instances pour lesquelles il n'est pas certain comment labelliser (Lewis and Gale, 1994).
Dans le cas d'un problème de :
classification binaire, l'échantillonnage incertain requête les instances où leur probabilité à posteriori d'être positif est proche de 0.5
classification multi-classe, l'échantillonnage incertain requête les instances où leur prédiction est la moins confiante
$$x_{LC}^* = \arg\max_{x \in \mathcal{U}}\left\{ 1 - P_{\theta}(\hat{y} \ | \ x)\right\}$$
où $\hat{y} = \arg\max\limits_{y}\left\{ P_{\theta}(y\ |\ x)\right\}$ est la classe avec la plus grande probabilité à postériori sous le modèle $\theta$.
Image("img/uncertainty_binary.png", width=800, height=200)
Image("img/uncertainty_binary_select.png", width=800, height=200)
Cette stratégie considère seulement l'information sur le label le plus probable mais ne tient pas en compte les autres labels
Image("img/uncertainty_multi1.png", width=800, height=200)
Image("img/uncertainty_multi2.png", width=800, height=200)