6 votos

Regresión lineal con $l_0$ regularización

En un problema de regresión lineal con restricción de sparsity, $P = (P_1, \cdots, P_N)^{T}$ es el vector columna de las salidas, y $D = (d_{j, k})$ es el $(N \times M)$ - matriz dimensional de entradas. La función objetivo es

$$\text{argmin}_{c \in \Bbb R^{M}} (\Vert P - Dc \Vert_2^2 + \lambda \Vert c \Vert_0)$$

en el que $\Vert c \Vert_0 = \# \{j: c_j \neq 0\}$

He aprendido que este problema es NP-difícil, pero no entiendo por qué.

Lo que pienso:

En total hay $N$ casos que debemos considerar

$$N = C(M, 1) + C(M, 2) + \cdots + C(M, M)$$ en el que $M$ es la dimensión del vector de coeficientes $c$ . $C(M, n) = \begin{pmatrix} M\\ n \end{pmatrix} = \frac{M!}{(M-n)!n!} $ .

Para cada tupla de características seleccionadas, realizamos OLS (sin tener en cuenta el regularizador) y registramos la pérdida: $$L = RMSE + \lambda \Vert c \Vert_0$$

Después de hacer $N$ de estos cálculos, podemos elegir la tupla de características que produzca el menor $L$ .

Sin embargo, no sé si el resultado obtenido es realmente la solución a la función objetivo original, ya que en primer lugar no tenemos en cuenta el efecto del regularizador.

O este algoritmo no tiene sentido, en lugar de comparar $L = RMSE + \lambda \Vert c \Vert_0$ entre tuplas de diferentes tamaños, sólo podemos comparar la $RMSE$ del conjunto de tuplas de características del mismo tamaño.

0 votos

No tengo la respuesta a tu pregunta principal, pero ten en cuenta que en el algoritmo que propones, no querrías comparar las soluciones en función de su RMSE, porque entonces siempre ganaría la solución sin coeficientes cero (es decir, con todas las variables incluidas en el modelo). Lo que quiere es compararlas en función de su coste total tal y como lo definió en la primera ecuación, es decir, incluyendo los $l_0$ pena.

0 votos

@ Ruben van Bergen ¡Gracias por señalarlo! Me preguntaba dónde está el efecto del regularizador en este algoritmo.

4voto

throwaway Puntos 18

En primer lugar, obsérvese que la dureza NP es una propiedad de un problema en lugar de un algoritmo --pone límites al rendimiento de cualquier algoritmo. La prueba funciona estableciendo relaciones entre problemas para demostrar la pertenencia a clases de complejidad.

Fondo

A clase de complejidad es un conjunto de problemas de cálculo definido por 1) un recurso informático de interés (por ejemplo, tiempo, memoria, etc.), 2) un modelo de cálculo (por ejemplo Máquina de Turing ), y 3) un límite que describa cómo los recursos necesarios para calcular una solución varían con el tamaño del problema.

NP es el conjunto de todos los problemas de decisión donde, si la respuesta es "sí", existe una prueba que puede verificarse en tiempo polinomial por una máquina de Turing determinista. Informalmente, esto significa que es posible comprobar eficazmente la respuesta, incluso si no es posible producir eficazmente la respuesta en primer lugar.

Un problema $q$ es NP-completo si está en NP, y cada problema $r$ en NP puede ser reducido a $q$ en tiempo polinomial . Esto significa que existe un algoritmo eficiente para transformar $r$ en $q$ . Por lo tanto, si un algoritmo eficiente para resolver $q$ existe, también puede utilizarse para resolver $r$ eficientemente. Informalmente, si $a$ puede reducirse a $b$ entonces $b$ es al menos tan difícil de resolver como $a$ . Así pues, los problemas NP-completos son los problemas más difíciles de NP.

Un problema $q$ es NP-difícil si todo problema NP-completo puede reducirse a él en tiempo polinómico. Sin embargo, $q$ no tiene que estar necesariamente en NP. Informalmente, los problemas NP-duros son al menos tan difíciles como los problemas más difíciles de NP.

Regresión dispersa

En este artículo se demuestra la dificultad NP de la regresión dispersa:

Natarajan (1995). Soluciones aproximadas dispersas de sistemas lineales.

Llaman al problema de regresión dispersa SAS (por sparse approximate solution). La prueba de la dureza NP consiste en reducir un problema denominado "cobertura exacta con 3 conjuntos" (también conocido como X3C ) a SAS. Muestran explícitamente cómo transformar cualquier problema X3C en un problema SAS. Se sabe que X3C es NP-completo, lo que implica que SAS es NP-duro.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X