Um pouco sobre a dualidade cônica

Ao estudar cursos teóricos em aprendizado de máquina (matemática. Economia, otimização, finanças, etc.), o conceito de um "problema duplo" é freqüentemente encontrado.

As tarefas duplas são frequentemente usadas para obter estimativas mais baixas (ou superiores) para o destino funcional em problemas de otimização. Além disso, para quase qualquer declaração significativa do problema de otimização, o problema duplo tem uma interpretação significativa. Ou seja, se você se deparar com um importante problema de otimização, o problema duplo também é provavelmente importante.

Neste artigo, falarei sobre a dualidade cônica. Essa maneira de construir tarefas duplas, na minha opinião, é imerecidamente privada de atenção ...

Próximo matan ...

Como as tarefas duplas geralmente são criadas?


Seja dado algum problema de otimização:

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



A tarefa dupla é construída de acordo com o seguinte esquema:

  • Build Lagrangian

L(x, lambda, mu)=f(x)+ sumi=1k lambdaifi(x)+ sumi=1m muihi(x)


  • Construa uma função dupla

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


  • Obter uma tarefa dupla

 max lambda, mug( lambda, mu) lambda geq0



A principal dificuldade desse esquema está ligada na etapa de pesquisa  infxL(x, lambda, mu).

Se o problema não for convexo, é um caixão - no caso geral, não pode ser resolvido em tempo polinomial (se P neqNP) e esses problemas neste artigo não entraremos em contato no futuro.

Suponha que o problema é convexo, e daí?

Se o problema for suave, podemos usar a condição de otimização de primeira ordem  nablaxL(x, lambda, mu)=0. A partir dessa condição, se tudo estiver OK, deduzirá ou x( lambda, mu)= arg minxL(x, lambda, mu)e g( lambda, mu)=L(x( lambda, mu), lambda, muou diretamente função g( lambda, mu).

Se o problema não for bom, poderíamos usar um análogo da condição de primeira ordem 0 in parcialxL(x, lambda, mu)(aqui  parcialxL(x, lambda, mu)denota um subdiferencial de uma função L(x, lambda, mu)), no entanto, esse procedimento geralmente é muito mais complicado.

Às vezes, existe um problema de otimização “suave” equivalente e pode-se construir um duplo para ele. Mas, para a melhoria da estrutura (de não suave para suave), como regra, você sempre deve pagar um aumento de dimensão.

Dualidade cônica


Existem algumas tarefas de otimização (exemplos abaixo) que admitem a seguinte representação:

 minx inRncTxAx+b emK


onde A- matriz b- vetor K- cone convexo não degenerado.

Nesse caso, a tarefa dupla pode ser construída de acordo com o seguinte esquema:

A tarefa dupla é construída de acordo com o seguinte esquema:

  • Build Lagrangian

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


  • Construa uma função dupla

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


  • Obter uma tarefa dupla

 max lambdabT lambdac+AT lambda=0 lambda emK


onde está o cone conjugado Kpara cone Kdefinido como K ^ * = \ left \ {y \ em R ^ k | z ^ T y \ geq 0, \ quad \ forall z \ in K \ right \} .

Como vemos, toda a complexidade da construção do problema duplo foi transferida para a construção do cone duplo. Mas a alegria é que existe um bom cálculo para a construção de cones duplos e, muitas vezes, um cone duplo pode ser escrito imediatamente.

Exemplo


Suponha que precisamos construir um problema de otimização dupla para o problema:

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



Aqui  |x |1= sumi=1n|xi|,  |x |2= sqrt sumi=1nxi2

A primeira coisa que você pode notar: a função objetivo sempre pode ser linear!

Em vez disso, sempre há um problema equivalente com uma função objetivo linear:

 minx emRn,y emR,z emRy+z |x |2 leqy |x |1 leqzAx geqb



Agora você precisa usar um pouco de conhecimento secreto: muitos

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

e

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

são cones convexos.

Assim, chegamos à notação equivalente do problema:

 minx emRn,y emR,z emRy+zIn+1 beginpmatrixxy endpmatrix+0n+1 emK2In+1 beginpmatrixxz endpmatrix+0n+1 emK1Axb emR+k



Agora podemos escrever imediatamente um problema duplo:

 max lambda, mu, nubT nu lambdai+ mui+[AT nu]i=0, quad1 leqi leqn lambdan+1+1=0 mun+1+1=0 lambda emK2(=K2) mu emK1(=K infty) nu emR+k


ou, para simplificar um pouco,

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



onde  | mu | infty= maxi| mui|.

Links para mais estudos:

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


All Articles