2009-07-30 7 views
3

Quelqu'un peut-il me expliquer comment faire des ensembles de données plus complexes comme les statistiques de l'équipe, la météo, les dés, les types de nombres complexesNeural entrée/sortie nette

je comprends toutes les mathématiques et comment tout ce que je fonctionne ne sais pas comment entrée des données plus complexes, puis comment lire les données qu'il recrache

si quelqu'un pouvait fournir des exemples en python qui serait une grande aide

+0

quels outils ou bibliothèque utilisez-vous? – dalloliogm

+0

Avoir des exemples en python est inutile, la façon dont vous représentez votre jeu de données en entrée ne dépend pas de votre langage de programmation ... cela dépend du type d'information dont vous avez besoin pour apprendre le réseau de neurones. Peut-être que vous pouvez trouver de bons exemples dans un manuel de cours sur NN (c'est-à-dire évêque "nn for pattern recognition"?). –

Répondre

3

Vous avez encoder votre entrée et votre sortie à quelque chose qui peut être représenté par les unités de réseau neuronal. (par exemple 1 pour "x a une certaine propriété p" -1 pour "x n'a pas la propriété p" si la plage de vos unités est en [-1, 1])

La façon dont vous encodez votre entrée et la façon dont vous décodez votre sortie dépend de ce que vous voulez former le réseau de neurones. De plus, il existe de nombreux algorithmes de «réseaux neuronaux» et des règles d'apprentissage pour différentes tâches (propagation de retour, machines de boltzman, cartes auto-organisatrices).

0

Plus de données complexes signifie généralement ajouter plus de neurones dans les couches d'entrée et de sortie.

Vous pouvez alimenter chaque "champ" de votre registre, correctement codé comme une valeur réelle (normalisée, etc.) à chaque neurone d'entrée, ou peut-être même vous décomposer encore plus en champs de bits, assignant des entrées saturées de 1 ou 0 pour les neurones ... pour la sortie, cela dépend de la façon dont vous formez le réseau neuronal, il va essayer d'imiter les sorties de l'ensemble d'entraînement.

2

Vos entités doivent être décomposées en parties pouvant être représentées sous forme de nombres réels. La magie d'un filet Neural est-il est une boîte noire, les associations correctes seront (avec des poids internes) au cours de la formation


Entrées

Choisissez que quelques fonctionnalités qui sont nécessaires pour décrire avec précision la situation, puis décomposer chacun en un ensemble de nombres réels valorisés.

  • Météo: [aujourd'hui température, humidité aujourd'hui, hier température, l'humidité hier ...] l'association entre la température d'aujourd'hui et l'humidité d'aujourd'hui est faite en interne
  • Statistiques de l'équipe: [hauteur ave, poids ave, hauteur max, plus haut score, ...]
  • Dice: pas sûr de comprendre celui-ci, voulez-vous dire comment coder des valeurs discrètes *
  • numéro complexe: [a, par intérim, b, bi, ...]

* Les caractéristiques de valeur discrètes sont délicates, mais peuvent toujours être codées comme (0.0.1.0). Le problème est qu'ils ne fournissent pas de gradient pour apprendre le seuil.


Sorties

Vous décidez ce que vous voulez que la sortie à dire, et puis encodez vos exemples de formation dans ce format. Moins il y a de valeurs de sortie, plus il est facile de s'entraîner.

  • Météo: [la chance de demain de la pluie, la température de demain ...] **
  • Statistiques de l'équipe: [chance de gagner, la chance de gagner plus de 20, ...]
  • Complexe numéro: [x, xi ...]

** ici vos formation vecteurs serait: 1.0 s'il a plu le lendemain, 0.0 si elle n'a pas


Bien sûr, si le problème peut réellement être modélisé par un réseau neuronal est une question différente.

+0

Il n'y a aucun problème de gradient avec les fonctions booléennes. La rétropropagation ne calcule jamais un gradient en termes d'entrées (car cela ne change pas les entrées). –

0

Vous devez ajouter le nombre d'unités pour l'entrée et la sortie dont vous avez besoin pour le problème. Si la fonction inconnue à approximer dépend du paramètre n, vous aurez n unités d'entrée. Le nombre d'unités de sortie dépend de la nature de la fonction. Pour les fonctions réelles avec n paramètres réels, vous aurez une unité de sortie.

Quelques problèmes, par exemple dans la prévision de séries chronologiques, vous aurez m unités de sortie pour les m valeurs successives de la fonction. L'encodage est important et dépend de l'algorithme choisi. Par exemple, en rétropropagation pour les réseaux feedforward, il est préférable de transformer, si possible, le plus grand nombre de fonctionnalités dans les entrées discrètes, comme pour les tâches de classification.

Un autre aspect du codage est que vous devez évaluer le nombre d'unités d'entrée et cachées en fonction de la quantité de données. Trop d'unités liées aux données peuvent donner une mauvaise approximation en raison du problème de dimensionnalité du cours ff. Dans certains cas, vous pouvez agréger certaines données d'entrée d'une manière ou d'une autre pour éviter ce problème ou utiliser un mécanisme de réduction comme PCA.

Questions connexes