Pourquoi étudier l'optimisation convexe pour l'apprentissage machine théorique?


27

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?


2
Il n'est pas clair si vous vous opposez à la partie convexe, à la partie d'optimisation ou aux deux.
Mehrdad

Notez que la réponse que vous avez acceptée est manifestement erronée. Vous pouvez peut-être revoir cette question et choisir une réponse beaucoup plus logique.
xji

L'optimisation convexe et l'optimisation mathématique est un outil pour construire des modèles - ces techniques sont utilisées pour construire des modèles / contrôler / trouver des paramètres de phénomènes compréhensibles jusqu'à une certaine incertitude.
bruziuz

L'apprentissage automatique consiste à créer une approximation de fonction comme les méthodes de comptage, et pour autant que vous en connaissiez une de la fonction de sélection de concept qui minimise approximativement la perte (qui est non convexe ou même pire comprend des variables d'indicateur), donc ML joue bien avec l'optimisation non convexe.
bruziuz

FYI "L'optimisation convexe ne peut pas être utilisée pour l'apprentissage en profondeur - S.Boyd" - youtu.be/uF3htLwUHn0?t=2810
bruziuz

Réponses:


60

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 .

Exemple de paysage de perte non convexe réel.

(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 ).


5
cette réponse ne semble pas adresser "convexe"
Haitao Du

@ hxd1011 Je l'ai commenté.
Tim

Très bonne réponse! Traite vraiment de la façon dont l'optimisation est critique pour ML et comment ML simplifie en utilisant des approximations convexes qui fonctionnent avec la descente de gradient
ChuckCottrill

Ce devrait être la réponse acceptée.
Jan Kukacka

11

Je pense qu'il y a deux questions ici.

  • Pourquoi étudier l'optimisation
  • Pourquoi l'optimisation convexe

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

Un policier voit un homme ivre chercher quelque chose sous un lampadaire et demande ce que l'ivrogne a perdu. Il dit qu'il a perdu ses clés et qu'ils regardent tous les deux sous le réverbère. Après quelques minutes, le policier demande s'il est sûr de les avoir perdus ici, et l'ivrogne répond non, et qu'il les a perdus dans le parc. Le policier lui demande pourquoi il cherche ici, et l'ivrogne répond: "c'est là que la lumière est".


2
Mais métaphoriquement, c'est pourquoi vous obtenez une lampe de poche. Il est difficile, voire impossible, de rechercher les clés dans l'obscurité. Vous adaptez donc le problème à celui que vous savez résoudre. Si vous travaillez sur un problème avec des algorithmes non convexes et trouvez une solution qui coûtera 3 millions de dollars, et je travaille un problème similaire avec l'optimisation convexe et prenez ma réponse et trouvez une solution au problème non convexe qui coûte 2 millions de dollars, j'ai trouvé une meilleure réponse.
prosfilaes

Cette réponse est erronée à de nombreux niveaux. Comparer l'analyse convexe à l' effet de réverbère est tout simplement faux . Je vous conseille de vous référer au manuel d'introduction Convex Optimization de Boyd et Vandenberghe afin d'en savoir plus sur le sujet.
Digio

2

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.


33
Oui, dans le machine learning, nous recherchons les meilleures approximations. Mais vous vous trompez en disant que les deux choses sont "fondamentalement différentes". Les algorithmes ML utilisent l'optimisation pour minimiser les fonctions de perte et trouver les paramètres optimaux compte tenu des données et de l'objectif. Lorsque vous réglez vos hyperparamètres, vous recherchez leur combinaison optimale. Dans chacun des cas, vous maximisez ou minimisez quelque chose pour atteindre votre objectif, vous utilisez donc une sorte d'optimisation.
Tim

@Tim: C'est vrai, j'aurais dû formuler cela différemment.
Toby

17
si vous êtes d'accord, vous devriez probablement le reformuler.
Tim

19
Cette réponse est manifestement fausse. Un nombre important de problèmes d'apprentissage automatique se résument à des problèmes d'optimisation.
Rétablir Monica le

2
L'affirmation selon laquelle «dans les problèmes d'optimisation, la solution optimale ne peut généralement pas être trouvée» est incorrecte. Surtout dans le contexte de l'optimisation convexe (ce que demande OP), la solution optimale peut être facilement trouvée (par exemple, la descente de gradient avec une vitesse d'apprentissage décroissante est garantie de converger vers l'optimum d'une fonction convexe). Le gros problème est que de nombreux problèmes dans l'apprentissage automatique ne sont pas convexes .
Jan Kukacka

2

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».


1

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!


0

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:

  1. Quelle est la famille de fonctions dont vous tirez l'approximateur

  2. Qu'est-ce qu'un critère pour tirer une fonction

  3. 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:

  1. Optimisation convexe / analyse convexe - domaine très cool des mathématiques. La non-différenciation n'est pas un problème. Et il y a 50 généralisation des fonctions convexes dont plus de deux utiles en termes d'application sont quasiconvexes et log-concaves.

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"

  1. 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)

  2. 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 )


Ceci est un petit résumé par rapport aux standards de ce site comme réponse - pensez-vous que vous pourriez développer cela? Sinon, il pourrait être préférable de faire un commentaire.
Silverfish

D'accord. Je vais développer, mais en fait, il est possible d'écrire un article sur la connexion avec différents domaines. En fait, j'ai posé une question à Stephen P. Boyd sur la question de savoir si les gens y avaient pensé auparavant et quand - youtu.be/XV1E-Jnc4SU?t=242 . Il a dit que le monde d'aujourd'hui était fracturé.
bruziuz

1
@Silverfish J'ai mis à jour, maintenant c'est un texte long au lieu d'une phrase.
bruziuz
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.