Un poco sobre la dualidad cónica

Al estudiar cursos teóricos en aprendizaje automático (matemáticas, economía, optimización, finanzas, etc.), a menudo se encuentra el concepto de un "problema dual".

Las tareas duales a menudo se utilizan para obtener estimaciones inferiores (o superiores) para el objetivo funcional en problemas de optimización. Además, para casi cualquier declaración significativa del problema de optimización, el problema dual tiene una interpretación significativa. Es decir, si se enfrenta a un problema importante de optimización, entonces su problema dual también es muy importante.

En este artículo hablaré sobre la dualidad cónica. Esta forma de construir tareas duales, en mi opinión, es inmerecidamente privada de atención ...

Siguiente matan ...

¿Cómo se suelen construir las tareas duales?


Deje que se dé algún problema de optimización:

 minx enRnf(x)fi(x) leq0, quad1 leqi leqkhi(x)=0,1 leqi leqm$



La tarea dual se construye de acuerdo con el siguiente esquema:

  • Construir lagrangiana

L(x, lambda, mu)=f(x)+ sumki=1 lambdaifi(x)+ summi=1 muihi(x)


  • Construye una doble función

g( lambda, mu)= infxL(x, lambda, mu)


  • Consigue una doble tarea

 max lambda, mug( lambda, mu) lambda geq0



La principal dificultad en este esquema está conectada en el paso de búsqueda  infxL(x, lambda, mu) .

Si el problema no es convexo, entonces se trata de un ataúd; en el caso general, no se puede resolver en tiempo polinómico (si P neqNP ) y los problemas de este artículo que no abordaremos en el futuro.

Suponga que el problema es convexo, ¿entonces qué?

Si el problema es fluido, entonces podemos usar la condición de optimización de primer orden  nablaxL(x, lambda, mu)=0 . A partir de esta condición, si todo está bien, resulta deducir o x( lambda, mu)= arg minxL(x, lambda, mu) y g( lambda, mu)=L(x( lambda, mu), lambda, mu) o directamente funciona g( lambda, mu) .

Si el problema no es sencillo, entonces podríamos usar un análogo de la condición de primer orden 0 in partialxL(x, lambda, mu) (aquí  partialxL(x, lambda, mu) denota un subdireccional de una función L(x, lambda, mu) ), sin embargo, este procedimiento suele ser mucho más complicado.

A veces hay un problema de optimización "suave" equivalente y se puede construir uno doble para él. Pero para la mejora de la estructura (de no suave a suave), por regla general, siempre debe pagar un aumento en la dimensión.

Dualidad cónica


Hay bastantes tareas de optimización (ejemplos a continuación) que admiten la siguiente representación:

 minx enRncTxAx+b enK


donde A - matriz b - vector K - cono convexo no degenerado.

En este caso, la tarea dual se puede construir de acuerdo con el siguiente esquema:

La tarea dual se construye de acuerdo con el siguiente esquema:

  • Construir lagrangiana

L(x, lambda)=cTx+ lambdaT(Ax+b)


  • Construye una doble función

g( lambda)= infxL(x, lambda)= begincases lambdaTb, quadc+AT lambda=0 infty, quadc+AT lambda neq0 endcases


  • Consigue una doble tarea

 max lambdabT lambdac+AT lambda=0 lambda enK


donde esta el cono conjugado K para cono K definido como K ^ * = \ left \ {y \ en R ^ k | z ^ T y \ geq 0, \ quad \ forall z \ in K \ right \} .

Como vemos, toda la complejidad de la construcción del problema dual se transfirió a la construcción del cono dual. Pero la alegría es que hay un buen cálculo para construir conos dobles y muy a menudo se puede escribir un cono dual de inmediato.

Ejemplo


Supongamos que necesitamos construir un problema de optimización dual para el problema:

 minx enRn |x |2+ |x |1Ax geqb



Aqui  |x |1= sumni=1|xi| ,  |x |2= sqrt sumni=1x2i

Lo primero que puede notar: ¡la función objetivo siempre se puede hacer lineal!

Más bien, siempre hay un problema equivalente con una función objetivo lineal:

 minx enRn,y enR,z enRy+z |x |2 leqy |x |1 leqzAx geqb



Ahora necesita usar un poco de conocimiento secreto: muchos

K_1 = \ {(x, t) \ en R ^ n \ veces R | \ quad \ | x \ | _1 \ leq t \}

y

K_2 = \ {(x, t) \ en R ^ n \ veces R | \ quad \ | x \ | _2 \ leq t \}

son conos convexos

Por lo tanto, llegamos a la notación equivalente del problema:

 minx enRn,y enR,z enRy+zIn+1 beginpmatrixxy endpmatrix+0n+1 enK2In+1 beginpmatrixxz endpmatrix+0n+1 enK1Axb enRk+



Ahora podemos escribir de inmediato un problema doble:

 max lambda, mu, nubT nu lambdai+ mui+[AT nu]i=0, quad1 leqi leqn lambdan+1+1=0 mun+1+1=0 lambda enK2(=K2) mu enK1(=K infty) nu enRk+


o, para simplificar un poco,

 max lambda, mu, nubT nu lambda+ mu+AT nu=0 | lambda |2 leq1 | mu | infty leq1 nu enRk+



donde  | mu | infty= maxi| mui| .

Enlaces para estudios posteriores:

Source: https://habr.com/ru/post/es431756/


All Articles