2011-02-04 3 views
2

Je crée un simulateur d'organismes pour Android, donc je suppose que l'algorithme serait idéalement en Java. Je me rends compte qu'il y a tout un cours de Stanford sur l'apprentissage automatique disponible sur youtube, mais je n'ai tout simplement pas le temps de m'asseoir tout le long, et je pense que pour moi, la solution pourrait être très simple.Quelqu'un peut-il m'aider à créer un simple algorithme d'apprentissage automatique pour une application 'pet'?

L'organisme sera principalement interagi par l'écran tactile, ou même s'il interagit avec le micro ou l'accéléromètre, les entrées dans l'algorithme se résumeront principalement à des positions de coordonnées pour les différents membres. Je pense qu'il serait inélégant d'avoir un mécanisme de «gronder» ou de «récompense» pour les comportements aléatoires, alors je voudrais éviter cela. Donc, le suivi des directions générales ou des modèles dans les mouvements et être capable de les répéter quand ils ont une fréquence suffisamment élevée serait le but.

Pour être honnête, je ne suis pas vraiment sûr de la difficulté d'accomplir cela, mais j'aimerais entendre tout commentaire pour savoir combien de temps il me reste à faire avant de pouvoir l'implémenter.

EDIT: Est-ce un algorithme génétique? Le problème est que je n'ai aucune idée de comment mesurer une évolution réussie ou non réussie.

EDIT 2: Bon, je vais essayer d'ajouter autant de détails que possible. L'application est encore en phase de concept pour l'instant, mais je voulais juste savoir à quel point l'algorithme serait difficile à mettre en place. Donc, je le construis dans Processing, qui est vraiment juste Java. L'organisme serait composé de membres qui ont une distance fixe entre eux, mais sont autorisés à se déplacer indépendamment de la pièce centrale. Les membres se déplacent librement et trouveraient des points aléatoires périodiquement pour faciliter. L'organisme aurait un appendice central qui a aussi des coordonnées x et y, et chacun des membres externes se déplacerait par rapport à cela. L'utilisateur peut interagir avec l'organisme en déplaçant manuellement les appendices ou la pièce centrale avec des dragées sur l'écran tactile. Lorsque l'on interagit avec l'organisme, c'est là que l'algorithme serait utilisé, car il ne sert à rien d'apprendre à partir de nombres aléatoires. Donc je suppose que l'algorithme prendrait en compte les coordonnées x et y de la pièce centrale, et chaque appendice aurait sa propre version de l'algorithme qui apprend indépendamment des autres. Par exemple, si l'utilisateur a continuellement traîné l'organisme sur le côté droit de l'écran tactile, il pourrait être plus attiré vers cet endroit quand il n'est pas en interaction avec. J'espère que cela clarifie un peu.

+0

Pouvez-vous être plus précis avec ce que vous voulez? – jzd

+0

Ouais, j'ai trop de questions, même pour s'embêter. Ajouter plus de détails – Fantius

+0

Okay, j'ai ajouté quelques détails, j'espère que ça aide. – Miles

Répondre

2

Je pense que pour votre cas, vous devriez essayer de vous asseoir et notez quelles sont les variables que vous pouvez observer et quelles sont les variables que vous voulez prédire

  • les variables Observable: position du appendice, combien de fois un spécifique est interagi avec, pour combien de temps ...
  • variables à prédire: quel appendice sera interagi avec la prochaine fois, ...

une fois que vous avez la variables d'entrée et les variables de sortie, vous pouvez essayer de parcourir la liste des algorithmes d'apprentissage automatique standard. Il y a Weka (Java), Rapidminer, KNIME ... qui sont à la fois des bibliothèques et des outils autonomes. Essayez de jeter votre problème sur les outils disponibles et voyez si vous faites mieux que le hasard.

Si vous êtes, réglez ses paramètres. Si vous ne réussissez pas mieux que le hasard, vous devriez demander à vos amis de Data Mining/Machine Learning. Ils sauront mieux ce qui fonctionnera pour votre problème.

D'autres choses qui pourraient avoir une incidence sur votre choix d'algorithmes:

  • Y at-il des états cachés?
  • Les variables sont-elles indépendantes?
1

La façon dont je le vois, tout ce que vous aurez besoin de faire est d'avoir un tableau, par exemple, les coordonnées de phanères, puis juste les moyenner et l'ont vers ce point sur l'écran

Questions connexes