Comment évaluer concrètement la contribution d'une entrée "spécifique" au SN ? - page 3

 
alexeymosc:
Il existe également une situation opposée : en théorie, il est possible qu'il y ait deux entrées à forte informativité et une à faible informativité. Logiquement, vous voulez supprimer la troisième, mais si vous la supprimez, la relation quadro complexe (trois entrées - sortie) sera détruite, et les deux entrées restantes ne seront plus aussi informatives.

Je le fais donc sur un exemple prêt à l'emploi pour ainsi dire et je vois immédiatement le changement dans le résultat du NS à la fois sur l'échantillon d'entraînement et en dehors de celui-ci. Si quelque chose s'effondre, cela devrait affecter le résultat final. J'ai supprimé une entrée et il n'y a pas eu de dégradation ; j'ai supprimé une autre entrée et il y a eu une dégradation de moins de 1% du résultat final ; j'ai supprimé la troisième entrée et il y a eu une dégradation de 10%. Ensuite, même chose avec les combinaisons de 2 entrées, 3 entrées, etc.

Je ne travaille sur ce dossier que depuis quelques heures, mais j'ai déjà trouvé une entrée vide, la duplication complète d'une autre entrée (suite à une erreur) et 2 entrées dont l'impact est même au minimum de quelques dixièmes de pourcent. Je pense que ces 3 entrées sont exactement inutiles.

J'ai également trouvé 2 entrées dont l'exclusion ne détériore pas le résultat, ce qui était clair, mais l'améliore, ce qui est inattendu. Avec eux, je devrais expérimenter davantage, les entrées ne sont évidemment pas vides et leur influence sur le résultat, même si c'est en sens inverse, peut le prouver.

Merci à vous tous, j'ai vraiment reçu des conseils utiles.

 
Figar0:

Je le fais donc sur un exemple prêt à l'emploi pour ainsi dire et je vois immédiatement le changement dans le résultat du NS à la fois sur l'échantillon d'entraînement et en dehors de celui-ci. Si quelque chose s'effondre, cela devrait affecter le résultat final. J'ai supprimé une entrée et il n'y a eu aucune dégradation ; j'ai supprimé une autre entrée et il y a eu une dégradation de moins de 1% du résultat final ; j'ai supprimé la troisième entrée et il y a eu une dégradation de 10%. Puis la même chose avec des combinaisons de 2 entrées, 3 entrées etc.


C'est le moyen le plus fiable de sélectionner des entrées - la force brute. C'est dur, mais c'est honnête. Bonne chance !
 

Pour 20 entrées, un balayage propre représente quelque chose comme 2^20 combinaisons, c'est-à-dire un million.

La théorie de l'information me vient encore à l'esprit, mais je ne vais pas conseiller quoi que ce soit.

 
Mathemat:

Pour 20 entrées, un balayage propre représente quelque chose comme 2^20 combinaisons, c'est-à-dire un million.

Donc, vous pouvez passer par "d'ici jusqu'au dîner" ou "jusqu'à ce que vous vous ennuyez"...
Et puis un test génétique... ... testé.
 

Il est possible de déterminer le caractère "inutile" d'une entrée. Plus le poids d'un neurone est proche de 0, plus il est "inutile". Essentiellement, la valeur d'un neurone est multipliée par 0, ettout ce qui s'y trouve donnera 0, c'est-à-dire aucuneentrée.

Le principal inconvénient de la présence d'un tel neurone inutile est l'augmentation inutile du temps d'apprentissage.

Mais ces neurones "inutiles" peuvent se trouver non seulement dans la couche d'entrée de la grille, mais dans n'importe laquelle de ses couches.

Vous pouvez automatiser le processus de recherche des neurones inutiles après la formation de test - prenez une valeur modulo du poids du neurone et si la valeur est inférieure à une certaine valeur seuil, annulez-le. Il faut alors analyser les neurones qui ont un poids de 0, les exclure du réseau et refaire l'entraînement. L'entraînement sera beaucoup plus rapide et le résultat sera le même. Et, bien sûr, utiliser ensuite une maille aussi fine.

 
joo:

Il est possible de déterminer le caractère "inutile" d'une entrée. Plus le poids d'un neurone est proche de 0, plus il est "inutile". Essentiellement, la valeur d'un neurone est multipliée par 0, ettout ce qui s'y trouve donnera 0, c'est-à-dire que l'entrée est comme si elle n'existait pas du tout.


c'est vrai. mais d'où vient l'idée que l'entrée est toujours égale à zéro ? cela ne peut pas exister.

Il est fort probable que, dans ce cas, nous parlions d'un signal qui est incommensurablement plus petit que les autres signaux. Ceci peut être facilement corrigé par la mise à l'échelle du signal.

Le signal provenant de SSI sera des millions de fois plus grand que le signal provenant d'OsMA. Ces signaux sont incommensurables et ne peuvent être utilisés sans les mettre à la même échelle.

 
joo:


Mais ces neurones "inutiles" peuvent se retrouver non seulement dans la couche d'entrée du maillage, mais aussi dans n'importe quelle couche du maillage.


Cela ne peut se produire si les transformations dans les neurones sont non linéaires.
 
mersi:

C'est vrai. Mais d'où vient le signal d'entrée toujours égal à zéro ?

il est fort probable que dans ce cas, nous parlions d'un signal incommensurablement plus petit que les autres signaux. cela peut facilement être corrigé par la conversion du signal.

Le signal provenant de SSI sera des millions de fois plus grand que le signal provenant d'OsMA. Ces signaux sont incommensurables et ne peuvent être utilisés sans les mettre à l'échelle.

Je pensais que, pour tous les neuronistes, le fait de ramener (mettre à l'échelle) les signaux destinés au réseau dans une seule gamme, adaptée à l'alimentation du réseau, était comme le "Notre Père", mais j'avais tort, comme je le vois. :)

Ainsi, les signaux sont mis à l'échelle et varient, disons, dans la plage [-1,0;1,0]. Mais l'un des neurones d'entrée a un poids de 0. Qu'est-ce que cela signifie ? - Cela signifie que la grille ne se soucie pas de la valeur de ce neurone à l'entrée, le résultat du réseau ne dépend pas de cette entrée.

mersi:
cela ne peut pas se produire avec des transformations non linéaires dans les neurones

Cela peut très bien arriver. Et c'est souvent le cas lorsqu'il y a plus de neurones dans les couches internes qu'il n'est nécessaire pour résoudre un problème.

 
joo:

Je pensais que pour tous les neuronistes, le fait de mettre à l'échelle les signaux destinés au réseau dans une seule gamme, adaptée à l'alimentation du réseau, était comme le "Notre Père", mais j'avais tort, comme je le vois. :)

Ainsi, les signaux sont mis à l'échelle et varient, par exemple, dans la plage [-1,0;1,0]. Mais l'un des neurones d'entrée a un poids de 0. Qu'est-ce que cela signifie ?- Cela signifie que le réseau ne se soucie pas de la valeur de ce neurone à l'entrée - le résultat du fonctionnement du réseau ne dépend pas de cette entrée.

C'est tout à fait possible. Et c'est souvent le cas lorsqu'il y a plus de neurones dans les couches internes qu'il n'est nécessaire pour résoudre une tâche.

A première vue, cette affirmation ne semble pas fausse.

Toutefois, les données de l'entrée Xi sont simultanément transmises à plusieurs neurones et toutes leurs synapses ne sont pas nécessairement égales à zéro, de sorte que l'exclusion de l'entrée Xi modifiera complètement la sortie du réseau.

--------------

Plus il y a de neurones dans le réseau, plus le réseau neuronal est capable de résoudre des problèmes précis et complexes.

Les développeurs de NS limitent eux-mêmes le nombre de neurones d'un réseau pour des raisons de précision suffisante du résultat pour un temps d'apprentissage acceptable, car le nombre d'époques nécessaires à l'apprentissage du réseau croît en fonction du nombre de neurones.

 
Figar0:

Pas tout à fait vendredi, mais ...

Il existe un NS, n'importe quel NS, il existe une entrée A={A1, A2, ....}. A20}. Formez le NS et obtenez un résultat satisfaisant. Comment évaluer concrètement la contribution de chaque élément de l'entrée A1, A2, ... ? A20 à ce résultat ?

Les options qui me viennent à l'esprit sont les suivantes :

1) D'une certaine manière, on additionne et on calcule tous les poids avec lesquels l'élément passe dans le réseau. Je ne sais pas trop comment faire, il faudrait que je me plonge dans le fonctionnement du réseau et que je calcule d'une manière ou d'une autre certains coefficients, etc.

2) Essayez de "mettre à zéro" d'une manière ou d'une autre, ou par exemple d'inverser un élément du vecteur d'entrée et voyez comment cela affecte le résultat final. Pour l'instant, je me suis contenté de ça.

Mais avant de réaliser cette deuxième variante, j'ai décidé de demander mon avis. Qui a peut-être réfléchi à ce sujet depuis plus longtemps que moi ? Peut-être quelqu'un peut-il me conseiller un livre-article ?

L'application d'une approche scientifique solide en dehors de son contexte économétrique soulève des questions enfantines.

Je fais une régression :

Profit = s(1) * A0 + ... s(n) * A(n)

Nous estimons les coefficients de cette régression.

Immédiatement, nous obtenons

probabilité qu'un coefficient spécifique soit égal à zéro - nous supprimons une telle entrée

la probabilité que tous les coefficients pris ensemble soient égaux à zéro

par des ellipses, on obtient des coefficients de corrélation

test pour les entrées redondantes

effectuer un test pour les entrées manquantes

tester la stabilité des valeurs des coefficients (évaluer leur caractère aléatoire)