Question

Je travaille pour une entreprise d'études de marché dans l'espace en ligne. Nous avons consacré tous nos cycles depuis plus d'un an et demi la construction de la prochaine grande chose dans cet espace en ce qui concerne le profilage nos répondants (au fil du temps) afin de mieux les placer dans les enquêtes disponibles. Quelque chose que l'un de nos de chercheur nous a demandé à plusieurs reprises (à juste titre) est un outil qui prouvera la valeur de ce nouveau système de profilage et de prédire les résultats de quelques réglages à ses nombreux algorithmes et règles pour montrer quelle version d'un ensemble de règles a un meilleur résultat.

Le but est d'être en mesure de prendre un ruban de notre système de profilage (une tranche statique de données Q & A pour un temps donné - le sexe:. Mâle / femelle, boissons: coke / pepsi / mt.dew, revenu: etc.) et les agents utilisateurs exécuter (robots logiciels développés artificiellement ou agents) grâce à notre système de profilage pour voir ce que les résultats seraient interactifs. Comme les données de Q & A seraient les mêmes, les capacités des agents utilisateurs à choisir des réponses seraient les mêmes, et seuls les algorithmes et les règles derrière le fonctionnement profileurs changeraient - ce serait théoriquement nous permettre de déterminer à l'avance le résultat de tout changement notre système. Ce résultat serait alors nous permettre de changements de preuve avant de pousser les changements à notre système de production. L'espoir serait que nous pourrions attraper plus facilement des erreurs avant de relâcher dans la nature. Mais cela nous permettra de tester des modifications à la logique de chasser pour des optimisations dans le profileur.

Ma question: (. C # / NET principalement) Pour quelqu'un comme moi qui a vraiment travaillé seulement dans l'espace d'applications Web, où puis-je regarder pour commencer à construire les agents utilisateurs qui sont capables d'interagir avec l'extérieur système tel que mon système de profilage? Je dois savoir précisément comment tourner jusqu'à 1000 (mille) agents et les ont interagissent avec mon système de profilage (sur un laps de temps donné) en étant en mesure de répondre aux questions qui leur sont présentées par le système de profilage en fonction des caractéristiques qui sont dynamiquement définis à l'agent utilisateur au moment de l'initialisation.

Un exemple de ceci est que j'ai besoin des agents noirs, certains agents chinois, certains agents masculins, certains agents féminins, certains anciens agents, de nouveaux agents, certains agents religieux, certains que boire du coke, etc. et tous mélangés ensemble pour ressembler à la plus appropriée du monde. Nous avons déjà la rupture démographique vers le bas de la population afin que nous puissions facilement tourner de 10% des hommes noirs, 60% blancs séjour des femmes mères au foyer, et toutes les autres représentations de notre population.

Mes premières pensées pour la création d'un système comme celui-ci était pour utiliser la puissance de mon XBOX 360 , et certains agents bien pensés qui ressemblent à certaines caractéristiques ajoutées une personne d'un monde orienté objet à capable de répondre intelligemment quelques questions ... et deviner les autres.

En parlant avec mon collègue, il a été suggéré que j'utiliser une partie des cadres de l'intelligence artificielle là-bas et une carte graphique 1000 cpu (nous en avons déjà un) pour obtenir des performances rapides super méchants de charges des agents utilisateurs. Où chaque CPU est un agent ... (quelque chose comme ça).

Est-ce qu'il ya quelqu'un avec une expérience dans ce genre de chose? problèmes épreuvage avec un modèle fictif du monde?

Était-ce utile?

La solution

Vous dites « interagir avec un système extérieur » - ce qui est l'interface de ce système, et comment utiliser une personne-il? Est-ce sur le web? Si oui, vous perdez votre temps à penser à Optimisations GPU et comme depuis votre goulot d'étranglement de performance sera le réseau, même sur un réseau local. Dans de telles circonstances, vous pouvez aussi bien que les agents de fonctionner de manière séquentielle. Même si vous pouvez effectivement engendrer 1000 agents en même temps (peut-être sur plusieurs machines), les chances sont élevées que vous aurez juste Cripple le serveur cible dans un déni accidentelle d'attaque de service, il est donc contre-productif. Toutefois, si vous avez la possibilité de changer cette interface pour permettre communication directe entre, vous pouvez revenir à considérer l'approche de parallélisme massif. Mais 1000 n'est pas un grand nombre en termes de calcul. Il est probable que vous souhaitez passer plus de temps à faire l'algorithme fonctionner en parallèle que vous économiseriez en le faisant de cette façon.

En ce qui concerne « les cadres de l'intelligence artificielle », je ne pense pas qu'il y ait quoi que ce soit tout à fait si vague qui vous aiderait. AI et agents intelligents est un domaine massif - le livre Intelligence artificielle: une approche moderne qui est une norme texte d'introduction sur les agents intelligents est de plus de 1000 pages et contient peut-être 20 ou 30 techniques, beaucoup totalement indépendantes dont pourraient s'appliquer à votre problème, dont beaucoup ne seront pas. Si vous pouvez indiquer plus clairement quelles tâches l'agent doit effectuer, et qui entrées qu'il a sur lequel de prendre ces décisions, choisir une technique décente devient possible. En fait, il peut arriver que votre problème ne nécessite pas l'IA du tout, si vous avez une correspondance claire entre la démographie de l'agent et la prise de décision - vous regardez la réponse à utiliser à partir de la table que vous avez fait plus tôt. Il est donc important de comprendre ce problème que vous êtes en train d'essayer de résoudre d'abord.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top