Neural network (NN) : Réseau de Neurones (RN).
Apprendre à partir de nombreux critères (trouver des hypothèses non-linéaires complexes).
Lorsque le nombre de critères est trop grand (IR par ex), l'approche polynomiale devient trop coûteuse en calcul (autant de features que de pixels) et il devient plus intéressant d'utiliser une alternative comme un réseau de neurones.
À l'image des neurones biologiques, un neurone artificiel possède :
Un réseau est constitué de `L` couches (souvent représentées de gauche à droite) :
Par exemple pour 1 seule couche "cachée" (2) :
`[[x_0],[x_1],[x_2],[x_3]] -> [[a_1^((2))],[a_2^((2))],[a_3^((2))]] -> hθ(x)`
Lorsqu'un réseau contient plusieurs couches cachées (impliquant autant de niveaux d'abstraction), on parle d'apprentissage profond (deep learning).
On définit pour chacun des `n` nœuds d'une couche `j` un résultat dépendant de la couche précédente `j-1` et de sa matrice de poids `Θ_j` :
`z_i^((j))=Θ_(i,0)^((j-1)) x_0 + Θ_(i,1)^((j-1)) x_1 + Θ_(i,2)^((j-1)) x_2 + Θ_(i,3)^((j-1)) x_3`
et l'on définit alors la fonction d'activation comme une fonction logistique `g` :
`a_i^((j))=g(z_i^((j)))`
et l'on considère la sortie `h_Θ(x)` comme `a_1^(3)` par exemple (s'il y a 3 couches), recevant la couche 2 comme `X` (i.e. `x_i = a_i`) :
`h_Θ(x)=g(Θ_(1,0)^((2)) a_0 + Θ_(1,1)^((2)) a_1 + Θ_(1,2)^((2)) a_2 + Θ_(1,3)^((2)) a_3)`
Toutefois les résultats peuvent être plus complexes. Dans des problèmes de classification multiple (plus de 2 classes) par exemple, les résultats connus (et donc les hypothèses) auront plutôt la forme d'une matrice (où chaque ligne indique si la classe `i` est reconnue ou non par exemple) :
`h_Θ(x)=[[h_Θ(x)_1],[h_Θ(x)_2],[h_Θ(x)_3],[h_Θ(x)_4]]`
On parlera donc plus généralement de `h_Θ(x)_k` comme étant le `k`ième résultat dans la couche de sortie .
Comme pour d'autres algorithmes de ML, avant de prédire, le réseau doit être "entraîné" (trained) en 2 phases à répéter jusqu'à convergence :
Des exemples de RN sont :