28 votes

Comment concevoir des fonctionnalités pour l'apprentissage automatique

Avez-vous des conseils ou de la lecture comment ingénieur fonctionnalités pour une machine de tâche d'apprentissage? Bon les entités en entrée sont importants, même pour un réseau de neurones. Le choisi fonctionnalités affecteront le nombre nécessaire de neurones cachés et le nombre nécessaire d'exemples de formation.

L'exemple suivant est un problème, mais je suis intéressé par la fonctionnalité de l'ingénierie en général.

Une motivation exemple: Ce serait une bonne entrée lorsque l'on regarde d'un puzzle (par exemple, 15-puzzle ou de Sokoban)? Serait-il possible de reconnaître lequel des deux états est plus proche de l'objectif?

44voto

dmcer Points 5561

Bonne fonctionnalité de l'ingénierie comporte deux volets. La première est de comprendre les propriétés de la tâche que vous essayez de résoudre et comment ils peuvent interagir avec les forces et les limites de la classifier que vous utilisez. Le deuxième est le travail expérimental ont été de tester vos attentes et de trouver voulez effectivement qui fonctionne et ce qui ne l'est pas.

Cela peut être fait de manière itérative: Votre haut vers le bas de la compréhension du problème qui motive les expériences, puis le bas jusqu' informations vous apprendre de ces expériences vous permet d'obtenir une meilleure compréhension du problème. La compréhension approfondie du problème peut ensuite conduire à davantage d'expériences.

Côté Fonctionnalités à Votre Classificateur

Dire que vous êtes à l'aide d'un classificateur linéaire simple comme la logistique-régression ou un SVM avec un noyau linéaire. Si vous pensez qu'il pourrait être intéressant d'interactions entre les différents attributs que vous pouvez mesurer et de fournir en entrée du classifieur, vous aurez besoin de construire manuellement et de fournir des fonctionnalités que la capture de ces interactions. Toutefois, si vous utilisez un SVM avec un polynôme ou noyau Gaussien, les interactions entre les variables d'entrée sera déjà capturé par la structure du modèle.

De même, les SVMs pouvez effectuer mal si certaines variables d'entrée pris une plus large gamme de valeurs que d'autres (par exemple, la plupart des fonctionnalités de prendre une valeur de 0 ou 1, mais une fonction prend des valeurs comprises entre -1000 et 1000). Donc, lorsque vous faites de la fonctionnalité de l'ingénierie pour un SVM, vous pourriez vouloir essayer de normaliser les valeurs de vos fonctions avant de les fournir à un classificateur. Toutefois, si vous êtes en utilisant des arbres de décision ou de forêts aléatoires, cette normalisation n'est pas nécessaire, puisque ces classificateurs sont robustes à des différences de grandeur entre les valeurs que les différentes entités prendre sur.

Notes Spécifiquement sur la Résolution d'énigmes

Si vous êtes à la recherche à résoudre un problème avec un complexe de l'état de l'espace, vous pouvez utiliser un apprentissage par renforcement de l'approche comme le Q-learning. Cette aide à structurer les tâches d'apprentissage qui impliquent d'atteindre un but par une sérieuse des étapes intermédiaires par le système.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X