Régularisation et projection sur la balle

8

J'essaie de comprendre comment fonctionne la régularisation en termes de projections sur une boule et de projection euclidienne sur le simplexe.l

Je ne suis pas sûr de comprendre ce que nous voulons dire lorsque nous le vecteur de poids sur les ou .l1l2

Je peux comprendre le concept de régularisation par programmation, comme dans, nous passons par chaque élément du vecteur de poids, et appliquons où , ce qui conduit les petits poids à 0.l1signum(w) * max(0.0, abs(w) - shrinkageValue)shrinkageValue = regularizationParameter * eta

Je suppose qu'il me manque un peu de mathématiques ici, alors ma question est de savoir comment traduire la projection du vecteur dans le programme que je viens de décrire? Comment la régularisation et les projections vectorielles sont-elles connectées?

Edit: J'essaie de parcourir cet article Projections efficaces sur la -Ball pour l'apprentissage en haute dimensionl1

Bar
la source

Réponses:

11

La régularisation et les projections vectorielles sont liées par l'idée d' optimisation contrainte et les conditions de Karush-Kuhn (sans relation) -Tucker .

Quelles sont les conditions KKT?

En bref, ceux-ci indiquent que, si est une solution au problème "minimiser soumis à ", alors est également une solution au problème pour certains scalaires . Mais cela revient à dire , ce qui signifie que minimise le problème d'optimisation non contraint "minimise ".xf(x)g(x)0xf(x)=λg(x)λf(x)λg(x)=0xf(x)λg(x)

L'intuition est que:

  • g(x)<0 . Dans ce cas, est une "solution intérieure", donc le gradient de doit être nul à ce point. (S'il n'était pas nul, nous pourrions nous déplacer un peu dans cette direction à partir de , tout en maintenant , et avoir une valeur plus élevée pour . Ensuite, nous définissons et nous ' re fait.xfxg(x)<0f(x)λ=0

  • Ou, . Dans ce cas, est au bord de l'espace de solution possible. Localement, cette arête ressemble à un hyperplan orthogonal au gradient , car la façon dont vous maintenez la contrainte est de ne pas monter ou descendre le gradient du tout. Mais cela signifie que la seule direction que le gradient pourrait éventuellement pointer est exactement la même direction que - s'il avait une composante orthogonale à , nous pourrions déplacer un peu dans cette direction, rester sur l'hyperplan orthogonal , et augmenter .g(x)=0xg(x)g(x)=0fggxg(x)=0f(x)

Comment les conditions KKT expliquent la relation entre minimisation contrainte et régularisation

Si pour une norme et une constante , alors la contrainte signifie que se trouve sur une sphère de rayon sous cette norme. Et dans la formulation non contrainte, la soustraction de de la fonction que vous souhaitez maximiser est ce qui finit par appliquer la pénalité de régularisation: vous soustrayez vraiment (et la constante n'a pas d'importance pour l'optimisation).g(x)=|x|ccg(x)0xcλg(x)λ|x|+λcλc

Les gens profitent souvent de cette «dualité» entre l'optimisation non contrainte et contrainte. Pour un exemple que j'ai pu trouver rapidement sur Google, voir On the LASSO and its dual .

Pourquoi les projections sont-elles importantes ici?

OK, alors pourquoi quelqu'un écrit-il un article sur des projections rapides?

Fondamentalement, une façon d'optimiser les contraintes générales - "maximiser sous réserve de " - est de procéder comme suit:f(x)xX

  • Prenez n'importe quel algorithme itératif pour une maximisation sans contrainte def(x)
  • Commencez avec une suppositionx0
  • Faites une étape de l'algorithme:x0step(x0)
  • ensuite sur l'ensemble : .Xx1PX(x0)
  • Et répétez jusqu'à convergence.

Par exemple, c'est ainsi que la descente de gradient projetée est dérivée de la descente de gradient ordinaire. Bien sûr, l'optimisation de votre fonction de projection est ici d'une importance vitale.PX

Mettre tous ensemble

Supposons donc que vous vouliez résoudre le LASSO:

argminβ(yβX)2+λ||β||1

C'est la version sans contrainte. Par les conditions KKT, l'ajout du terme de régularisation équivaut à contraindre la solution à se trouver dans pour une constante . Mais ce n'est que la de rayon !||β||1cc1c

Vous pouvez donc imaginer résoudre ce problème avec une descente (sub) de gradient projetée. * Si vous le , votre fonction serait une projection sur la boule unitaire, et vous voulez faire ça rapidement.PX

* Je ne pense pas que les gens fassent cela, car il existe des moyens plus efficaces. Mais ceux-ci pourraient également utiliser des projections. EDIT: comme le souligne @Dougal, une variante plus sophistiquée de la descente projetée du premier cycle était assez bonne pour écrire un article sur en 2008.

Ben Kuhn
la source
1
L' algorithme ISTA / FISTA est fondamentalement (accéléré) une descente projetée sous-graduelle, qui n'est peut-être pas l'algorithme LASSO le plus favorisé, mais il est plutôt bon (et je pense que c'était l'état de l'art vers 2008 lorsque ce document a été publié).
Dougal
@Dougal: merci pour la référence! Je l'ai édité.
Ben Kuhn