Je travaille sur l'apprentissage machine théorique - sur l'apprentissage par transfert, pour être précis - pour mon doctorat.
Par curiosité, pourquoi devrais-je suivre un cours sur l'optimisation convexe?
Quelles leçons tirer de l'optimisation convexe puis-je utiliser dans mes recherches sur le machine learning théorique?
machine-learning
optimization
convex
transfer-learning
Upendra Pratap Singh
la source
la source
Réponses:
Les algorithmes d'apprentissage automatique utilisent constamment l'optimisation. Nous minimisons la perte ou l'erreur, ou maximisons une sorte de fonctions de score. La descente de gradient est l'algorithme d'optimisation "bonjour le monde" couvert probablement sur n'importe quel cours d'apprentissage automatique. C'est évident dans le cas des modèles de régression ou de classification, mais même avec des tâches telles que le clustering, nous recherchons une solution qui s'adapte de manière optimale à nos données (par exemple, k-means minimise la somme des carrés intra-cluster). Donc, si vous souhaitez comprendre le fonctionnement des algorithmes d'apprentissage automatique, en savoir plus sur l'optimisation est utile. De plus, si vous devez faire des choses comme le réglage hyperparamétrique, vous utilisez également directement l'optimisation.
On pourrait dire que l'optimisation convexe ne devrait pas être si intéressante pour l'apprentissage automatique car au lieu de traiter des fonctions convexes , nous rencontrons souvent des surfaces de perte comme celle ci-dessous, qui sont loin d'être convexes .
(source: https://www.cs.umd.edu/~tomg/projects/landscapes/ et arXiv: 1712.09913 )
Néanmoins, comme mentionné dans d'autres réponses, l'optimisation convexe est plus rapide, plus simple et moins gourmande en calcul, il est donc souvent plus facile de «convexifier» un problème (le rendre convivial pour l'optimisation convexe), puis d'utiliser l'optimisation non convexe. Par exemple, les algorithmes de descente de gradient et similaires sont couramment utilisés dans l'apprentissage automatique, en particulier pour les réseaux de neurones, car ils "fonctionnent", évoluent et sont largement mis en œuvre dans différents logiciels, néanmoins ils ne sont pas les meilleurs que nous pouvons obtenir et avoir leurs pièges , tel que discuté par le discours d'Ali Rahimi au NIPS 2017 .
D'un autre côté, les algorithmes d'optimisation non convexes tels que les algorithmes évolutionnaires semblent gagner de plus en plus de reconnaissance dans la communauté ML, par exemple la formation de réseaux de neurones par neuroévolution semble être un sujet de recherche récent (voir aussi arXiv: 1712.07897 ).
la source
Je pense qu'il y a deux questions ici.
Je pense que @Tim a une bonne réponse sur pourquoi l'optimisation. Je suis fortement d'accord et je recommanderais à toute personne intéressée par l'apprentissage automatique de maîtriser l'optimisation continue. Parce que le processus d'optimisation / trouver la meilleure solution au fil du temps, est le processus d'apprentissage pour un ordinateur.
Je veux parler davantage de la raison pour laquelle nous nous intéressons aux fonctions convexes. La raison est simple: les optimisations convexes sont "plus faciles à résoudre", et nous avons beaucoup d'algorithmes fiables à résoudre.
Mais le monde est-il convexe? Non. Pourquoi obsédé par la convexité? Vérifiez cette métaphore
la source
Le point le plus important à retenir est que l'apprentissage automatique est appliqué aux problèmes pour lesquels aucune solution optimale n'est disponible. Le mieux que vous puissiez faire est de trouver une bonne approximation.
En revanche, lorsque vous avez un problème d'optimisation, il existe une solution optimale, mais elle ne peut généralement pas être trouvée dans un délai raisonnable ou avec une puissance de traitement raisonnable.
Les outils et algorithmes que vous utilisez sont fondamentalement différents. Donc, même si je dirais qu'il n'y a aucun avantage immédiat à suivre un cours d'optimisation, il est toujours bon d'en savoir un peu plus sur les domaines connexes. Si vous pouvez reconnaître un problème d'optimisation, vous saurez que vous ne devez pas le résoudre avec des algorithmes d'apprentissage automatique mais plutôt avec des algorithmes d'optimisation. Rien que cela vaut beaucoup, je dirais.
la source
Comme l'a dit hxd1011, les problèmes convexes sont plus faciles à résoudre, à la fois théoriquement et (généralement) dans la pratique. Ainsi, même pour des problèmes non convexes, de nombreux algorithmes d'optimisation commencent par "l'étape 1. réduire le problème à un problème convexe" (éventuellement à l'intérieur d'une boucle while).
Une chose similaire se produit avec le rootfinding non linéaire. Habituellement, la solution (par exemple, avec la méthode de Newton) passe à «l'étape 1. Réduisez-la à un problème linéaire, car nous savons comment les résoudre».
la source
Si vos intérêts résident dans l'optimisation (convexe) appliquée à l'apprentissage profond (vous mentionnez l'apprentissage par transfert, qui est largement utilisé dans la pratique avec les réseaux de neurones), je vous encourage fortement à envisager de lire le chapitre 8 (optimisation pour la formation des réseaux de neurones profonds) de http : //www.deeplearningbook.org/
Il y a une discussion sur l'optimisation convexe, et pourquoi elle n'a pas encore été aussi réussie lorsqu'elle est appliquée à des réseaux de neurones profonds. Bien sûr, vous pourriez peut-être faire des recherches dans ce domaine qui changeront le consensus actuel!
la source
Comme je l'ai entendu de Jerome H. Friedman, les méthodes développées dans le Machine Learning n'appartiennent pas en soi à la communauté Machine Learning.
De mon point de vue, le Machine Learning ressemble plus à une collection de diverses méthodes provenant d'un autre domaine.
Du point de vue de l'apprentissage statistique, les trois principales questions de régression et de classification sont les suivantes:
Quelle est la famille de fonctions dont vous tirez l'approximateur
Qu'est-ce qu'un critère pour tirer une fonction
Qu'est-ce qu'une méthode pour trouver la meilleure fonction
Pour fonctionner de manière constructive sur (1) - il n'est pas si évident comment l'utilisation de l'optimisation mathématique peut aider
Pour opérer de manière constructive sur (2) - il est évident que l'objectif est le but. Et l'optimisation mathématique peut vous aider.
Pour fonctionner de manière constructive sur (3) - vous avez besoin d'une optimisation mathématique.
Il y a plusieurs parties de l'optimisation mathématique:
Il existe également des moyens de traiter la "stochasticité" d'une certaine manière, même "Personne ne sait comment résoudre l'optimisation convexe stochastique"
Optimisation non convexe - généralement, les gens entendent par là quelque chose qui est un objectif continu, mais la courbure peut varier. Les gens de cette planète ne savent pas comment le résoudre avec précision. Et en fait, tous les mehtods font levier sur (1)
Optimisation combinatoire - c'est encore plus sauvage que (2), maintenant pour les paramètres que vous trouvez que vous ne pouvez même pas appliquer d'opérateur moins. Un exemple est «régions» dans les arbres de décision. Il y a donc deux façons de le traiter: a) Convexifier le problème et utiliser les méthodes de (1) b) Faire de la force brute. Ne fonctionne pas pour un grand nombre de paramètres. c) Faites de la force brute mais avec quelques étapes gourmandes. C'est quelque chose que CART fait.
Donc au moins je pense que je vous convainque que:
I) L'optimisation convexe est la chose centrale pour la plupart des problèmes d'optimisation.
II) "01:15 L'optimisation est en fait un sujet plus grand que ML ou AI, mais c'est en fait un sujet plus grand." ( https://www.youtube.com/watch?v=uF3htLwUHn0&t=992s )
la source