2017-09-12 3 views
0

Le titre était peut-être un peu flou. Malheureusement, je ne pouvais pas en trouver un meilleur.Comment représenter 4 états en entrée d'un réseau neuronal artificiel?

Donc le problème est le suivant. Il y a un tableau d'une taille fixe où chaque position peut avoir 4 états: vide, bloqué, positif (une valeur limitée entre 0 et 1) et négatif (une valeur limitée entre 0 et 1 (bien que cela puisse être 0 à -1)). Par limité, je veux dire que la valeur ne peut prendre la forme de 0,1, 0,2, ... 1,0 et chaque valeur ne se produit qu'une seule fois. Selon la façon dont le tableau est rempli, je voudrais prédire à quoi ressemblera la prochaine version du tableau. J'ai essayé de représenter chaque position dans le tableau comme un noeud d'entrée, mais je ne pouvais pas comprendre comment faire cela (Comment représenter tous les quatre états comme un seul nombre). Ce qui devrait également être noté est que le montant maximum de chaque état est connu. Donc, plutôt que d'avoir chaque nœud représentant un index dans le tableau, je pourrais avoir chaque nœud représentant un état (bloqué, -1.0, -0.9, ..., 0.9, 1.0) et ensuite dire à quel index cet état se produit comme une entrée valeur pour ce noeud.

De quelle façon est plus pratique ou efficace pour un réseau de neurones? À propos, c'est un réseau de neurones avec une couche d'entrée, une couche cachée et une couche de sortie.

+0

Pour vous donner des conseils, nous devons en savoir plus sur la signification des états. Juste pour être concret est 0.1 plus semblable à 0.2 puis à 0.7? qu'est-ce qui est bloqué et vide? Comment évolue le tableau? De plus, si vous essayez de prédire l'état suivant du tableau, il existe des moyens plus efficaces de le faire, puis un perceptron. Expliquer votre problème et non seulement la représentation des données brutes et quelqu'un sera en mesure d'aider. –

+0

0.1 et 0.2 sont plus liés les uns aux autres qu'à 0.7. Ils sont un score. Bloqué signifie que rien ne peut être placé dans cette position de tableau. Je ne sais pas vraiment comment le tableau évolue. Cela m'est inconnu. C'est pourquoi je voulais utiliser un réseau de neurones. (Si vous trouvez cela, tout semble un peu bizarre.C'est un exercice pour trouver un motif. Je voulais essayer de résoudre cela avec un réseau de neurones.) – Yadeses

Répondre

1

Je vous suggère de commencer en utilisant 3 neurones pour chaque cellule de votre tableau:

  • Un qui indique au réseau si la cellule est vide. Vous pouvez simplement utiliser les valeurs 0 pour vide et 1 pour non-vide (juste un exemple, d'autres valeurs devraient aussi fonctionner, assurez-vous d'être cohérent).

  • Un qui fait exactement la même chose, mais il indique au réseau si la cellule est bloquée. (encore 0 et 1 comme entrées possibles)

  • Et enfin le Neuron pour recevoir la valeur positive/négative. Vous pouvez essayer différentes choses ici. Vous devriez probablement essayer d'abord, si cela fonctionne juste pour définir la valeur s'il y en a une, et s'il n'y a pas de valeur, mettez l'entrée à 0. Cela peut perturber le réseau un peu dur, puisqu'il ne peut pas voir la différence 0 = null et 0 = 0. Si cela ne fonctionne pas, vous pouvez essayer de mapper toutes vos valeurs d'entrée entre 0 et 1 (dans votre cas, il suffit d'ajouter 1, puis diviser par 2 avant de transmettre la valeur au réseau) 1 si la cellule est bloquée/vide.

Si vous ne pouvez pas obtenir ce travail d'abord jouer avec les paramètres pendant un certain temps, changer la quantité de couches cachées et les neurones, faire varier les taux apprentissage et la dynamique de la formation.

Si les entrées ne s'avèrent pas très bonnes pour votre tâche, je vous suggère de faire ce que vous avez mentionné auparavant: un neurone pour chaque état possible de chaque cellule. Cette méthode prendra plus de temps à s'entraîner, mais elle devrait certainement fonctionner (sinon, votre tâche est plutôt comolex pour le réseau, ou vous avez besoin de plus de temps de formation).

+0

Je ne savais pas que les attributs pouvaient être séparés sur plusieurs notes. Je vais essayer cela. – Yadeses

+0

Selon l'évolution que vous avez, vous pourriez avoir besoin de considérer l'histoire et pas seulement 1 état pour prédire le prochain. Pour donner un exemple, si le système est un corps en mouvement et que votre état est la position, vous avez besoin d'au moins 2 états consécutifs pour estimer la position suivante. Dans ce cas, vous pouvez simplement répliquer la configuration d'entrée de l'état actuel autant de fois que vous le souhaitez pour tenir compte des états précédents ou vous pouvez utiliser une configuration plus complexe comme un réseau récurrent. –