Il existe d'importantes recherches contemporaines sur l'optimisation bayésienne (1) pour le réglage des hyperparamètres ML. La motivation principale ici est qu'un nombre minimal de points de données est nécessaire pour faire des choix éclairés sur les points qui valent la peine d'être essayés (les appels de fonction objectifs sont coûteux, donc en faire moins est mieux) parce que la formation d'un modèle prend du temps - certains modestement -les gros problèmes SVM sur lesquels j'ai travaillé peuvent prendre entre quelques minutes et plusieurs heures.
D'un autre côté, Optunity est une implémentation d'essaim de particules à traiter pour la même tâche. Je ne connais pas très bien la PSO, mais il semble qu'elle doit être moins efficace dans le sens où elle nécessite un plus grand nombre de points d'essai, et donc des évaluations fonctionnelles objectives, pour évaluer la surface hyperparamétrique.
Est-ce que je manque un détail clé qui rend PSO préféré à BO dans le contexte d'apprentissage automatique? Ou le choix entre les deux est-il toujours intrinsèquement contextuel pour la tâche de réglage des hyperparamètres?
(1) Shahriari et al, «Sortir l'humain de la boucle: une revue de l'optimisation bayésienne».
la source
Réponses:
En tant que développeur principal d'Optunity, j'ajouterai mes deux cents.
Nous avons effectué de nombreux tests comparatifs d'Optunity avec les solveurs bayésiens les plus populaires (par exemple, hyperopt, SMAC, bayesopt) sur des problèmes du monde réel, et les résultats indiquent que PSO n'est en fait pas moins efficace dans de nombreux cas pratiques. Dans notre benchmark, qui consiste à régler les classificateurs SVM sur divers ensembles de données, Optunity est en fait plus efficace que Hyperopt et SMAC, mais légèrement moins efficace que BayesOpt. J'adorerais partager les résultats ici, mais je vais attendre que Optunity soit enfin publié dans JMLR (en cours de révision depuis plus d'un an maintenant, alors ne retenez pas votre souffle ...).
Comme vous l'indiquez, l'augmentation de l'efficacité est un argument de vente couramment utilisé pour l'optimisation bayésienne, mais en pratique, elle ne tient que si les hypothèses des modèles de substitution sous-jacents sont valables, ce qui est loin d'être trivial. Dans nos expériences, le très simple solveur PSO d'Optunity est souvent en concurrence avec des approches bayésiennes complexes en termes de nombre d'évaluations de fonctions. Les solveurs bayésiens fonctionnent très bien lorsqu'ils sont dotés de bons a priori, mais avec un a priori non informatif, il n'y a pratiquement aucun avantage structurel par rapport aux méthodes métaheuristiques comme le PSO en termes d'efficacité.
Un grand argument de vente pour PSO est le fait que c'est parallèle de façon embarrassante. L'optimisation bayésienne est souvent difficile à paralléliser, en raison de sa nature intrinsèquement séquentielle (l'implémentation d'Hyperopt étant la seule vraie exception). Compte tenu des opportunités de distribution, qui deviennent la norme, Optunity prend rapidement les devants en termes d'horloge murale pour obtenir de bonnes solutions.
Une autre différence clé entre Optunity et la plupart des autres bibliothèques d'optimisation d'hyperparamètres dédiées est le public cible: Optunity a l'interface la plus simple et s'adresse aux experts non-machine learning, tandis que la plupart des autres bibliothèques nécessitent une certaine compréhension de l'optimisation bayésienne pour être utilisées efficacement (c'est-à-dire qu'elles sont à destination des spécialistes).
La raison pour laquelle nous avons créé la bibliothèque est que malgré le fait qu'il existe des méthodes d'optimisation d'hyperparamètres dédiées, elles ne sont pas adoptées dans la pratique. La plupart des gens ne sont toujours pas à l'écoute, le font manuellement, ou via des approches naïves comme la grille ou la recherche aléatoire. À notre avis, une des principales raisons à cela est le fait que les bibliothèques existantes avant de développer Optunity étaient trop difficiles à utiliser en termes d'installation, de documentation, d'API et souvent limitées à un seul environnement.
la source
La réponse dépend du problème et ne peut être donnée sans contexte supplémentaire. En règle générale, la réponse serait la suivante. L'optimisation bayésienne convient mieux aux problèmes de faible dimension avec un budget de calcul allant jusqu'à 10x-100x le nombre de variables. PSO peut être assez efficace pour des budgets beaucoup plus importants mais n'est pas à la pointe de la technologie dans son créneau.
la source