Programación Cuadrática y Lazo

11

Estoy tratando de realizar una regresión de lazo, que tiene la siguiente forma:

Minimice in ( Y - X w ) ( Y - X w ) + λw(YXw)(YXw)+λ|w|1

Dado un , me aconsejaron encontrar la w óptima con la ayuda de la programación cuadrática, que toma la siguiente forma:λw

Minimizar en 1x, sujeto aAxb.12xQx+cxAxb.

Ahora me doy cuenta de que el término debe transformarse en el término de restricción A x b , que es bastante sencillo. Sin embargo, de alguna manera no veo cómo podría transferir el primer término de la primera ecuación al primer término de la segunda. No pude encontrar mucho al respecto en la red, así que decidí preguntar aquí.λAxb

espurra
fuente

Respuestas:

10

Teniendo en cuenta que estamos trabajando con como la variable ' x ' en la forma estándar, expanda ( Y - X w ) ( Y - X w ) y recopile términos en w wx(YXw)(YXw) y en w ' y w , y constantes.w[something]www

Explica por qué puedes ignorar las constantes.

Explicar por qué se puede combinar el y W términos.ww


Como BananaCode ya ha descubierto algunos guiones a lo largo del camino, puede escribir y c = - 2 X Y o más simplemente, puede escribir Q = X X y c = - X Y (ya que f ( x ) y k f ( x ) tienen el mismo argumento para cualquier k > 0 ).Q=2XXc=2XY Q=XXc=XYf(x)kf(x)k>0

Glen_b -Reinstate a Monica
fuente
Las constantes se pueden ignorar, porque si x_ es el mínimo para f (x), entonces x_ + c es el mínimo de f (x) + c, por lo tanto, podemos ignorar la constante c. Editaré mi pregunta para mostrar dónde me quedé atrapado.
Spurra
BananaCode su explicación tiene varios defectos. Si con "es el mínimo para " quiere decir "es el argumento en el que se minimiza f ( x ) ", usted dice algo así como " x es el argumento de f ". Pero tu conclusión allí es incorrecta. Si agrega c a f , no agrega c al argmin. f(x)f(x)xargminfcfc
Glen_b -Reinstate Monica
Mira donde escribí en mi respuesta? ¿Qué eslo quetienes ahora entre la w ' y la w al final de tu pregunta? w[something]www
Glen_b -Reinstate Monica
Sí, quise decir que es el a r g m i n de f . ¿Podría dar un ejemplo donde mi conclusión es incorrecta? La [ s o m e t h i n g ] es la matriz Q que estoy tratando de formar. Si expando w ( X X w - X Y ) obtengo w X X w - w X xargminf[something]Qw(XXwXY) . La primera parte representaría la forma de la Q de la matriz, sin embargo no puede deshacerse de la segunda término - w ' X ' Y . wXXwwXYQwXY
Spurra
1
@ AD.Net Las restricciones se tratan principalmente en la otra respuesta.
Glen_b -Reinstala a Monica
11

Quería agregar cómo resolver transformando las restricciones en una forma utilizable para la programación cuadrática, ya que no es tan sencillo como pensaba. No es posible encontrar una matriz real A tal que A w s | w i | s .|wi|sAAws|wi|s

El enfoque que utilicé fue dividir los elementos del vector w en w + i y w - i , de modo que w i = w + i - w - i . Si w i0 , tienes w + i = w i y w - i = 0 , de lo contrario tienes w - i = | w i | y wwiwwi+wiwi=wi+wiwi0wi+=wiwi=0wi=|wi|. O en términos más matemáticos,w + i =| wi| +wiwi+=0 yw - i =| wi| -wiwi+=|wi|+wi2Tantow - i comow + i son números no negativos. La idea detrás de dividir los números es que ahora tienes| wi| =w + i +w - i , eliminando efectivamente los valores absolutos.wi=|wi|wi2.wiwi+|wi|=wi++wi

12(w+w)TQ(w+w)+cT(w+w)wi++wis,wi+,wi0

Qc

Esto debe transformarse en una forma utilizable, es decir, necesitamos un vector. Esto se hace de la siguiente manera:

12[w+w]T[QQQQ][w+w]+[cTcT][w+w]

sujeto a

[IDIDI2D][w+w][sD02D]

IDDsDDs0D2D|wi|=wi++wiswi+,wi0w+wssw=w+w

Fuente y lecturas adicionales: resolución de problemas de programación cuadrática con restricciones lineales que contienen valores absolutos

espurra
fuente
2D(w+,w)w+ww0
La matriz y el vector en la expresión final pueden ser más simples y, de hecho, más correctos. En lugar de [Id Id] [w + w−] '≤ Sd, podría poner simplemente [1 1 .... 1] [w + w-]' ≤ s. Esto es literalmente equivalente a ∑ | wi | = ∑ (wi + + wi−) ≤ s.
Marko