Réseaux de neurones

Neural network (NN) : Réseau de Neurones (RN).

Motivation

Apprendre à partir de nombreux critères (trouver des hypothèses non-linéaires complexes).

Analyse

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 :

Réseau

Un réseau est constitué de L couches (souvent représentées de gauche à droite) :

  1. couche de s1 entrées (où l'on insèrera les valeurs de x1,x2,...,xn)
  2. L-2 couches "cachées" : contient sn unités d'activation (nœuds) a0i,a1i,...,ani. À noter que 1 seule couche cachée peut suffire à beaucoup de besoins, pour peu qu'elle contienne assez de neurones (généralement plus que dans les couches d'entrée et de sortie). Si plus d'une couche cachée est nécessaire, il est généralement recommandé qu'elles aient le même nombre de neurones. Enfin, plus le réseau sera complexe, plus il demandera du temps de calcul (amoindrissant la rapidité de réponse donc) et plus il sera susceptible de faire du surapprentissage.
  3. couche de sL sorties (typiquement constituée de n neurones de sorties si la prédiction recherchée à n possibilités de réponses, par exemple 26 s'il s'agit de reconnaître une lettre de l'alphabet)

Par exemple pour 1 seule couche "cachée" (2) :

[x0x1x2x3][a1(2)a2(2)a3(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).

Conception

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 :

zi(j)=Θi,0(j-1)x0+Θi,1(j-1)x1+Θi,2(j-1)x2+Θi,3(j-1)x3

et l'on définit alors la fonction d'activation comme une fonction logistique g :

ai(j)=g(zi(j))

et l'on considère la sortie hΘ(x) comme a13 par exemple (s'il y a 3 couches), recevant la couche 2 comme X (i.e. xi=ai) :

hΘ(x)=g(Θ1,0(2)a0+Θ1,1(2)a1+Θ1,2(2)a2+Θ1,3(2)a3)

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)1hΘ(x)2hΘ(x)3hΘ(x)4]

On parlera donc plus généralement de hΘ(x)k comme étant le kiè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 :

Exemples

Des exemples de RN sont :

Notes