La Descente de Gradient avec des contraintes (multiplicateurs de lagrange)

J'essaie de trouver le minimum d'une fonction à N paramètres à l'aide de la descente de gradient. Cependant je veux le faire tout en limitant la somme des valeurs absolues des paramètres à 1 (ou <= 1, n'a pas d'importance). Pour cette raison, je suis en utilisant la méthode des multiplicateurs de lagrange si ma fonction est f(x), je vais être de réduire f(x) + lambda * (g(x)-1) où g(x) est une approximation régulière pour la somme des valeurs absolues des paramètres.

Maintenant que je comprends, le gradient de cette fonction ne sera 0 lorsque g(x)=1, de sorte qu'une méthode pour trouver un minimum local doit trouver le minimum de ma fonction qui est à ma condition est également remplie. Le problème est que ce plus ma fonction illimitée, de sorte que la Descente de Gradient trouve tout simplement de plus en plus grande des lambdas avec de plus en plus grande des paramètres (en valeur absolue) et ne converge jamais.

Pour le moment je suis en utilisant python (scipy) la mise en œuvre de la CG donc je préfère vraiment les suggestions qui ne nécessitent pas de me re-écrire /modifier légèrement le code GE moi-même, mais l'utilisation d'une méthode existante.

InformationsquelleAutor nickb | 2012-09-05