Réseau de neurones - entrée binaire vs entrée discrète / continue

14

Y a-t-il de bonnes raisons de préférer les valeurs binaires (0/1) aux valeurs normalisées discrètes ou continues , par exemple (1; 3), comme entrées pour un réseau à action directe pour tous les nœuds d'entrée (avec ou sans rétropropagation)?

Bien sûr, je ne parle que des entrées qui pourraient être transformées sous l'une ou l'autre forme; par exemple, lorsque vous avez une variable qui peut prendre plusieurs valeurs, soit les alimenter directement en tant que valeur d' un nœud d'entrée, soit former un nœud binaire pour chaque valeur discrète. Et l'hypothèse est que la plage de valeurs possibles serait la même pour tous les nœuds d'entrée. Voir les photos pour un exemple des deux possibilités.

Pendant mes recherches sur ce sujet, je n'ai trouvé aucun fait dur et froid à ce sujet; il me semble que - plus ou moins - ce sera toujours "essai et erreur" au final. Bien sûr, les nœuds binaires pour chaque valeur d'entrée discrète signifient plus de nœuds de couche d'entrée (et donc plus de nœuds de couche cachés), mais cela produirait-il vraiment une meilleure classification de sortie que d'avoir les mêmes valeurs dans un nœud, avec une fonction de seuil bien adaptée dans la couche cachée?

Seriez-vous d'accord pour dire que c'est juste "essayer de voir", ou avez-vous une autre opinion à ce sujet? Première possibilité: saisie directe des valeurs possibles {1; 3} Deuxième possibilité: obtenir pour chaque valeur d'entrée un nœud binaire

cirko
la source

Réponses:

11

La conversion des variables d'entrée en binaire dépend de la variable d'entrée. Vous pourriez penser que les entrées du réseau neuronal représentent une sorte d '"intensité": c'est-à-dire que des valeurs plus grandes de la variable d'entrée représentent une plus grande intensité de cette variable d'entrée. Après tout, en supposant que le réseau n'a qu'une seule entrée, un nœud caché donné du réseau va apprendre une fonction . où est la fonction de transfert (par exemple le sigmoïde) et la variable d'entrée.F(wX+b)FX

Cette configuration n'a pas de sens pour les variables catégorielles. Si les catégories sont représentées par des nombres, cela n'a aucun sens de leur appliquer la fonction . Par exemple, imaginez que votre variable d'entrée représente un animal et mouton = 1 et vache = 2. Cela n'a aucun sens de multiplier les moutons par et d'y ajouter , pas plus que la vache ne soit toujours plus grande que les moutons. Dans ce cas, vous devez convertir le codage discret en un codage binaire à 1 .F(wX+b)wbk

Pour les variables à valeur réelle, laissez-les simplement à valeur réelle (mais normalisez les entrées). Par exemple, supposons que vous ayez deux variables d'entrée, une pour l'animal et une pour la température de l'animal. Vous convertiriez un animal en 1 sur , où = nombre d'animaux, et vous laisseriez la température telle quelle.kk

Mat
la source
Donc, pour faire court, vous pointez l'échelle des variables: métrique, ordinale et nominale. Eh bien, je pense qu'il est évident que les échelles nominales ne peuvent pas être "calculées" ou représentées par une fonction. En ce qui concerne les valeurs réelles, comme vous, j'ai tendance à penser que les valeurs réelles pourraient être "meilleures" que les valeurs réelles "classées" en raison des transitions plus fluides, mais je n'ai tout simplement pas trouvé de preuve tangible à ce sujet. Cela me semble être un autre cas de "tâtonnements".
cirko
4

Oui il y en a. Imaginez que votre objectif soit de construire un classificateur binaire. Ensuite, vous modélisez votre problème en estimant une distribution de Bernoulli où, étant donné un vecteur caractéristique, le résultat appartient à une classe ou à l'opposé. La sortie d'un tel réseau neuronal est la probabilité conditionnelle. Si supérieur à 0,5, vous l'associez à une classe, sinon à l'autre.

E=y(X)t(1-y(X))1-t
y(X)tt{0,1}
jpmuc
la source
Je comprends qu'une entrée normalisée doit être préférée aux plages variables de valeurs d'entrée, car cela ressemble davantage aux sorties binaires que le réseau devrait produire. Mais dans ma question, je voulais faire référence à des valeurs discrètes normalisées d'une certaine plage, c'est-à-dire si les entrées pouvaient être dans une plage, alors tous les nœuds devraient avoir la même plage, c'est-à-dire être normalisés. Dans ce cas, serait-il toujours préférable d'utiliser des nœuds binaires pour chaque valeur discrète? (J'ai maintenant édité la question pour répondre à cette condition préalable)
cirko
1

J'ai également fait face au même dilemme lorsque je résolvais un problème. Je n'ai pas essayé à la fois l'architecture, mais mon point de vue est que si la variable d'entrée est discrète, la fonction de sortie du réseau neuronal aura la caractéristique de la fonction impulsionnelle et le réseau neuronal est bon pour modéliser la fonction impulsionnelle. En fait, n'importe quelle fonction peut être modélisée avec un réseau neuronal avec une précision variable en fonction de la complexité du réseau neuronal. La seule différence est que, dans la première architecture, vous avez augmenté le nombre d'entrées, donc vous avez plus de nombre de poids dans le nœud de la première couche cachée pour modéliser la fonction d'impulsion, mais pour la deuxième architecture, vous avez besoin de plus de nombre de nœuds dans la couche cachée par rapport à la première architecture pour obtenir les mêmes performances.

Anshu Abhishek
la source