2020-07-21
El análisis de componentes principales (PCA) es un método para la reducción de la dimensionalidad de los datos y la eliminación de correlaciones, que proyecta vectores en un espacio de baja dimensión mediante una transformación lineal. Proyectar un vector es multiplicar hacia la izquierda el vector y la matriz para obtener el vector resultado:
Aquí, la dimensión del vector resultado es menor que la dimensión del vector original. La reducción de dimensionalidad garantiza que la proyección en el espacio de baja dimensión pueda representar bien el vector original, es decir, que el error de reconstrucción sea mínimo.
El problema central es cómo obtener la matriz de proyección. Al igual que otros algoritmos de aprendizaje automático, la matriz de proyección se obtiene optimizando la función objetivo. Consideremos primero el caso más simple, donde un vector se proyecta en un espacio unidimensional, y luego generalicemos al caso general.
Supongamos que hay n vectores X i de d dimensiones. Si se van a reemplazar aproximadamente por un vector X 0, ¿qué valor de este vector puede minimizar el error del reemplazo aproximado? Si utilizamos el error cuadrático medio como criterio, entonces estamos minimizando la siguiente función:
Claramente, la solución óptima al problema es la media de estos vectores:
La prueba es sencillo. Para encontrar el valor mínimo de la función objetivo anterior, necesita encontrar su gradiente (derivada) y hacer que el gradiente sea igual a 0, obteniendo así
Resolver esta ecuación puede llegar a la conclusión anterior. Usar sólo el promedio para representar todo el conjunto de muestras es demasiado simplista y tiene demasiado error. Como mejora, cada vector se puede expresar como la suma del vector medio y otro vector:
donde e es un vector unitario y a i es un escalar. Esta representación equivale a proyectar el vector en una dimensión con coordenadas a i. ¿Para qué valores de e y ai esta representación aproximada tiene el error más pequeño?
Esto equivale a minimizar la siguiente función de error:
Al poner la ai obtenida anteriormente en la función objetivo, obtendrás una función con solo la variable e:
Arriba La segunda mitad de la ecuación no tiene nada que ver con e. Se requiere que resuelvamos un valor extremo bajo las restricciones de la fórmula. Este problema se puede resolver utilizando el método del multiplicador de Lagrange. Construya la función lagrangiana:
Por lo tanto, esta matriz es una matriz semidefinida positiva. Aquí necesitamos maximizar el valor de e T Se porque
Por lo tanto, para el valor propio máximo de la matriz de dispersión, el valor de e T Se es extremadamente grande y el valor obtenido por la función objetivo es extremadamente pequeño . Amplíe la conclusión anterior de una dimensión a la dimensión d'. Cada vector se puede expresar como
donde e i es el vector unitario. La función de error se convierte en
Se puede demostrar que el e j que minimiza la función es el vector propio de longitud unitaria correspondiente al valor propio d' máximo de la matriz de dispersión, lo que resuelve el siguiente problema de optimización:
donde tr es la traza de la matriz. Las columnas e j de la matriz W son los vectores base de la traza a resolver. La matriz de dispersión es una matriz simétrica real en la que los vectores propios que pertenecen a diferentes valores propios son ortogonales entre sí. Anteriormente se ha demostrado que esta matriz es una matriz semidefinida positiva con valores propios no negativos. Estos vectores propios forman un conjunto de vectores básicos y el vector x se puede expresar como una combinación lineal de ellos. Desde otra perspectiva, esta transformación diagonaliza la matriz de covarianza, lo que equivale a eliminar la correlación entre componentes.
Con base en la derivación anterior, podemos obtener el proceso de cálculo de la matriz de proyección de la siguiente manera:
(1) Calcule el vector medio del conjunto de muestra y reste todos los vectores del media.Esto es blanqueamiento;
(2) Calcule la matriz de covarianza del conjunto de muestras
(3) Realice la descomposición de valores propios en la matriz de covarianza para obtener todos los valores propios y vectores propios;
(4) Ordene los valores propios de mayor a menor, conserve el vector propio correspondiente a la mayor parte del valor propio y utilícelo como filas para formar una matriz de proyección.
El número exacto de valores propios a retener está determinado por las dimensiones del vector de proyección. Usar la matriz de covarianza es equivalente a usar la matriz de dispersión porque esta última es n veces mayor y las matrices A y nA tienen los mismos vectores propios.
Después de obtener la matriz de proyección, el vector se puede reducir dimensionalmente y proyectar en un espacio de baja dimensión. El proceso de proyección vectorial es el siguiente.
(1) Reste la muestra del vector medio.
(2) Multiplique a la izquierda la matriz de proyección para obtener el vector dimensionalmente reducido.
La reconstrucción vectorial se refiere a reconstruir el vector original en función del vector proyectado, que es lo opuesto a la función y el proceso de la proyección vectorial. El proceso de reconstrucción de vectores es el siguiente.
(1) Multiplique a la izquierda el vector de entrada y la matriz de transposición de la matriz de proyección.
(2) Agregue el vector promedio para obtener el resultado de la reconstrucción.
Como se puede ver en la derivación anterior, no se utilizan valores de etiqueta de muestra en el cálculo, por lo que el análisis de componentes principales es un algoritmo de aprendizaje no supervisado. Además del algoritmo estándar, tiene varias variantes, como análisis de componentes principales dispersos, análisis de componentes principales del kernel, análisis de componentes principales probabilísticos, etc.
Enlace al vídeo de explicación del código fuente