summaryrefslogtreecommitdiff
path: root/ML/04_entrainement/Training models.md
blob: ac2a0b96c7d69efd134fea09c9d13ca77a03ab1b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# Linear Regression
- 1 poids par input
- Représentation vectorielle : $ŷ = h_{{\theta}}(x) = \theta \cdot x$
	- $h_{\theta}$ = fonction d'apprentissage
	- $\theta$ = vecteur à apprendre
Usage de la RMSE à optimiser
## Equation Normale
$\hat{\theta} = (X^TX)^{-1}X^TX$
Pseudo inverse

## Decomposition en valeur singulière (SVD)
$X \rightarrow U\Sigma V^T$ et $X^+ = V\Sigma^+ U^T$

## Complexités
Eq normale : $O(n^2.4) \approx O(n^3)$
SVD : $O(n^2)$

# Descente de gradient
-> Recherche de minimum
Part d'un vecteur initialisé aléatoirement
Calcul de la dérivée de $f(\theta)$ (MSE par exemple)
$\theta' = \theta - \alpha f'(\theta)$
$\alpha$ = learning rate
Si $\alpha$ est trop petit : convergence trop lente
Si $\alpha$ est trop grand : risque de "saut de vallée" et divergence

De toute façon risque de tomber dans un minimum local

Normalisation capitale pour la descente de gradient
Bien mieux que SVD et Normale

GridSearch pour trouver un bon learning rate
limiter le nombre d'époques pour éviter la convergence trop lente
Set le nombre d'époques grand mais interrompre si $\nabla$ très petit
$O\left( \frac{1}{\epsilon} \right)$

# Descente de gradient stochastique
Bien plus rapide sur un gros dataset
Peut permettre de sortir d'un minimum local

# Mini-Batch gradient descent
Bon compromis

# Régression polynomiale
Apprentissage d'une régression linéaire sur des features polynomiales
Attention features multiples : potentielle explosion combinatoire avec nb de features et degré du polynome
Degré haut => bon fitting, attention overfitting, utiliser *validation croisée* et *courbes d'entrainement*
Underfit si degré trop faible (droite pas ouf pour parabole)

# Erreurs
- Biais (underfit)
- Variance (overfit)
- Erreur irréducible (bruit dans les données)

# Régularisation
Constriction des poids du modèle (Ridge, Lasso, Elastic)

## Ridge (ou Tikhonov)
Permet de garder les poids petits

## Lasso
Elimine les poids des features moins importantes

## Elastic Net
Mix des 2 autres
pondération des régularisations sur Ridge et Lasso

# Early stopping
Arrêt de l'entrainement quand l'erreur de validation atteint un minimum

# Régression logistique
Usage de la régression pour la classif : probabilité d'appartenance à une classe
=> Classifiction binaire
La logistique est une sigmoide

**Fonction** de coût ou cross-entropy binaire
Permet de minimiser les erreurs mais aussi de maximiser les probabilités fortes
Pas de forme fermée donc pas déquivalent à l'équation normale, mais descente de gradient possible
**Régularisation** par l'inverse de $\alpha$ = C

# Régression Softmax
Classif multiclasses, généralisation de la logistique

# Résumé
- Entrainements possibles pour modèles linéaires en régression et classif, équation normale et descentes de gradient
- Pénalités ajoutables à la fonction de cout pour régularisation : Ridge, Lasso, Elastic Net
- Arrêt prématuré
- Courbes d'apprentissages
- Régressions logistique et softmax