Ej 2

Ej 2

de Karolina Soca Rosas -
Número de respuestas: 6

Hola, que tal?

Tengo una duda, sino me estoy confundiendo, dado que yo para encontrar el proximal de la función g, tendría que hacer el  z = prox_{\lambda g}(v) = argmin \left \{  g(x) + \frac{1}{2 \lambda} \left \| x - v \right \|^{2} \right \}, cuando llego a v-z = \lambda \nabla g(z), ese \lambda es del método, pero además mi g(x) tiene otra \lambda, a eso me refiero con las dos \lambdas por las dudas, el \lambda que se da como dato, es la del método, o es la de la función g(x), o es lo mismo para las dos cosas?

Desde ya muchas gracias.

Saludos,

Karolina

En respuesta a Karolina Soca Rosas

Re: Ej 2

de Francisco Hermogenes Girardi Gutierrez -
Karolina ,Francisco Te escribe

Mira te recomiendo que en el segundo termino llames en vez de lambda ,alpha, que es uno de los valores que te da la letra
v−z=alpha∇g(z) para no confundirte .La letra dice lambda =0.15 y el alpha esta relacionado con el L de Lipschitz .

A partir de este punto ten en cuenta que el g ,no es la norma 1 pura ,sino que esta escalada con el lambda .
En el teórico Marcelo comparo contra el l1 puro o sea norma 1 o lo que es lo mismo alpha =1
Ahora las tres condiciones que expuso Marcelo para determinar la variable en el proximall ( <1,=0 ,<-1 )tambien deben ser escaladas
El factor de escalamiento ahora es alpha*lambda.El alpha porque ya dejo de ser 1, y el lambda para ajustar la escala de la norma .Eso lo puedes ver si haces un cambio de variable ,pero llegas a eso

Esto lo vimos en la clase de consulta con Matías.

Si no fui claro ,capaz los profes pueden ampliar

Francisco
En respuesta a Francisco Hermogenes Girardi Gutierrez

Re: Ej 2

de Karolina Soca Rosas -
Muchas gracias Francisco por tu respuesta.

La otra duda que me surge es el caso de los \lambda del método de obtención del proximal tanto para f(x) así como g(x) con que criterio se elige?

Saludos,

Karolina
En respuesta a Karolina Soca Rosas

Re: Ej 2

de Francisco Hermogenes Girardi Gutierrez -
No te entendi Karolina

El lambda es 0.15 te lo da la letra .No cambia en las iteraciones
El paso que es alpha tampoco ,es el que te da la letra (usa el np.linalg.norm() )para calcularlo

Tienes que hacerlas rutinas para calcular un proximal de g ,un proximal de f y luego se la aplicas a las funciones del problema
en el ciclo de iteración.
Pero siempre es el misma lambda y el mismo alpha .Es un descenso por paso constante

Francisco
En respuesta a Francisco Hermogenes Girardi Gutierrez

Re: Ej 2

de Karolina Soca Rosas -
La expresión del proximal tiene un \lambda que no es el \lambda de la función g(x)
\begin{align}(P) \ \ z = prox_{\lambda_{g} g} = argmin_{x} \ & \frac{1}{2\lambda_g} \left \| x - z  \right \|^2 + g(x)\ \leftrightarrow \frac{1}{\lambda_g} (z-v) + \nabla g(z) = 0 \rightarrow v-z= \lambda_g \nabla g(z)
\end{align}

donde g(x) = \lambda \left \| x \right \|_1

Yo entiendo que el \lambda que vale 0,15 es el de la función g(x), pero el que yo denomino \lambda_g porque es del proximal de g, no sé que valor debería adoptar.

Por otra parte el \alpha entiendo que es el del método de descenso por gradiente a ser usado, es decir el paso fijo, no tiene conexión con la expresión teórica del proximal, por lo que yo entiendo.

Saludos,

Karolina
En respuesta a Karolina Soca Rosas

Re: Ej 2

de Ignacio Ramirez -
Pah, yo le cambiaría el nombre a esa variable pero bueh. Lo que dice Francisco es más o menos cierto. Hay un tope para el valor máximo. Son embargo es tope no siempre es fácil de usar. Por otro lado, la velocidad de convergencia puede variar dramáticamente con el param. de ADMM. Lo mejor es probar con unos cuantos. Te sugiero escala logarítmica., tipo 1, 0.1, 10, etc