Réseau de neurones feedforward - Feedforward neural network

Dans un réseau feedforward, l'information se déplace toujours dans une direction ; il ne recule jamais.

Un réseau de neurones à action directe est un réseau de neurones artificiel dans lequel les connexions entre les nœuds ne forment pas un cycle. A ce titre, il est différent de son descendant : les réseaux de neurones récurrents .

Le réseau de neurones à action directe a été le premier et le plus simple type de réseau de neurones artificiel conçu. Dans ce réseau, les informations se déplacent dans une seule direction - vers l'avant - depuis les nœuds d'entrée, à travers les nœuds cachés (le cas échéant) et vers les nœuds de sortie. Il n'y a pas de cycles ou de boucles dans le réseau.

Perceptron monocouche

Le type de réseau de neurones le plus simple est un réseau de perceptrons à couche unique , qui consiste en une seule couche de nœuds de sortie ; les entrées sont transmises directement aux sorties via une série de poids. La somme des produits des poids et des entrées est calculée dans chaque nœud, et si la valeur est supérieure à un certain seuil (généralement 0) le neurone se déclenche et prend la valeur activée (généralement 1); sinon il prend la valeur désactivée (typiquement -1). Les neurones dotés de ce type de fonction d'activation sont également appelés neurones artificiels ou unités de seuil linéaire . Dans la littérature, le terme perceptron fait souvent référence à des réseaux constitués d'une seule de ces unités. Un neurone similaire a été décrit par Warren McCulloch et Walter Pitts dans les années 1940.

Un perceptron peut être créé en utilisant n'importe quelle valeur pour les états activé et désactivé tant que la valeur seuil se situe entre les deux.

Les perceptrons peuvent être entraînés par un algorithme d'apprentissage simple qui est généralement appelé la règle delta . Il calcule les erreurs entre la sortie calculée et les données de sortie de l'échantillon, et l'utilise pour créer un ajustement des poids, mettant ainsi en œuvre une forme de descente de gradient .

Les perceptrons monocouches ne sont capables que d'apprendre des motifs linéairement séparables ; en 1969 dans une célèbre monographie intitulée Perceptrons , Marvin Minsky et Seymour Papert ont montré qu'il était impossible pour un réseau de perceptrons monocouche d'apprendre une fonction XOR (cependant, on savait que les perceptrons multicouches sont capables de produire n'importe quelle fonction booléenne possible ).

Bien qu'une seule unité de seuil soit assez limitée dans sa puissance de calcul, il a été montré que des réseaux d'unités de seuil parallèles peuvent approximer n'importe quelle fonction continue à partir d'un intervalle compact de nombres réels dans l'intervalle [-1,1]. Ce résultat peut être trouvé dans Peter Auer, Harald Burgsteiner et Wolfgang Maass "Une règle d'apprentissage pour des approximateurs universels très simples constitués d'une seule couche de perceptrons".

Un réseau de neurones monocouche peut calculer une sortie continue au lieu d'une fonction échelon . Un choix courant est la fonction dite logistique :

Avec ce choix, le réseau monocouche est identique au modèle de régression logistique , largement utilisé en modélisation statistique . La fonction logistique fait partie de la famille des fonctions appelées fonctions sigmoïdes car leurs graphiques en forme de S ressemblent à la dernière lettre minuscule de la lettre grecque Sigma . Il a une dérivée continue, ce qui lui permet d'être utilisé en rétropropagation . Cette fonction est également préférée car sa dérivée se calcule facilement :

.

(Le fait qui satisfait l'équation différentielle ci-dessus peut facilement être démontré en appliquant la règle de la chaîne .)

Si la fonction d'activation du réseau neuronal monocouche est modulo 1, alors ce réseau peut résoudre le problème XOR avec un seul neurone.

Perceptron multicouche

Un réseau de neurones à deux couches capable de calculer XOR. Les nombres dans les neurones représentent le seuil explicite de chaque neurone (qui peut être factorisé de sorte que tous les neurones aient le même seuil, généralement 1). Les nombres qui annotent les flèches représentent le poids des entrées. Ce réseau suppose que si le seuil n'est pas atteint, zéro (pas -1) est émis. Notez que la couche inférieure des entrées n'est pas toujours considérée comme une véritable couche de réseau de neurones

Cette classe de réseaux se compose de plusieurs couches d'unités de calcul, généralement interconnectées de manière anticipée. Chaque neurone d'une couche a des connexions dirigées vers les neurones de la couche suivante. Dans de nombreuses applications, les unités de ces réseaux appliquent une fonction sigmoïde comme fonction d'activation.

Le théorème d'approximation universelle pour les réseaux de neurones stipule que chaque fonction continue qui mappe des intervalles de nombres réels à un intervalle de sortie de nombres réels peut être approchée arbitrairement de près par un perceptron multicouche avec une seule couche cachée. Ce résultat est valable pour une large gamme de fonctions d'activation, par exemple pour les fonctions sigmoïdes.

Les réseaux multicouches utilisent une variété de techniques d'apprentissage, la plus populaire étant la rétro-propagation . Ici, les valeurs de sortie sont comparées à la réponse correcte pour calculer la valeur d'une fonction d'erreur prédéfinie. Par diverses techniques, l'erreur est ensuite renvoyée à travers le réseau. À l'aide de ces informations, l'algorithme ajuste les poids de chaque connexion afin de réduire légèrement la valeur de la fonction d'erreur. Après avoir répété ce processus pendant un nombre suffisamment grand de cycles d'apprentissage, le réseau convergera généralement vers un état où l'erreur des calculs est faible. Dans ce cas, on dirait que le réseau a appris une certaine fonction cible. Pour ajuster correctement les poids, on applique une méthode générale d' optimisation non linéaire qui s'appelle la descente de gradient . Pour cela, le réseau calcule la dérivée de la fonction d'erreur par rapport aux poids du réseau, et modifie les poids de telle sorte que l'erreur diminue (donc en descendant à la surface de la fonction d'erreur). Pour cette raison, la rétro-propagation ne peut être appliquée que sur des réseaux avec des fonctions d'activation différenciables.

En général, le problème d'apprendre à un réseau à bien fonctionner, même sur des échantillons qui n'ont pas été utilisés comme échantillons d'apprentissage, est un problème assez subtil qui nécessite des techniques supplémentaires. Ceci est particulièrement important pour les cas où seuls des nombres très limités d'échantillons d'apprentissage sont disponibles. Le danger est que le réseau surclasse les données d'apprentissage et ne parvienne pas à capturer le véritable processus statistique générant les données. La théorie de l'apprentissage informatique concerne l'entraînement des classificateurs sur une quantité limitée de données. Dans le contexte des réseaux de neurones, une heuristique simple , appelée arrêt précoce , garantit souvent que le réseau se généralisera bien à des exemples ne faisant pas partie de l'ensemble d'apprentissage.

D'autres problèmes typiques de l'algorithme de rétro-propagation sont la vitesse de convergence et la possibilité de se retrouver dans un minimum local de la fonction d'erreur. Aujourd'hui, il existe des méthodes pratiques qui font de la rétro-propagation dans les perceptrons multicouches l'outil de choix pour de nombreuses tâches d' apprentissage automatique .

On peut également utiliser une série de réseaux de neurones indépendants modérés par un intermédiaire, un comportement similaire qui se produit dans le cerveau. Ces neurones peuvent fonctionner séparément et gérer une tâche importante, et les résultats peuvent enfin être combinés.

Autres réseaux d'anticipation

Plus généralement, tout graphe orienté acyclique peut être utilisé pour un réseau feedforward, avec certains nœuds (sans parents) désignés comme entrées, et certains nœuds (sans enfants) désignés comme sorties. Ceux-ci peuvent être considérés comme des réseaux multicouches où certains bords sautent des couches, soit en comptant les couches en arrière depuis les sorties, soit en avant depuis les entrées. Diverses fonctions d'activation peuvent être utilisées, et il peut y avoir des relations entre les poids, comme dans les réseaux de neurones convolutifs .

Des exemples d'autres réseaux feedforward comprennent les réseaux à fonction de base radiale , qui utilisent une fonction d'activation différente.

Parfois , le perceptron multicouche est utilisé de manière lâche pour désigner n'importe quel réseau de neurones à action directe, tandis que dans d'autres cas, il est limité à des réseaux spécifiques (par exemple, avec des fonctions d'activation spécifiques, ou avec des couches entièrement connectées, ou entraînés par l'algorithme perceptron).

Voir également

Les références

Liens externes