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 LL couches (souvent représentées de gauche à droite) :

  1. couche de s1s1 entrées (où l'on insèrera les valeurs de x1,x2,...,xnx1,x2,...,xn)
  2. L-2L2 couches "cachées" : contient snsn unités d'activation (nœuds) ai0,ai1,...,ainai0,ai1,...,ain. À 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 sLsL sorties (typiquement constituée de nn neurones de sorties si la prédiction recherchée à nn 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][a(2)1a(2)2a(2)3]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 :

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

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

a(j)i=g(z(j)i)

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

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

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