30

Avez-vous des conseils ou lisez-vous comment créer des fonctions pour une tâche d'apprentissage automatique? De bonnes caractéristiques d'entrée sont importantes même pour un réseau de neurones. Les caractéristiques choisies affecteront le nombre nécessaire de neurones cachés et le nombre nécessaire d'exemples d'entraînement.Comment créer des fonctions pour l'apprentissage automatique

Ce qui suit est un exemple de problème, mais je m'intéresse à l'ingénierie de caractéristiques en général.

Un exemple de motivation: Quelle serait une bonne entrée en regardant un casse-tête (par exemple, 15-puzzle ou Sokoban)? Serait-il possible de reconnaître lequel des deux états est le plus proche du but?

Répondre

46

L'ingénierie de bonnes caractéristiques implique deux composants. La première consiste à comprendre les propriétés de la tâche que vous essayez de résoudre et comment elles peuvent interagir avec les forces et les limites du classificateur que vous utilisez. Le second est un travail expérimental où vous allez tester vos attentes et découvrir ce qui fonctionne réellement et ce qui ne fonctionne pas.

Cela peut être fait itérativement: Votre haut en bas compréhension du problème qui motive des expériences, et les informations que vous apprenez en bas jusqu'à pour ces expériences vous aide à obtenir une meilleure compréhension du problème. La compréhension plus profonde du problème peut alors conduire plus d'expériences.

Caractéristiques il à votre classificateur

Disons que vous utilisez simple classificateur linéaire comme logistic-regression ou un SVM avec un noyau linéaire. Si vous pensez qu'il peut y avoir des interactions intéressantes entre divers attributs que vous pouvez mesurer et fournir en entrée au classificateur, vous devez construire manuellement et fournir des fonctionnalités qui capturent ces interactions. Cependant, si vous utilisez un SVM avec un noyau polynomial ou gaussien, les interactions entre les variables d'entrée seront déjà capturées par la structure du modèle. De même, les SVM peuvent mal fonctionner si certaines variables d'entrée prennent une plage de valeurs beaucoup plus grande que d'autres (par exemple, la plupart des fonctionnalités prennent une valeur de 0 ou 1, mais une caractéristique prend des valeurs entre -1000 et 1000). . Ainsi, lorsque vous effectuez l'ingénierie des fonctions pour un SVM, vous pouvez essayer de normaliser les valeurs de vos fonctionnalités avant de les fournir au classificateur. Toutefois, si vous utilisez decision trees ou random forests, une telle normalisation n'est pas nécessaire, car ces classificateurs sont robustes aux différences de magnitude entre les valeurs prises en charge par les différentes fonctionnalités.

Remarques spécifiquement Puzzle Résolution

Si vous cherchez à résoudre un problème avec un espace d'état complexe, vous pouvez utiliser une approche reinforcement learning comme Q-learning. Cela permet de structurer les tâches d'apprentissage qui impliquent d'atteindre un certain objectif par une série d'étapes intermédiaires du système.

+0

La reconnaissance des interactions entre attributs est-elle mentionnée dans un livre? Comment reconnaître que quelque chose manque à l'entrée? –

+0

Les interactions devraient être mentionnées dans la plupart des manuels de statistiques. Mais, il y a un bon aperçu sur Wikipedia: http://en.wikipedia.org/wiki/Interaction_%28statistics%29. – dmcer

+6

En ce qui concerne les éléments qui manquent à l'entrée, je suppose que vous voulez dire "comment puis-je savoir si j'ai assez de bonnes fonctionnalités".Si vous réduisez la régularisation pour votre classificateur et que les performances sont encore mauvaises sur les données d'entraînement, vous devriez probablement essayer de réfléchir à plus de fonctionnalités. Cependant, lorsque les performances de votre ensemble d'entraînement sont bonnes, mais que les performances de votre ensemble de test sont mauvaises, vous surchargez l'ensemble d'entraînement et vous souhaitez supprimer certaines fonctionnalités et/ou augmenter la régularisation. – dmcer

Questions connexes