L'apprentissage automatique est-il un rêve?

12

En découvrant l'apprentissage automatique, je vois différentes techniques intéressantes telles que:

  • régler automatiquement les algorithmes avec des techniques telles que grid search,
  • obtenir des résultats plus précis grâce à la combinaison de différents algorithmes du même "type", c'est-à-dire boosting,
  • obtenir des résultats plus précis grâce à la combinaison de différents algorithmes (mais pas du même type d'algorithmes), c'est-à-dire stacking,
  • et probablement beaucoup plus que je dois encore découvrir ...

Ma question est la suivante: il y a toutes ces pièces. Mais est-il possible de les assembler pour créer un algorithme qui prend en entrée des données nettoyées et génère de bons résultats en tirant le meilleur parti de toutes les techniques? (Bien sûr, ce sera probablement moins efficace qu'un scientifique des données professionnel, mais il sera meilleur que moi!) Si oui, avez-vous des exemples de codes ou connaissez-vous des cadres qui peuvent le faire?

EDIT: Après quelques réponses, il semble qu'un rétrécissement doit être fait. Prenons un exemple, nous avons une colonne avec des données catégorielles, appelons-la yet nous voulons la prédire à partir de données numériques Xqui sont soit des mannequins soit de vraies données numériques (hauteur, température). Nous supposons que le nettoyage a été effectué précédemment. Existe-t-il un algorithme qui peut prendre ces données et produire une prédiction? (en testant plusieurs algorithmes, en les réglant, en les boostant, etc.) Si oui, est-ce efficace sur le plan du calcul (les calculs sont-ils effectués dans un délai raisonnable si nous comparons à un algorithme normal), et avez-vous un exemple de code?

Pholochtairze
la source
1
Probablement pas avant une IA puissante.
gung - Rétablir Monica
1
En ce qui concerne le réglage automatique, vous pourriez être intéressé par la lecture de la recherche hyperparamétrique dans l'apprentissage automatique . La recherche dans la grille est un moyen terrible d'optimiser les hyperparamètres.
Marc Claesen
2
Avez - vous avez à utiliser tant la mise en forme ?
Sycorax dit Réintégrer Monica le
2
Il existe des produits qui prétendent faire ce que vous décrivez, par exemple Crystal Ball . Personnellement, je ne leur fais pas confiance, mais comme vous l'avez écrit: ils font le travail mieux que quelqu'un qui n'a aucune idée des statistiques
Aksakal
1
Car les prévisions auto.arima(de la forecastbibliothèque) peuvent être meilleures que les humains - Rob Hyndman l'a mentionné à plusieurs reprises dans ses présentations. Il existe donc des domaines où certaines sortes d '«apprentissage automatique» sont appliquées avec succès.
Tim

Réponses:

7

Si vous savez à l'avance quel type de données vous alimenterez ("ce sont des ventes mensuelles de GPC, avec des prix et des marqueurs de promotion, et je veux une prévision ponctuelle"), afin que vous puissiez régler votre configuration à l'avance, ce sera probablement possible et déjà fait, voir divers "systèmes experts" pour certaines tâches spécifiques.

Si vous cherchez quelque chose qui peut prendre n'importe quel type de données et en faire "quelque chose d'utile" ("ah, ici je suis censé reconnaître l'écriture manuscrite et sortir les codes postaux, et là je devrais faire la détection de fraude, et ce fichier d'entrée évidemment est une tâche de notation de crédit "), non, je ne pense pas que cela se produira dans longtemps.

Désolé pour une réponse basée sur une opinion à ce qui pourrait bien être fermé comme une question basée sur une opinion.


MODIFIER pour répondre à la question modifiée:

nous avons une colonne avec des données catégorielles, appelons-la et nous voulons la prédire à partir de données numériques qui sont soit des nuls ou des données numériques réellesXyX

Cela ressemble à quelque chose que les forêts aléatoires sont en fait assez bonnes. Là encore, un algorithme "à usage général" comme les RF ne battra probablement jamais un algorithme qui a été réglé sur un type particulier de connu à l'avance, par exemple, les chiffres manuscrits ou les risques de défaut de crédit.y

Stephan Kolassa
la source
J'ai édité ma question grâce à vous, il y a une première partie "prenez n'importe quelle entrée et jetez-moi le résultat" et votre réponse est vraiment perspicace, et une deuxième partie "pour un type particulier de questions, et la mise en forme des données, trouvez-moi le résultat".
Pholochtairze
Je ne sais pas si le dernier paragraphe tient toujours, étant donné l'immense succès de l'apprentissage en profondeur sur une grande variété de problèmes. Ces méthodes sont certainement à usage général, mais elles détiennent des enregistrements dans plusieurs domaines d'application tels que la vision par ordinateur et la PNL. On pourrait faire valoir que les architectures diffèrent entre les tâches, mais sur le plan théorique, un réseau profond entièrement connecté fonctionnerait au moins aussi bien que, disons, les réseaux convolutionnels, c'est juste que les méthodes de formation appropriées restent insaisissables.
Marc Claesen
@MarcClaesen: Je dirais que "c'est juste que les méthodes de formation appropriées restent insaisissables" sont le point où vous aurez toujours besoin d'une expertise spécifique au domaine.
Stephan Kolassa
7

Ce que vous décrivez existe déjà dans une certaine mesure, par exemple dans AutoWEKA , et fait l'objet d'une nouvelle recherche active (par exemple, des défis comme AutoML de Chalearn ).

Ceci est généralement considéré dans le sous-domaine de l'optimisation hyperparamétrique. Des progiciels comme Optunity , Hyperopt et ParamILS peuvent être utilisés pour optimiser automatiquement les hyperparamètres pour une approche donnée et choisir quelle approche se trouve être la meilleure. Cela dit, de tels problèmes d'optimisation ne sont pas triviaux et il faut généralement beaucoup de temps pour obtenir automatiquement le meilleur modèle (ou à proximité).

Vous pouvez trouver un exemple d'utilisation d'Optunity pour déterminer automatiquement le meilleur algorithme d'apprentissage et optimiser ses hyperparamètres à http://optunity.readthedocs.org/en/latest/notebooks/notebooks/sklearn-automated-classification.html

Marc Claesen
la source
4

Les progrès dans le réglage des paramètres hyper et les modèles d'ensemble prennent beaucoup de «l'art» de la construction de modèles. Cependant, il y a deux aspects importants de la construction de modèles que le réglage d'hyperparamètres et les ensembles ne traitent pas et qui vous empêcheront de trouver le meilleur modèle possible.

Premièrement, certains types d'algorithmes sont meilleurs pour modéliser certains types de données. Par exemple, s'il y a des interactions entre vos variables, un modèle additif ne les trouvera pas, mais un arbre de décision le fera. Savoir comment les modèles se comportent sur différents ensembles de données et choisir le bon peut nécessiter des connaissances sur le domaine pour trouver le meilleur algorithme de modélisation.

Deuxièmement, l'ingénierie des fonctionnalités et l'extraction des fonctionnalités sont le véritable «art» de la construction de modèles. Votre question suppose que l'ensemble de données est déjà préparé. Mais ce que vous ne devriez pas supposer, c'est que l'ensemble de données est la meilleure représentation possible de ce que vous essayez de modéliser. C'est toujours une question ouverte. Dans de nombreux cas, lorsque l'ensemble de données est complexe, vous pouvez concevoir des fonctionnalités toute la journée, mais vous risquez de jeter de plus en plus de bruit dans l'algorithme. Pour savoir quelles fonctionnalités ajouter, vous devez savoir quelles fonctionnalités ont un sens d'un point de vue statistique et lesquelles ont un sens du point de vue de l'expert du domaine.

Pour ces deux raisons, je conclus que non, vous ne pourrez pas trouver un algorithme qui trouve automatiquement le meilleur modèle possible . C'est aussi pourquoi je suis sceptique quant aux éditeurs de logiciels qui proposent des outils qui remplaceront le besoin de scientifiques des données.

Cependant, si vous réduisez votre ambition de trouver le meilleur modèle à partir d'un ensemble fixe de modèles, avec des paramètres hyper optimaux, où `` meilleur '' est défini comme la précision prédictive la plus élevée sur un ensemble d'entraînement, alors oui, c'est possible.

Découvrez le caretpackage Rcomme exemple de réglage automatique des modèles. caretutilise la recherche de grille, qui a des défauts, et il ne construit qu'un modèle à la fois. Cependant, il existe des fonctions pour comparer les modèles et des wrappers pratiques pour une longue liste de modèles provenant de nombreux Rpackages différents .

brandco
la source
Je suis d'accord que nous sommes encore loin de l'apprentissage automatique entièrement automatisé, mais pas pour les raisons que vous spécifiez. Deux choses: (i) trouver le meilleur modèle (+ optimiser ses hyperparamètres) à partir d'un ensemble donné est déjà possible et (ii) l'ingénierie des fonctionnalités et l'extraction des fonctionnalités perdent de l'importance en raison des progrès de l'apprentissage en profondeur. La principale chose qui nous manque actuellement est la manière automatisée d'intégrer les connaissances antérieures et le bon sens spécifique au domaine.
Marc Claesen
Je suppose que je ne vois pas comment "les connaissances préalables et le bon sens spécifique au domaine" peuvent améliorer le processus de ML sauf pour aider (i) à trouver le meilleur modèle et (ii) à trouver les meilleures fonctionnalités. J'ai essayé de distinguer les vrais modèles des modèles optimaux (précision maximale) avec l'avant-dernier paragraphe.
brandco
pour découvrir des failles évidentes dans le processus de modélisation telles que des étiquettes erronées et / ou des fuites d'informations, comment traiter les données manquantes, identifier la tâche d'apprentissage réelle (+ une fonction de score / perte appropriée) et généralement effectuer un nettoyage complet des données (qui a toujours l’effort principal sur tous les problèmes pratiques dans lesquels j’ai été impliqué).
Marc Claesen
2

Cela dépend de qui vous demandez.

J'ai récemment entendu un discours de Scott Golder à Context Relevant . Leur produit est essentiellement un robot de sélection de fonctionnalités et de modèles. Le modèle sous-jacent de base est la régression logistique, mais le système utilise essentiellement l'apprentissage automatique pour trouver la bonne combinaison de sélection d'entités, de réduction de dimension, de régularisation, etc. pour générer des prédictions précises. Ce fut une conférence très impressionnante, et les détails sont tous très exclusifs. Apparemment, leurs clients comprennent de grandes sociétés financières et le système peut gérer des ensembles de données arbitrairement massifs.

Au moins quelques personnes semblent donc penser que la science automatisée des données est déjà là, du moins pour certaines applications. Et certaines de ces personnes (les clients de Context Relevant) paient apparemment par le nez pour y avoir accès.

shadowtalker
la source
1

Non ce n'est pas un rêve. Nous avons implémenté cela (la combinaison de toutes les techniques que vous avez mentionnées, y compris les ensembles empilés) dans la bibliothèque d'apprentissage automatique H2O . Vous pouvez en savoir plus à ce sujet et trouver des exemples de code en R et Python ici .

Erin LeDell
la source