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:
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)
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:
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
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=1x2iLo 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 enK1Ax−b enRk+
Ahora podemos escribir de inmediato un problema doble:
max lambda, mu, nu−bT nu lambdai+ mui+[AT nu]i=0, quad1 leqi leqn lambdan+1+1=0 mun+1+1=0− lambda enK∗2(=K2)− mu enK∗1(=K infty)− nu enRk+
o, para simplificar un poco,
max lambda, mu, nu−bT nu lambda+ mu+AT nu=0 | lambda |2 leq1 | mu | infty leq1− nu enRk+
donde
| mu | infty= maxi| mui| .
Enlaces para estudios posteriores: