En el aprendizaje automático, ¿cuál es la diferencia entre el vector disperso y el vector denso?

Conceptualmente es lo mismo. Solo un vector.

La estructura de datos detrás de esto es diferente. Ser escaso significa que no contendrá explícitamente cada coordenada. Lo explicaré.

Considere un vector dimensional [matemático] d [/ matemático] [matemático] u \ en I \! R ^ d, u = (u_1,…, u_d) [/ matemático],

A veces sabes que tu vector tendrá muchos valores [math] u_i = 0 [/ math]. Entonces puede querer, para evitar el desperdicio de memoria, almacenar valores que no sean 0, y luego, y considerar, otros valores como cero. Esto es enormemente útil cuando se usa one-hot.

Por lo general, los vectores dispersos están representados por una tupla (id, valor) como:
[matemática] u_i = valores [j] [/ matemática] if [matemática] id [j] = i [/ matemática]; [matemáticas] u_i = 0 [/ matemáticas] de lo contrario (si no estoy en id )

Desde el punto de vista del desarrollador, obtener un vector disperso de un vector denso es como hacer:

sparse_vec = {“id”: [], “valores”: []}
d = len (denso_vec)
para i en el rango (0, d):
si d [i]! = 0:
sparse_vec [“id”]. append (i)
sparse_vec [“valores”]. append (d [i])

Y, por ejemplo, un vector denso (1, 2, 0, 0, 5, 0, 9, 0, 0) se representará como {(0,1,4,6), (1, 2, 5, 9)}

pltrdy

Hay varios aspectos de esta pregunta.

Primero está la definición. En términos generales, los vectores n-dimensionales dispersos tienen menos de O (n) entradas distintas de cero.

El segundo aspecto es más técnico: el almacenamiento.
La mayoría de las bibliotecas que tienen tipos de datos de álgebra lineal almacenan vectores n-dim como matrices de longitud n por defecto.
Esto se llama representación densa.
Si sabe que va a trabajar con vectores dispersos, puede usar otra representación, una que aproveche la dispersión y que en realidad almacene solo entradas distintas de cero.
Esto se llama representación dispersa. Puede implementarlo, por ejemplo, almacenando índices y números apropiados como pares clave-valor.

Tercer aspecto: modelado disperso
Para muchos métodos de aprendizaje automático, ambos supervisados ​​(por ejemplo, regresión lineal)
y sin supervisión (por ejemplo, PCA) puede imponer restricciones de escasez.
¿Por qué querrías hacer eso?
El uso de menos componentes da como resultado modelos más simples e interpretables.
También se puede hornear en regularización, por ejemplo en LASSO en regresión lineal (la penalización L1 favorece soluciones dispersas).

Las matrices densas almacenan cada entrada en la matriz.

Las matrices dispersas solo almacenan las entradas distintas de cero.