Un exemple de réseau avec rétropropagation. Algorithme de rétro-propagation

Méthode de rétropropagation

Méthode rétropropagation erreurs - une méthode de formation d'un perceptron multicouche, une des options d'apprentissage supervisé. La méthode a été décrite pour la première fois par Paul J. Verbos. Développé de manière significative en 1986 par David I. Rumelhart, J. E. Hinton et Ronald J. Williams. Il s'agit d'un algorithme de gradient itératif utilisé pour minimiser l'erreur de fonctionnement d'un perceptron multicouche et obtenir le résultat souhaité.

L'idée principale de cette méthode est de propager les signaux d'erreur depuis les sorties du réseau vers ses entrées, dans le sens opposé à la propagation directe des signaux en fonctionnement normal. Bartsev et Okhonin ont immédiatement proposé méthode générale(« principe de dualité »), applicable à une classe plus large de systèmes, y compris les systèmes retardés, les systèmes distribués, etc.

La méthode est une modification méthode classique Descente graduelle.

Algorithme de rétropropagation

Disons un réseau de rétroaction multicouche avec des coefficients de pondération aléatoires. Il existe un ensemble de formation composé de paires d'entrée réseau - sortie souhaitée. Notons Y la valeur réelle de sortie de notre réseau, qui au début est presque aléatoire en raison du caractère aléatoire des coefficients de pondération.

La formation consiste à sélectionner des coefficients de pondération de manière à minimiser certaines fonctions objectives. Comme fonction objectif Considérons la somme des carrés des erreurs de réseau à l'aide d'exemples de l'ensemble de formation.

où est la sortie réelle de la N-ème couche de sortie du réseau pour le p-ème neurone sur le j-ème exemple d'entraînement, la sortie souhaitée. Autrement dit, en minimisant une telle fonctionnelle, nous obtenons une solution en utilisant la méthode moindres carrés.

Puisque les coefficients de pondération entrent dans la dépendance de manière non linéaire, nous utiliserons la méthode pour trouver le minimum descente la plus raide. C'est-à-dire qu'à chaque étape d'apprentissage nous modifierons les coefficients de pondération selon la formule

où est le coefficient de poids du j-ième neurone de la n-ième couche pour la communication avec i-ème neurone(n-1)ème couche.

Le paramètre est appelé paramètre de taux d’apprentissage.

Ainsi, il est nécessaire de déterminer les dérivées partielles de la fonction objectif E sur tous les coefficients de pondération du réseau. D'après les règles de différenciation d'une fonction complexe

où est la sortie et est la somme pondérée des entrées du j-ième neurone de la n-ième couche. A noter que, connaissant la fonction d'activation, on peut calculer. Par exemple, pour un sigmoïde cette valeur sera égale à

Le troisième facteur / n'est rien de plus que la sortie du i-ème neurone de la (n-1)-ème couche, c'est-à-dire

Les dérivées partielles de la fonction objectif par rapport aux poids des neurones de la couche de sortie peuvent désormais être facilement calculées. En différenciant (1) par et en tenant compte de (3) et (5) nous aurons

Introduisons la notation

Puis pour les neurones de la couche de sortie

Pour les poids des neurones couches internes nous ne pouvons pas immédiatement écrire à quoi est égal le premier facteur de (4), mais il peut être représenté comme suit :

Notez que dans cette formule, les deux premiers facteurs ne sont rien de plus. Ainsi, en utilisant (9), il est possible d'exprimer les valeurs des neurones de la nième couche en termes de neurones de la (n+1)ième couche. Puisque pour la dernière couche il est facile de calculer par (8), il est possible d'utiliser la formule récursive

obtenez des valeurs pour tous les neurones de toutes les couches.

Enfin, la formule (2) de modification des coefficients de pondération peut s'écrire sous la forme

Ainsi, l'algorithme d'apprentissage complet réseau neuronal l'utilisation de l'algorithme de rétropropagation est construite comme suit.

Nous attribuons des coefficients de pondération aléatoires à tous les poids de réseau Valeurs initiales. Dans ce cas, le réseau effectuera certaines transformation aléatoire les signaux d'entrée et les valeurs de la fonction objectif (1) seront grands.

Alimentez l’un des vecteurs d’entrée de l’ensemble d’entraînement vers l’entrée réseau. Calculez les valeurs de sortie du réseau, tout en mémorisant les valeurs de sortie de chacun des neurones.

Ajustez les pondérations du réseau :

Évaluation des performances du réseau

Dans les cas où il est possible d'évaluer les performances du réseau, la formation des réseaux de neurones peut être représentée comme un problème d'optimisation. Évaluer signifie indiquer quantitativement si le réseau résout bien ou mal les tâches qui lui sont assignées. A cet effet, une fonction d'évaluation est construite. En règle générale, cela dépend explicitement des signaux de sortie du réseau et implicitement (par le biais du fonctionnement) de tous ses paramètres. L'exemple d'évaluation le plus simple et le plus courant est la somme des carrés des distances entre les signaux de sortie du réseau et leurs valeurs requises :

où est la valeur requise du signal de sortie.

La méthode des moindres carrés n'est pas toujours meilleur choixévaluations. Une conception soignée de la fonction d'évaluation permet d'augmenter l'efficacité de la formation en réseau d'un ordre de grandeur, ainsi que d'obtenir Informations Complémentaires- « niveau de confiance » du réseau dans la réponse donnée.

Inconvénients de l'algorithme

Malgré de nombreux candidatures réussies la rétropropagation n’est pas une panacée. Ce qui pose le plus de problèmes, c'est le processus d'apprentissage indéfiniment long. DANS tâches complexes La formation du réseau peut prendre des jours, voire des semaines, ou même ne pas apprendre du tout. La raison peut être l’une de celles décrites ci-dessous.

Paralysie du réseau

Au cours du processus de formation du réseau, les valeurs des poids peuvent devenir très importantes suite à la correction. grandes quantités. Cela peut entraîner le fonctionnement de tous ou de la plupart des neurones à un niveau très élevé. grandes valeurs OUT, dans la région où la dérivée de la fonction de compression est très petite. Puisque l’erreur renvoyée lors du processus d’apprentissage est proportionnelle à cette dérivée, le processus d’apprentissage peut pratiquement se figer. D'un point de vue théorique, ce problème est mal compris. Ceci est généralement évité en diminuant la taille du pas h, mais cela augmente le temps d'entraînement. Diverses heuristiques ont été utilisées pour prévenir ou guérir de la paralysie, mais pour l’instant elles ne peuvent être considérées que comme expérimentales.

Minimums locaux

La rétropropagation utilise une forme de descente de gradient, c'est-à-dire qu'elle descend le long de la surface d'erreur, ajustant continuellement les poids vers le minimum. La surface d'erreur d'un réseau complexe est très accidentée et se compose de collines, de vallées, de plis et de ravins dans un espace de grande dimension. Le réseau peut tomber dans un minimum local (vallée peu profonde) alors qu'il y en a beaucoup plus à proximité profond et bas. À ce point minimum local toutes les directions mènent vers le haut et le réseau est incapable d’en sortir. La principale difficulté de la formation des réseaux de neurones réside précisément dans les méthodes de sortie des minima locaux : à chaque fois que l'on quitte un minimum local, le minimum local suivant est à nouveau recherché en utilisant la même méthode de rétropropagation d'erreur jusqu'à ce qu'il ne soit plus possible d'en sortir. .

Taille de pas

Un examen attentif de la preuve de convergence montre que les corrections de poids sont supposées infinitésimales. Il est clair que cela n’est pas réalisable en pratique, car cela conduit à un temps d’apprentissage interminable. La taille du pas doit être considérée comme finie. Si la taille du pas est fixe et très petite, alors la convergence est trop lente ; si elle est fixe et trop grande, une paralysie ou une instabilité constante peut se produire. Augmentez efficacement le pas jusqu'à ce que le score cesse de s'améliorer dans cette direction anti-gradient et réduire si une telle amélioration ne se produit pas. P. D. Wasserman a décrit un algorithme de sélection adaptative des étapes qui ajuste automatiquement la taille des étapes pendant le processus d'apprentissage. Le livre de A. N. Gorban propose une technologie étendue pour optimiser l'apprentissage.

Il convient également de noter que le réseau peut être recyclé, ce qui est très probablement le résultat d'une conception erronée de sa topologie. Quand aussi grandes quantités neurones, la capacité du réseau à généraliser l’information est perdue. L'ensemble des images fournies pour la formation sera appris par le réseau, mais toute autre image, même très similaire, pourra être mal classée.

Environnement de développement et raisons de le choisir

L'application sera développée dans le langage de programmation C# avec le framework .NETFramework4.0 dans l'environnement de développement MicrosoftVisualStudio 2010. Les fragments de code nécessitant des calculs massifs sont développés en C++. MSVisualStudio 2010 inclut ensemble complet des fonctionnalités nouvelles et améliorées qui simplifient chaque étape du processus de développement, de la conception au déploiement.

MicrosoftVisualStudio 2010 Ultimate est un environnement d'outils intégré et une infrastructure de serveur qui simplifie le processus global de développement d'applications. Les applications métier sont créées à l’aide de processus efficaces, prévisibles et personnalisables. Des analyses détaillées augmentent la transparence et la traçabilité de tout cycle de vie applications. Tant lors de la création de nouvelles solutions que lors de la modification de solutions existantes, le développement utilisant des outils puissants le prototypage, la conception d'architecture et le développement qui permettent de développer des applications pour une variété de plates-formes et de technologies, telles que le cloud computing et le traitement parallèle. Capacités de coordination avancées activités conjointes ainsi que des outils de test et de débogage intégrés et innovants amélioreront la productivité des équipes et fourniront des solutions de haute qualité à faible coût.

Le développement d'applications dans MicrosoftVisualStudio2010 Ultimate en C# avec le framework .NETFramework4.0 est réalisé à l'aide d'une programmation orientée objet et d'une programmation visuelle.

Erreurs des sorties du réseau vers ses entrées, dans le sens opposé à la propagation directe des signaux en fonctionnement normal. Bartsev et Okhonin ont immédiatement proposé une méthode générale (« principe de dualité »), applicable à une classe plus large de systèmes, incluant les systèmes à retard, les systèmes distribués, etc.

Pour pouvoir utiliser la méthode de rétropropagation, la fonction de transfert des neurones doit être différentiable. La méthode est une modification de la méthode classique de descente de gradient.

Fonctions d'activation sigmoïde

Les types de sigmoïdes suivants sont le plus souvent utilisés comme fonctions d'activation :

Fonction de Fermi (sigmoïde exponentielle) :

Sigmoïde rationnel :

Tangente hyperbolique :

,

où s est la sortie de l'additionneur de neurones et est une constante arbitraire.

Le calcul de la sigmoïde rationnelle nécessite le moins de temps CPU par rapport aux autres sigmoïdes. Le calcul de la tangente hyperbolique nécessite le plus de cycles de processeur. Par rapport aux fonctions d’activation de seuil, les sigmoïdes sont calculées très lentement. Si, après la sommation dans la fonction seuil, vous pouvez immédiatement commencer à comparer avec une certaine valeur (seuil), alors dans le cas d'une fonction d'activation sigmoïde, vous devez calculer la sigmoïde (passer du temps dans le meilleur cas de scenario en trois opérations : prendre le module, additionner et diviser), et ensuite seulement le comparer à une valeur seuil (par exemple zéro). Si nous supposons que toutes les opérations les plus simples sont calculées par le processeur à peu près en même temps, alors le fonctionnement de la fonction d'activation sigmoïde après la sommation (qui prendra le même temps) sera plus lent que la fonction d'activation de seuil d'un facteur de 1:4.

Fonction d'évaluation du réseau

Dans les cas où il est possible d'évaluer les performances du réseau, la formation des réseaux de neurones peut être représentée comme un problème d'optimisation. Évaluer signifie indiquer quantitativement si le réseau résout bien ou mal les tâches qui lui sont assignées. A cet effet, une fonction d'évaluation est construite. En règle générale, cela dépend explicitement des signaux de sortie du réseau et implicitement (par le biais du fonctionnement) de tous ses paramètres. L'exemple d'évaluation le plus simple et le plus courant est la somme des carrés des distances entre les signaux de sortie du réseau et leurs valeurs requises :

,

où est la valeur requise du signal de sortie.

Description de l'algorithme

Architecture Perceptron multicouche

L'algorithme de rétropropagation est appliqué à un perceptron multicouche. Un réseau comporte de nombreuses entrées, de nombreuses sorties et de nombreux nœuds internes. Renumérotons tous les nœuds (y compris les entrées et sorties) avec des numéros de 1 à N (numérotation continue, quelle que soit la topologie des couches). Désignons par le poids posé sur le bord reliant les i-ème et j-ème nœuds, et par la sortie du i-ème nœud. Si l'on connaît l'exemple de formation (les bonnes réponses du réseau,), alors la fonction d'erreur obtenue par la méthode des moindres carrés ressemble à ceci :

Comment modifier les poids ? Nous mettrons en œuvre la descente de gradient stochastique, c'est-à-dire que nous ajusterons les poids après chaque exemple d'entraînement et, ainsi, « nous déplacerons » dans l'espace multidimensionnel des poids. Pour « arriver » à l'erreur minimale, nous devons « évoluer » dans la direction opposée au gradient, c'est-à-dire qu'en fonction de chaque groupe de réponses correctes, ajouter à chaque poids

,

où est un multiplicateur qui spécifie la vitesse du « mouvement ».

La dérivée est calculée comme suit. Laissez d’abord entrer dans le neurone le poids qui nous intéresse. dernier niveau. Premièrement, nous notons que cela affecte la sortie du réseau uniquement dans le cadre de la somme, la somme étant reprise sur les entrées du j-ème nœud. C'est pourquoi

De même, cela affecte l’erreur globale uniquement dans la sortie du jème nœud (rappelez-vous qu’il s’agit de la sortie de l’ensemble du réseau). C'est pourquoi

Si jème nœud- pas au dernier niveau, alors il y a des sorties ; notons-les par Children(j). Dans ce cas

, .

Eh bien, c'est exactement une correction similaire, mais calculée pour le nœud du niveau suivant, nous la désignerons par - elle en diffère par l'absence de multiplicateur. Puisque nous avons appris à calculer la correction pour les nœuds du dernier niveau et à exprimer la correction pour un nœud plus niveau faible grâce à des corrections plus élevées, vous pouvez déjà écrire un algorithme. C'est en raison de cette fonctionnalité de calcul des corrections que l'algorithme est appelé algorithme de rétropropagation(rétropropagation). Bref résumé du travail effectué :

  • pour le nœud de dernier niveau
  • pour nœud de réseau interne
  • pour tous les nœuds

L'algorithme résultant est présenté ci-dessous. En entrée de l'algorithme, en plus des paramètres spécifiés, il est également nécessaire de soumettre la structure du réseau dans un certain format. En pratique, de très bons résultats sont montrés par des réseaux d'une structure assez simple, constitués de deux niveaux de neurones - un niveau caché (unités cachées) et des neurones de sortie (unités de sortie) ; chaque entrée du réseau est connectée à tous les neurones cachés, et le résultat du travail de chaque neurone caché est transmis à l'entrée de chacun des neurones de sortie. Dans ce cas, il suffit de fournir en entrée le nombre de neurones de niveau caché.

Algorithme

Algorithme: RetourPropagation

où est le coefficient d'inertie pour lisser les sauts brusques lors du déplacement le long de la surface de la fonction objectif

Interprétation mathématique de la formation des réseaux neuronaux

A chaque itération de l'algorithme de rétropropagation, les poids du réseau de neurones sont modifiés pour améliorer la solution d'un exemple. Ainsi, au cours du processus d’apprentissage, les problèmes d’optimisation monocritère sont résolus de manière cyclique.

La formation sur les réseaux neuronaux se caractérise par quatre limitations spécifiques qui distinguent la formation sur les réseaux neuronaux : Tâches communes optimisation : un nombre astronomique de paramètres, la nécessité d'un parallélisme élevé lors de l'apprentissage, le caractère multicritère des problèmes à résoudre, la nécessité de trouver un domaine assez large dans lequel les valeurs de toutes les fonctions minimisées sont proches du minimum. Sinon, le problème d’apprentissage peut généralement être formulé comme un problème de minimisation des scores. La prudence dans la phrase précédente (« généralement ») est due au fait qu'en fait nous ne connaissons pas et ne connaîtrons jamais toutes les tâches possibles des réseaux de neurones, et peut-être que quelque part dans l'inconnu il existe des tâches irréductibles à la minimisation des réseaux de neurones. estimation. Minimiser l'évaluation - problème complexe: il existe un nombre astronomique de paramètres (par exemple exemples standards, implémenté sur PC - de 100 à 1 000 000), le relief adaptatif (graphe d'estimation en fonction de paramètres réglables) est complexe et peut contenir de nombreux minima locaux.

Inconvénients de l'algorithme

Malgré de nombreuses applications réussies de la rétropropagation, ce n’est pas une panacée. Ce qui pose le plus de problèmes, c'est le processus d'apprentissage indéfiniment long. Dans le cas de problèmes complexes, la formation du réseau peut prendre des jours, voire des semaines, voire même ne pas apprendre du tout. La raison peut être l’une de celles décrites ci-dessous.

Paralysie du réseau

Au cours du processus de formation du réseau, les valeurs de poids peuvent devenir très importantes à la suite d'une correction. Cela peut entraîner le fonctionnement de la totalité ou de la plupart des neurones à des valeurs OUT très élevées, dans une région où la dérivée de la fonction de contraction est très petite. Puisque l’erreur renvoyée lors du processus d’apprentissage est proportionnelle à cette dérivée, le processus d’apprentissage peut pratiquement se figer. D'un point de vue théorique, ce problème est mal compris. Ceci est généralement évité en diminuant la taille du pas η, mais cela augmente le temps de formation. Diverses heuristiques ont été utilisées pour prévenir ou guérir de la paralysie, mais pour l’instant elles ne peuvent être considérées que comme expérimentales.

Minimums locaux

La rétropropagation utilise une forme de descente de gradient, c'est-à-dire qu'elle descend le long de la surface d'erreur, ajustant continuellement les poids vers le minimum. La surface d'erreur d'un réseau complexe est très accidentée et se compose de collines, de vallées, de plis et de ravins dans un espace de grande dimension. Un réseau peut tomber dans un minimum local (vallée peu profonde) lorsqu'il existe un minimum beaucoup plus profond à proximité. À un point minimum local, toutes les directions pointent vers le haut et le réseau est incapable d’y échapper. La principale difficulté dans la formation des réseaux de neurones réside précisément dans les méthodes permettant d'échapper aux minima locaux : chaque fois que l'on quitte un minimum local, le minimum local suivant est à nouveau recherché en utilisant la même méthode de rétropropagation d'erreur jusqu'à ce qu'il ne soit plus possible de trouver une issue à il.

Taille de pas

Un examen attentif de la preuve de convergence montre que les corrections de poids sont supposées infinitésimales. Il est clair que cela n’est pas réalisable en pratique, car cela conduit à un temps d’apprentissage interminable. La taille du pas doit être considérée comme finie. Si la taille du pas est fixe et très petite, alors la convergence est trop lente ; si elle est fixe et trop grande, une paralysie ou une instabilité constante peut se produire. Il est efficace d'augmenter le pas jusqu'à ce que l'amélioration de l'estimation dans une direction donnée de l'antigradient s'arrête et de le diminuer si une telle amélioration ne se produit pas. P. D. Wasserman a décrit un algorithme de sélection adaptative des étapes qui ajuste automatiquement la taille des étapes pendant le processus d'apprentissage. Le livre de A. N. Gorban propose une technologie étendue pour optimiser l'apprentissage.

Il convient également de noter que le réseau peut être recyclé, ce qui est très probablement le résultat d'une conception erronée de sa topologie. Avec trop de neurones, la capacité du réseau à généraliser l’information est perdue. L'ensemble des images fournies pour la formation sera appris par le réseau, mais toute autre image, même très similaire, pourra être mal classée.

voir également

  • Algorithme de gradient de vitesse

Littérature

  1. Wasserman F. Neuroinformatique : théorie et pratique. - M. : « Mir », 1992.
  2. Khaikin S. Les réseaux de neurones: Cours complet. Par. de l'anglais N.N. Kussul, A. Yu. Shelestova. 2e éd., rév. - M. : Maison d'édition Williams, 2008, 1 103 p.

Liens

  1. Koposov A.I., Shcherbakov I.B., Kislenko N.A., Kislenko O.P., Varivoda Yu. et al.. - M. : VNIIGAZ, 1995.

Erreurs des sorties du réseau vers ses entrées, dans le sens opposé à la propagation directe des signaux en fonctionnement normal. Bartsev et Okhonin ont immédiatement proposé une méthode générale (« principe de dualité »), applicable à une classe plus large de systèmes, incluant les systèmes à retard, les systèmes distribués, etc.

Pour pouvoir utiliser la méthode de rétropropagation, la fonction de transfert des neurones doit être différentiable. La méthode est une modification de la méthode classique de descente de gradient.

Fonctions d'activation sigmoïde

Les types de sigmoïdes suivants sont le plus souvent utilisés comme fonctions d'activation :

Fonction de Fermi (sigmoïde exponentielle) :

Sigmoïde rationnel :

Tangente hyperbolique :

,

où s est la sortie de l'additionneur de neurones et est une constante arbitraire.

Le calcul de la sigmoïde rationnelle nécessite le moins de temps CPU par rapport aux autres sigmoïdes. Le calcul de la tangente hyperbolique nécessite le plus de cycles de processeur. Par rapport aux fonctions d’activation de seuil, les sigmoïdes sont calculées très lentement. Si, après sommation dans une fonction de seuil, vous pouvez immédiatement commencer une comparaison avec une certaine valeur (seuil), alors dans le cas d'une fonction d'activation sigmoïde, vous devez calculer la sigmoïde (en passant du temps, au mieux, sur trois opérations : prendre le module, additionner et diviser), et ensuite seulement comparer avec la valeur seuil (par exemple, zéro). Si nous supposons que toutes les opérations les plus simples sont calculées par le processeur à peu près en même temps, alors le fonctionnement de la fonction d'activation sigmoïde après la sommation (qui prendra le même temps) sera plus lent que la fonction d'activation de seuil d'un facteur de 1:4.

Fonction d'évaluation du réseau

Dans les cas où il est possible d'évaluer les performances du réseau, la formation des réseaux de neurones peut être représentée comme un problème d'optimisation. Évaluer signifie indiquer quantitativement si le réseau résout bien ou mal les tâches qui lui sont assignées. A cet effet, une fonction d'évaluation est construite. En règle générale, cela dépend explicitement des signaux de sortie du réseau et implicitement (par le biais du fonctionnement) de tous ses paramètres. L'exemple d'évaluation le plus simple et le plus courant est la somme des carrés des distances entre les signaux de sortie du réseau et leurs valeurs requises :

,

où est la valeur requise du signal de sortie.

Description de l'algorithme

Architecture Perceptron multicouche

L'algorithme de rétropropagation est appliqué à un perceptron multicouche. Un réseau comporte de nombreuses entrées, de nombreuses sorties et de nombreux nœuds internes. Renumérotons tous les nœuds (y compris les entrées et sorties) avec des numéros de 1 à N (numérotation continue, quelle que soit la topologie des couches). Désignons par le poids posé sur le bord reliant les i-ème et j-ème nœuds, et par la sortie du i-ème nœud. Si l'on connaît l'exemple de formation (les bonnes réponses du réseau,), alors la fonction d'erreur obtenue par la méthode des moindres carrés ressemble à ceci :

Comment modifier les poids ? Nous mettrons en œuvre la descente de gradient stochastique, c'est-à-dire que nous ajusterons les poids après chaque exemple d'entraînement et, ainsi, « nous déplacerons » dans l'espace multidimensionnel des poids. Pour « arriver » à l'erreur minimale, nous devons « évoluer » dans la direction opposée au gradient, c'est-à-dire qu'en fonction de chaque groupe de réponses correctes, ajouter à chaque poids

,

où est un multiplicateur qui spécifie la vitesse du « mouvement ».

La dérivée est calculée comme suit. Laissez d'abord, c'est-à-dire le poids qui nous intéresse, entrer dans le neurone du dernier niveau. Premièrement, nous notons que cela affecte la sortie du réseau uniquement dans le cadre de la somme, la somme étant reprise sur les entrées du j-ème nœud. C'est pourquoi

De même, cela affecte l’erreur globale uniquement dans la sortie du jème nœud (rappelez-vous qu’il s’agit de la sortie de l’ensemble du réseau). C'est pourquoi

Si le j-ième nœud n’est pas au dernier niveau, alors il a des sorties ; notons-les par Children(j). Dans ce cas

, .

Eh bien, c'est exactement une correction similaire, mais calculée pour le nœud du niveau suivant, nous la désignerons par - elle en diffère par l'absence de multiplicateur. Puisque nous avons appris à calculer la correction pour les nœuds du dernier niveau et à exprimer la correction pour un nœud d'un niveau inférieur à travers les corrections d'un niveau supérieur, nous pouvons déjà écrire un algorithme. C'est en raison de cette fonctionnalité de calcul des corrections que l'algorithme est appelé algorithme de rétropropagation(rétropropagation). Bref résumé du travail effectué :

  • pour le nœud de dernier niveau
  • pour nœud de réseau interne
  • pour tous les nœuds

L'algorithme résultant est présenté ci-dessous. En entrée de l'algorithme, en plus des paramètres spécifiés, il est également nécessaire de soumettre la structure du réseau dans un certain format. En pratique, de très bons résultats sont montrés par des réseaux d'une structure assez simple, constitués de deux niveaux de neurones - un niveau caché (unités cachées) et des neurones de sortie (unités de sortie) ; chaque entrée du réseau est connectée à tous les neurones cachés, et le résultat du travail de chaque neurone caché est transmis à l'entrée de chacun des neurones de sortie. Dans ce cas, il suffit de fournir en entrée le nombre de neurones de niveau caché.

Algorithme

Algorithme: RetourPropagation

où est le coefficient d'inertie pour lisser les sauts brusques lors du déplacement le long de la surface de la fonction objectif

Interprétation mathématique de la formation des réseaux neuronaux

A chaque itération de l'algorithme de rétropropagation, les poids du réseau de neurones sont modifiés pour améliorer la solution d'un exemple. Ainsi, au cours du processus d’apprentissage, les problèmes d’optimisation monocritère sont résolus de manière cyclique.

La formation sur les réseaux de neurones se caractérise par quatre limitations spécifiques qui distinguent la formation sur les réseaux de neurones des problèmes généraux d'optimisation : un nombre astronomique de paramètres, la nécessité d'un parallélisme élevé lors de la formation, le caractère multicritère des problèmes à résoudre et la nécessité de trouver un zone suffisamment large dans laquelle les valeurs de toutes les fonctions minimisées sont proches du minimum. Autrement, le problème d’apprentissage peut généralement être formulé comme un problème de minimisation des scores. La prudence dans la phrase précédente (« généralement ») est due au fait qu'en fait nous ne connaissons pas et ne connaîtrons jamais toutes les tâches possibles des réseaux de neurones, et peut-être que quelque part dans l'inconnu il existe des tâches irréductibles à la minimisation des réseaux de neurones. estimation. Minimiser une estimation est un problème complexe : il existe un nombre astronomique de paramètres (pour les exemples standards implémentés sur PC - de 100 à 1 000 000), le relief adaptatif (le graphe d'évaluation en fonction des paramètres ajustés) est complexe et peut contenir de nombreux minima locaux.

Inconvénients de l'algorithme

Malgré de nombreuses applications réussies de la rétropropagation, ce n’est pas une panacée. Ce qui pose le plus de problèmes, c'est le processus d'apprentissage indéfiniment long. Dans le cas de problèmes complexes, la formation du réseau peut prendre des jours, voire des semaines, voire même ne pas apprendre du tout. La raison peut être l’une de celles décrites ci-dessous.

Paralysie du réseau

Au cours du processus de formation du réseau, les valeurs de poids peuvent devenir très importantes à la suite d'une correction. Cela peut entraîner le fonctionnement de la totalité ou de la plupart des neurones à des valeurs OUT très élevées, dans une région où la dérivée de la fonction de contraction est très petite. Puisque l’erreur renvoyée lors du processus d’apprentissage est proportionnelle à cette dérivée, le processus d’apprentissage peut pratiquement se figer. D'un point de vue théorique, ce problème est mal compris. Ceci est généralement évité en diminuant la taille du pas η, mais cela augmente le temps de formation. Diverses heuristiques ont été utilisées pour prévenir ou guérir de la paralysie, mais pour l’instant elles ne peuvent être considérées que comme expérimentales.

Minimums locaux

La rétropropagation utilise une forme de descente de gradient, c'est-à-dire qu'elle descend le long de la surface d'erreur, ajustant continuellement les poids vers le minimum. La surface d'erreur d'un réseau complexe est très accidentée et se compose de collines, de vallées, de plis et de ravins dans un espace de grande dimension. Un réseau peut tomber dans un minimum local (vallée peu profonde) lorsqu'il existe un minimum beaucoup plus profond à proximité. À un point minimum local, toutes les directions pointent vers le haut et le réseau est incapable d’y échapper. La principale difficulté dans la formation des réseaux de neurones réside précisément dans les méthodes permettant d'échapper aux minima locaux : chaque fois que l'on quitte un minimum local, le minimum local suivant est à nouveau recherché en utilisant la même méthode de rétropropagation d'erreur jusqu'à ce qu'il ne soit plus possible de trouver une issue à il.

Taille de pas

Un examen attentif de la preuve de convergence montre que les corrections de poids sont supposées infinitésimales. Il est clair que cela n’est pas réalisable en pratique, car cela conduit à un temps d’apprentissage interminable. La taille du pas doit être considérée comme finie. Si la taille du pas est fixe et très petite, alors la convergence est trop lente ; si elle est fixe et trop grande, une paralysie ou une instabilité constante peut se produire. Il est efficace d'augmenter le pas jusqu'à ce que l'amélioration de l'estimation dans une direction donnée de l'antigradient s'arrête et de le diminuer si une telle amélioration ne se produit pas. P. D. Wasserman a décrit un algorithme de sélection adaptative des étapes qui ajuste automatiquement la taille des étapes pendant le processus d'apprentissage. Le livre de A. N. Gorban propose une technologie étendue pour optimiser l'apprentissage.

Il convient également de noter que le réseau peut être recyclé, ce qui est très probablement le résultat d'une conception erronée de sa topologie. Avec trop de neurones, la capacité du réseau à généraliser l’information est perdue. L'ensemble des images fournies pour la formation sera appris par le réseau, mais toute autre image, même très similaire, pourra être mal classée.

voir également

  • Algorithme de gradient de vitesse

Littérature

  1. Wasserman F. Neuroinformatique : théorie et pratique. - M. : « Mir », 1992.
  2. Khaikin S. Réseaux de neurones : Cours complet. Par. de l'anglais N.N. Kussul, A. Yu. Shelestova. 2e éd., rév. - M. : Maison d'édition Williams, 2008, 1103 p.

Liens

  1. Koposov A.I., Shcherbakov I.B., Kislenko N.A., Kislenko O.P., Varivoda Yu. et al.. - M. : VNIIGAZ, 1995.

L'algorithme de rétropropagation est l'une des méthodes de formation des réseaux neuronaux multicouches à action directe, également appelés perceptrons multicouches. Les perceptrons multicouches ont été utilisés avec succès pour résoudre de nombreux problèmes complexes.

La formation avec l'algorithme de rétropropagation implique deux passages à travers toutes les couches du réseau : avant et arrière. Lors du passage aller, le vecteur d'entrée est transmis à la couche d'entrée du réseau neuronal, puis se propage à travers le réseau de couche en couche. En conséquence, un ensemble de signaux de sortie est généré, qui constitue la réponse réelle du réseau à une image d’entrée donnée. Lors du passage vers l'avant, tous les poids synaptiques du réseau sont fixes. Lors du passage en arrière, tous les poids synaptiques sont ajustés selon une règle de correction d'erreur, à savoir : la sortie réelle du réseau est soustraite de la sortie souhaitée, ce qui entraîne un signal d'erreur. Ce signal se propage ensuite dans tout le réseau dans le sens opposé au sens des connexions synaptiques. D'où le nom - algorithme de rétropropagation. Les poids synaptiques sont ajustés pour rapprocher le plus possible la sortie du réseau de celle souhaitée.

Examinons plus en détail le fonctionnement de l'algorithme. Supposons que vous deviez entraîner le réseau neuronal suivant à l'aide de l'algorithme de rétropropagation :

Les symboles suivants sont utilisés dans la figure :

Comme fonction d'activation dans les perceptrons multicouches, on utilise généralement une fonction d'activation sigmoïde, notamment logistique :

où est le paramètre de pente de la fonction sigmoïde. En modifiant ce paramètre, vous pouvez construire des fonctions avec différentes pentes. Réservons que pour tous les arguments ultérieurs nous utiliserons précisément la fonction d'activation logistique, représentée uniquement par la formule ci-dessus.

Le sigmoïde réduit la plage de variation de sorte que la valeur se situe entre zéro et un. Les réseaux de neurones multicouches ont un plus grand pouvoir de représentation que les réseaux de neurones monocouches uniquement en présence de non-linéarité. La fonction de compression fournit la non-linéarité requise. En réalité, de nombreuses fonctions pourraient être utilisées. L'algorithme de rétropropagation exige seulement que la fonction soit différentiable partout. Le sigmoïde satisfait à cette exigence. Il présente l’avantage supplémentaire d’un contrôle automatique du gain. Pour les signaux faibles (c'est-à-dire proches de zéro), la courbe entrée-sortie présente une forte pente, ce qui donne un gain important. À mesure que l’amplitude du signal augmente, le gain diminue. De cette manière, les gros signaux sont acceptés par le réseau sans saturation, et les petits signaux traversent le réseau sans atténuation excessive.

Le but de la formation en réseau L'algorithme de rétropropagation est un ajustement de ses poids de telle sorte que l'application d'un certain ensemble d'entrées conduit à l'ensemble de sorties requis. Par souci de concision, ces ensembles d’entrées et de sorties seront appelés vecteurs. Pendant la formation, on suppose que pour chaque vecteur d'entrée, il existe un vecteur cible associé, qui spécifie la sortie requise. Ensemble, ils forment un duo d'entraînement. Le réseau est formé sur de nombreuses paires.

Suivant:

  1. Initialisez les poids synaptiques avec de petites valeurs aléatoires.
  2. Sélectionnez la paire d'entraînement suivante dans l'ensemble d'entraînement ; soumettre le vecteur d’entrée à l’entrée réseau.
  3. Calculez la sortie du réseau.
  4. Calculez la différence entre la sortie du réseau et la sortie requise (vecteur cible de la paire de formation).
  5. Ajustez les pondérations du réseau pour minimiser les erreurs (comme voir ci-dessous).
  6. Répétez les étapes 2 à 5 pour chaque vecteur de l’ensemble d’apprentissage jusqu’à ce que l’erreur sur l’ensemble de l’ensemble atteigne un niveau acceptable.

Les opérations effectuées par les étapes 2 et 3 sont similaires à celles effectuées lorsque le réseau est déjà formé, c'est-à-dire un vecteur d'entrée est donné et la sortie résultante est calculée. Les calculs sont effectués couche par couche. En figue. 1, les sorties des neurones de la couche sont d'abord calculées (la couche est l'entrée, ce qui signifie qu'aucun calcul n'y a lieu), puis elles sont utilisées comme entrées de la couche, les sorties des neurones de la couche sont calculées , qui forment le vecteur de sortie du réseau. Les étapes 2 et 3 forment ce que l'on appelle un « passage direct » lorsque le signal se propage à travers le réseau, de l'entrée à la sortie.

Les étapes 4 et 5 constituent un "backpass", où le signal d'erreur calculé est propagé à travers le réseau et utilisé pour ajuster les poids.

Examinons de plus près l'étape 5 : ajuster les pondérations du réseau. Deux cas décrits ci-dessous doivent être soulignés ici.

Cas 1. Ajustement des poids synaptiques de la couche de sortie

Par exemple, pour le modèle de réseau neuronal de la Fig. 1, il s'agira de poids portant les désignations suivantes : et . Décidons que l'indice désignera le neurone d'où sort le poids synaptique, et le neurone dans lequel il entre :

Introduisons la valeur , qui est égale à la différence entre les sorties requises et réelles, multipliée par la dérivée de la fonction d'activation logistique (voir la formule de la fonction d'activation logistique ci-dessus) :

Ensuite, les poids de la couche de sortie après correction seront égaux à :

Voici un exemple de calculs de poids synaptique :

Cas 2. Ajustement des poids synaptiques de la couche cachée

Pour le modèle de réseau neuronal de la Fig. 1, ce seront les poids correspondant aux couches et . Décidons que l'indice désignera le neurone d'où sort le poids synaptique, et le neurone dans lequel il entre (notons l'apparition d'une nouvelle variable).

Dans les réseaux neuronaux multicouches, les valeurs de sortie optimales des neurones de toutes les couches sauf la dernière sont, en règle générale, inconnues ; un perceptron à trois couches ou plus ne peut plus être entraîné, guidé uniquement par les valeurs d'erreur ; aux sorties du réseau

L'une des options pour résoudre ce problème consiste à développer des ensembles de signaux de sortie correspondant à ceux d'entrée pour chaque couche du réseau neuronal, ce qui, bien entendu, est une opération très laborieuse et n'est pas toujours réalisable. pour ajuster dynamiquement les coefficients de pondération des synapses, au cours desquels, en règle générale, elles sont sélectionnées le plus liens faibles et changez légèrement dans un sens ou dans l'autre, et seules les modifications qui ont entraîné une diminution de l'erreur à la sortie de l'ensemble du réseau sont enregistrées. cette méthode, malgré

d'une apparente simplicité, nécessite des calculs de routine fastidieux. Et enfin, la troisième option, plus acceptable, est la propagation des signaux d'erreur des sorties du réseau neuronal vers ses entrées, dans le sens opposé à la propagation directe des signaux en fonctionnement normal. l'algorithme est appelé la procédure de rétropropagation (erreur de rétro-propagation) C'est lui qui est discuté ci-dessous

L'algorithme de rétropropagation est un algorithme d'apprentissage itératif par gradient utilisé pour minimiser écart-type courant provenant des sorties requises des réseaux neuronaux multicouches avec connexions série

Selon la méthode des moindres carrés, la fonction d'erreur cible du réseau neuronal à minimiser est la valeur

où est l'état de sortie réel du neurone au niveau de la couche de sortie du réseau neuronal lorsqu'une image est transmise à ses entrées, l'état de sortie requis de ce neurone

La sommation est effectuée sur tous les neurones de la couche de sortie et sur toutes les images traitées par le réseau. La minimisation par la méthode de descente de gradient assure l'ajustement des coefficients de poids comme suit.

où est le coefficient de pondération de la connexion synaptique reliant un neurone en couche à un neurone en couche - le coefficient de taux d'apprentissage,

Conformément à la règle de différenciation des fonctions complexes

où est la somme pondérée des signaux d'entrée du neurone et de l'argument de la fonction d'activation. Puisque la dérivée de la fonction d'activation doit être déterminée sur tout l'axe des abscisses, la fonction de saut d'unité et les autres fonctions d'activation avec inhomogénéités ne conviennent pas. les réseaux de neurones considérés. Ils utilisent les éléments suivants. fonctions fluides, Comment tangente hyperbolique ou une sigmoïde classique avec une exponentielle (voir tableau 1 1) Par exemple, dans le cas d'une tangente hyperbolique

Le troisième multiplicateur est égal à la sortie du neurone de la couche précédente

Quant au premier facteur de (1.11), il peut facilement être développé comme suit :

Ici la sommation est effectuée parmi les neurones de la couche en introduisant une nouvelle variable :

on obtient une formule récursive pour calculer les valeurs d'une couche à partir des valeurs d'une couche plus ancienne

Pour la couche de sortie :

Nous pouvons maintenant écrire (1.10) sous forme développée :

Parfois, pour donner une certaine inertie au processus de correction du poids, en atténuant les sauts brusques lors du déplacement le long de la surface de la fonction objectif, (1.17) est complété par la valeur du changement de poids lors de l'itération précédente.

où est le coefficient d'inertie ; numéro d’itération actuel.

Ainsi, l'algorithme complet de formation d'un réseau neuronal à l'aide de la procédure de rétropropagation est construit comme suit.

ÉTAPE 1. Appliquez l'une des images possibles aux entrées du réseau et, en mode de fonctionnement normal du réseau de neurones, lorsque les signaux se propagent des entrées aux sorties, calculez les valeurs de ces dernières. Rappelons que :

où est le nombre de neurones dans la couche, en tenant compte d'un neurone avec un état de sortie constant qui définit le biais ; entrée neuronale au niveau de la couche

où est le sigmoïde,

où est la composante vectorielle de l’image d’entrée.

ÉTAPE 4. Ajustez tous les poids du réseau neuronal :

ÉTAPE 5. Si l'erreur réseau est importante, passez à l'étape 1. Sinon, terminez.

Réseaux à l'étape 1 alternativement à ordre aléatoire Toutes les images d'entraînement sont présentées de manière à ce que le réseau, au sens figuré, n'en oublie pas certaines comme il en mémorise d'autres.

De l'expression (1.17), il s'ensuit que lorsque la valeur de sortie tend vers zéro, l'efficacité d'apprentissage diminue sensiblement. Avec les vecteurs d’entrée binaires, en moyenne la moitié des poids ne seront pas ajustés, donc la région valeurs possibles Il est souhaitable de décaler les sorties des neurones dans les limites obtenues par de simples modifications des fonctions logistiques. Par exemple, un sigmoïde avec une exponentielle est converti sous la forme :

Considérons la question de la capacité d'un réseau de neurones, c'est-à-dire du nombre d'images présentées à ses entrées qu'il peut apprendre à reconnaître. Pour les réseaux comportant plus de deux couches, cette question reste ouverte. Pour les réseaux à deux couches, la capacité déterministe du réseau est estimée comme suit :

où est le nombre de poids réglables, est le nombre de neurones dans la couche de sortie.

Cette expression a été obtenue en tenant compte de certaines restrictions. Premièrement, le nombre d'entrées et de neurones dans la couche cachée doit satisfaire l'inégalité. Deuxièmement, cependant, l'estimation ci-dessus a été faite pour des réseaux avec des fonctions d'activation de seuil de neurones, et la capacité des réseaux avec des fonctions d'activation douces, par exemple (1.23), est généralement plus grande. De plus, le terme déterministe signifie que l’estimation de capacité résultante est adaptée à tous les modèles d’entrée pouvant être représentés par les entrées. En réalité, la distribution des modèles d’entrée tend à avoir une certaine régularité, ce qui permet au réseau neuronal de se généraliser et ainsi d’augmenter sa capacité réelle. Depuis la diffusion des images, en cas général, n'est pas connue à l'avance, on ne peut parler de la capacité réelle qu'à titre provisoire, mais elle est généralement le double de la capacité déterministe.

La question de la capacité d'un réseau de neurones est étroitement liée à la question de la puissance requise de la couche de sortie du réseau qui effectue la classification finale des images. Par exemple, pour diviser un ensemble d’images d’entrée en deux classes, un neurone de sortie suffit. Dans ce cas, chaque niveau logique désignera une classe distincte. Sur deux neurones de sortie dotés d'une fonction d'activation de seuil, quatre classes peuvent être codées. Pour augmenter la fiabilité de la classification, il est souhaitable d'introduire une redondance en attribuant à chaque classe un neurone dans la couche de sortie ou, mieux encore, plusieurs, dont chacun est entraîné pour déterminer si une image appartient à une classe avec son propre degré de classification. confiance, par exemple : élevée, moyenne et faible. De tels réseaux de neurones permettent de classer les images d'entrée combinées en ensembles flous (flou ou entrecroisés). Cette propriété rapproche ces réseaux de conditions réelles fonctionnement des réseaux de neurones biologiques.

Le réseau de neurones en question en possède plusieurs » goulots d'étranglement" Premièrement, dans le processus, il y a de grandes choses positives ou valeurs négatives les poids peuvent déplacer le point de fonctionnement des sigmoïdes des neurones vers la région de saturation. De petites valeurs de la dérivée de la fonction logistique conduiront, conformément à (1.15) et (1.16), à un arrêt de l'apprentissage, qui paralyse le réseau. Deuxièmement, l’utilisation de la méthode de descente de gradient ne garantit pas de trouver le minimum global de la fonction objectif. Ceci est étroitement lié à la question du choix du taux d’apprentissage. Les incréments de poids et, par conséquent, le taux d'apprentissage pour trouver l'extremum doivent être infinitésimaux, mais dans ce cas l'apprentissage sera

se produit avec une lenteur inacceptable. En revanche, des ajustements trop importants des poids peuvent conduire à une instabilité permanente du processus d’apprentissage. Par conséquent, un nombre inférieur à 1 (par exemple 0,1) est généralement sélectionné comme coefficient de taux d'apprentissage 1], qui diminue progressivement au cours du processus d'apprentissage. De plus, pour éviter que le réseau ne tombe accidentellement dans les minima locaux, parfois, après stabilisation des valeurs des coefficients de pondération, 7 est significativement augmenté pendant une courte période pour démarrer Descente graduelle depuis nouveau point. Si répéter cette procédure plusieurs fois amène le réseau au même état, on peut supposer qu'un minimum global a été trouvé.

Il existe une autre méthode pour éliminer les minima locaux et la paralysie du réseau, qui consiste à utiliser des réseaux de neurones stochastiques.

Donnons à ce qui précède une interprétation géométrique.

Dans l'algorithme de rétropropagation, le vecteur gradient de la surface d'erreur est calculé. Ce vecteur indique la direction de la descente la plus courte le long de la surface à partir du point actuel, mouvement le long duquel conduit à une diminution de l'erreur. Une séquence d'étapes décroissantes conduira à un minimum d'un type ou d'un autre. La difficulté ici réside dans la sélection de la longueur des étapes.

À grande tailleétape, la convergence sera plus rapide, mais il y a un danger de sauter par-dessus la solution ou au cas où forme complexe l'erreur consiste à prendre la mauvaise direction, par exemple en se déplaçant le long d'un ravin étroit aux pentes abruptes, en sautant d'un côté à l'autre. Au contraire, quand petit pas et aller dans la bonne direction nécessitera de nombreuses itérations. En pratique, la taille du pas est considérée comme proportionnelle à l’inclinaison de la pente, de sorte que l’algorithme ralentisse près du minimum. Bon choix la vitesse d'apprentissage dépend de tâche spécifique et est généralement réalisé de manière expérimentale. Cette constante peut également dépendre du temps, diminuant au fur et à mesure de la progression de l'algorithme.

Généralement, cet algorithme est modifié pour inclure un terme d'impulsion (ou d'inertie). Cela favorise la progression dans une direction fixe, donc si plusieurs pas ont été effectués dans la même direction, l'algorithme augmente la vitesse, ce qui permet parfois d'éviter un minimum local, ainsi que de traverser plus rapidement des zones plates.

À chaque étape de l'algorithme, tous les exemples de formation sont transmis tour à tour à l'entrée du réseau, les valeurs de sortie réelles du réseau sont comparées aux valeurs requises et l'erreur est calculée. La valeur de l'erreur ainsi que le gradient de la surface d'erreur

utilisé pour ajuster la balance, après quoi toutes les actions sont répétées. Le processus d'apprentissage s'arrête soit lorsqu'un certain nombre d'époques s'est écoulé, soit lorsque l'erreur atteint un certain petit niveau, soit lorsque l'erreur cesse de diminuer.

Examinons plus en détail les problèmes de généralisation et de recyclage d'un réseau de neurones. La généralisation est la capacité d'un réseau neuronal à faire une prédiction précise sur des données qui n'appartiennent pas à l'ensemble d'apprentissage d'origine. Le surajustement est un surajustement qui se produit lorsque l'algorithme de formation prend trop de temps et que le réseau est trop complexe pour la tâche ou la quantité de données disponibles.

Démontrons les problèmes de généralisation et de recyclage en utilisant l'exemple de l'approximation d'une certaine dépendance non pas par un réseau de neurones, mais au moyen de polynômes, et l'essence du phénomène sera absolument la même.

Les graphes polynomiaux peuvent avoir forme différente, et plus le degré et le nombre de termes sont élevés, plus cette forme peut être complexe. Pour les données initiales, vous pouvez sélectionner une courbe polynomiale (modèle) et ainsi obtenir une explication de la dépendance existante. Les données peuvent être bruitées, de sorte que l’on ne peut pas supposer que le meilleur modèle passe exactement par tous les points disponibles. Un polynôme d'ordre inférieur peut mieux expliquer la dépendance existante, cependant, ce n'est pas un moyen suffisamment flexible pour approximer les données, alors qu'un polynôme ordre élevé peut-être trop flexible, mais suivra exactement les données, tout en prenant une forme alambiquée qui n'a rien à voir avec la relation réelle.

Les réseaux de neurones sont confrontés aux mêmes difficultés. Des réseaux avec un grand nombre les poids sont modélisés fonctions complexes et sont donc sujets au surentraînement. Les réseaux avec un petit nombre de pondérations peuvent ne pas être suffisamment flexibles pour modéliser les dépendances existantes. Par exemple, un réseau sans couches cachées modélise uniquement une fonction linéaire ordinaire.

Comment choisir diplôme correct complexité du réseau ? Presque toujours, un réseau plus complexe produit une erreur plus petite, mais cela peut ne pas indiquer bonne qualité modèle, mais sur la reconversion du réseau.

La solution consiste à utiliser la validation croisée de référence. À cette fin, une partie de l'échantillon d'apprentissage est réservée, qui est utilisée non pas pour entraîner le réseau à l'aide de l'algorithme de rétropropagation, mais pour un contrôle indépendant du résultat au cours de l'algorithme. Au début des travaux, une erreur réseau s'est produite sur la formation et

les ensembles de contrôles seront les mêmes. Au fur et à mesure que le réseau est formé, l'erreur de formation diminue, tout comme l'erreur sur l'ensemble de contrôle. Si l'erreur de contrôle cesse de diminuer ou commence même à augmenter, cela indique que le réseau a commencé à se rapprocher trop des données (surentraînement) et que l'entraînement doit être arrêté. Si cela se produit, le nombre d’éléments et/ou de couches cachés doit être réduit, car le réseau est trop puissant pour cette tâche. Si les deux erreurs (entraînement et validation croisée) n'atteignent pas un niveau suffisamment faible, alors le recyclage n'a naturellement pas eu lieu et le réseau, au contraire, n'est pas assez puissant pour modéliser la dépendance existante.

Les problèmes décrits conduisent au fait que lorsque Travaux pratiques Avec les réseaux de neurones, il faut expérimenter un grand nombre de réseaux différents, en entraînant parfois chacun d'eux plusieurs fois et en comparant les résultats. Le principal indicateur de la qualité du résultat est l'erreur de contrôle. Dans le même temps, conformément au principe à l'échelle du système, de deux réseaux avec des erreurs de contrôle à peu près égales, il est logique de choisir celui qui est le plus simple.

La nécessité d'expériences répétées conduit au fait que l'ensemble de contrôle commence à jouer un rôle clé dans le choix d'un modèle et devient une partie du processus d'apprentissage. Cela affaiblit son rôle de critère indépendant qualité du modèle. À grand nombre il y a des expériences Grande chance choisissez un bon réseau qui donne bon résultat sur le poste de commande. Cependant, afin de donner au modèle final la fiabilité appropriée, ils procèdent souvent (lorsque le volume des exemples de formation le permet) comme suit : réserver un ensemble d'exemples de test. Le modèle final est testé sur les données de cet ensemble pour garantir que les résultats obtenus sur les ensembles d'exemples de formation et de test sont réels et non des artefacts du processus d'apprentissage. Bien entendu, pour bien jouer son rôle, l’ensemble de test ne doit être utilisé qu’une seule fois : s’il est réutilisé pour ajuster le processus d’apprentissage, il se transformera effectivement en un ensemble de contrôle.

Afin d'accélérer le processus de formation du réseau, de nombreuses modifications de l'algorithme de rétropropagation des erreurs ont été proposées, associées à l'utilisation de diverses fonctions erreurs, procédures pour déterminer la direction et la taille des pas.

1) Fonctions d'erreur :

L'erreur intégrale fonctionne sur l'ensemble des exemples de formation ;

Fonctions d'erreur des puissances entières et fractionnaires

2) Procédures pour déterminer la taille du pas à chaque itération

Dichotomie;

Relations inertielles (voir ci-dessus) ;

3) Procédures pour déterminer la direction du pas.

Utiliser une matrice de dérivées du second ordre (méthode de Newton) ;

Utiliser des instructions en plusieurs étapes (méthode partan).



Avez-vous aimé l'article? Partage avec tes amis!