Reducción de dimensionalidad
Pablo Huijse Heise
Reducción de dimensionalidad
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Reducción de dimensionalidad
Maldición de la dimensionalidad
Mientras más dimensiones se tengan:
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Reducción de dimensionalidad
Maldición de la dimensionalidad
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Reducción de dimensionalidad
M
ℝ3
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Reducción de dimensionalidad
Deseamos reducir la cantidad de características �sin perder “información relevante“
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Principal Component Analysis (PCA)
Sean
PCA busca un conjunto de vectores U normalizados que resulten en una proyección de los datos con varianza máxima
Intuición: Los ejes de máxima varianza son los de mayor interés
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Principal Component Analysis (PCA)
Sean
PCA busca un conjunto de vectores U normalizados que resulten en una proyección de los datos con varianza máxima
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Principal Component Analysis (PCA)
PCA busca un conjunto de vectores U que resulten en una proyección �de los datos con varianza máxima
Incorporamos la restricción usando multiplicadores de Lagrange
De la derivada en función de U se tiene que
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Principal Component Analysis (PCA)
La solución
Es equivalente al problema de valores propios
Reconocemos entonces a
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Principal Component Analysis (PCA)
PCA encuentra un base ortogonal rotada con respecto al espacio original �y cuyos ejes maximizan la varianza de los datos
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Principal Component Analysis (PCA)
Notemos que los valores propios nos indican la varianza proyectada
Criterio:
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Principal Component Analysis (PCA)
Una vez que encontramos un valor para D creamos podemos crear nuestra matriz de proyección de menor dimensión a partir de las columnas de U que acumulan la mayor varianza
Finalmente nuestros datos proyectados
Donde X - X barra son los datos centrados (media cero)
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Principal Component Analysis (PCA)
También es de interés estudiar la información perdida al reconstruir cuando se usan distintos valores de D
Una reconstrucción se obtiene reproyectando al espacio original luego de haber reducido dimensionalidad
En el siguiente ejemplo se aprecian reconstrucciones de un dígito manuscrito (MNIST, M=748) usando distinta cantidad de vectores propios
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Principal Component Analysis (PCA)
Consideraciones adicionales
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
PCA probabilístico
Podemos expresar PCA como la solución de máxima verosimilitud para un modelo probabilístico de variables latentes continuas
Sea X ϵ ℝNxM nuestros datos y Z ϵ ℝNxD la variable latente
Definimos un prior Gaussiano isotrópico para los componentes principales
Y para la probabilidad condicional x|z
Donde W ϵ ℝMxD y μ ϵ ℝD
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
PCA probabilístico
Escribimos la verosimilitud como
p(x) es Gaussiana pues es una convolución �de dos gaussianas
Para encontrar sus parámetros reparametrizamos x
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
PCA probabilístico
Escribimos la verosimilitud como
p(x) es Gaussiana pues es una convolución �de dos gaussianas
Luego
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
PCA probabilístico
Escribimos la verosimilitud como
p(x) es Gaussiana pues es una convolución �de dos gaussianas
Finalmente
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
PCA probabilístico
Haciendo un proceso similar para el posterior obtenemos que
Donde
Es decir sólo la media de z depende de X
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
PCA probabilístico
Para la solución de máxima verosimilitud resolvemos
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Linear Discriminant Analysis (LDA)
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Linear Discriminant Analysis (LDA)
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Linear Discriminant Analysis (LDA)
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Linear Discriminant Analysis (LDA)
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Linear Discriminant Analysis (LDA)
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Linear Discriminant Analysis (LDA)
Sección 4.1.4, Bishop
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Multiple Discriminant Analysis (MDA)
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Independent Component Analysis (ICA)
Pendiente
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Non-negative matrix factorization (NMF)
Pendiente
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Mapas auto-organizativos
M
ℝ3
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Mapas auto-organizativos
M
ℝ3
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Mapas auto-organizativos
M
ℝ3
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Mapas auto-organizativos
M
ℝ3
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Cuantización vectorial (VQ)
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Cuantización vectorial (VQ)
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Cuantización vectorial (VQ)
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Cuantización vectorial (VQ)
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Cuantización vectorial (VQ)
Al aplicar el limite:
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Cuantización vectorial (VQ)
Para una nueva muestra x(t)
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Mapas auto-organizativos (SOM)
Algoritmo SOM
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Mapas auto-organizativos (SOM)
Algoritmo SOM
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Mapas auto-organizativos (SOM)
Algoritmo SOM
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Mapas auto-organizativos (SOM)
Algoritmo SOM
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Mapas auto-organizativos (SOM)
Algoritmo SOM
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Mapas auto-organizativos (SOM)
Algoritmo SOM
Nota: r es la posición del prototipo en la grilla
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Mapas auto-organizativos (SOM)
Relación con k-means: En el caso de fijar la vecindad Nc = c, es decir sólo actualizar el BMU, se recupera una versión on-line de k-means
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Mapas auto-organizativos (SOM)
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Mapas auto-organizativos (SOM)
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Mapas auto-organizativos (SOM)
X
Y
B
A
Z
C
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Mapas auto-organizativos (SOM)
Recomendaciones de Teuvo Kohonen
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Mapas auto-organizativos (SOM)
Implementaciones
Libro de Teuvo Kohonen con implementaciones en MATLAB disponible libremente en
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Neural Gas (NG)
Algoritmo NG
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Neural Gas (NG)
Algoritmo NG
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Neural Gas (NG)
Algoritmo NG
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Neural Gas (NG)
Algoritmo NG
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Transformación no lineal
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Kernel
Sección 5.8.1, Hastie, Tibshirani, Friedman
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Kernel
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Kernel
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Ejemplos de kernels
Kernel polinomial inhomogeneo
Kernel Gaussiano o Radial Basis Function (RBF)
Kernel tangente hiperbólica
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Kernel PCA
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Kernel PCA
Recordemos, PCA es una proyección de máxima varianza que resulta de resolver el problema de valores propios para la matriz de covarianza
Sea ahora una transformación no lineal que aumenta la dimensionalidad de los datos, definimos una covarianza generalizada (matriz gram)
Donde asumimos que los datos transformados están centrados
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Kernel PCA
Luego el objetivo es resolver el problema de autovalores para K
Los valores propios tienen la forma
Son una combinación lineal que usa la transformación no lineal como base
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Kernel PCA
Reemplazando arriba se tiene y multiplicando por φT
Se encuentra autovalores equivalentes resolviendo
Usamos el truco del kernel para formar la matriz Gram
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Kernel PCA
Se restringe que los componentes de V estén normalizados
Para proyectar una nueva muestra al espacio de los �componentes principales kernelizados
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Kernel PCA
Algoritmo
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Kernel PCA
Algoritmo
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Kernel PCA
Algoritmo
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Kernel PCA
Algoritmo
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Kernel PCA
Algoritmo
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Kernel PCA
Proyección lineal en el espacio de alta dimensionalidad equivale a una proyección no-lineal en el espacio de entrada
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Kernel PCA
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Autoencoder
...
...
...
...
...
...
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Autoencoder
...
...
...
...
...
...
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Autoencoder
...
...
...
...
...
...
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Autoencoder
...
...
...
...
...
...
-1.2
5.4
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Autoencoder
Ejemplo de arquitectura de autoencoder
...
...
...
...
...
...
-1.2
5.4
Capa fully-connected
Capa fully-connected
Capa latente
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Autoencoder
Ejemplo de arquitectura de autoencoder
...
...
...
...
...
...
-1.2
5.4
Capa fully-connected
Capa fully-connected
Capa latente
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Autoencoder
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Autoencoder
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Autoencoder
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
Autoencoder Variacional
GIFs: http://blog.fastforwardlabs.com
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
t-distributed Stochastic Neighbor Embedding
L.J.P. van der Maaten, G.E. Hinton, "Visualizing High-Dimensional Data Using t-SNE", Journal of Machine Learning Research, vol. 9, pp. 2579–2605, 2008
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
t-distributed Stochastic Neighbor Embedding
Generalización de Stochastic Neighbor Embedding (SNE)
Sea
Se generan probabilidades condicionales
Se interpreta como la pbb de que xi sea vecino de xj dentro de una vecindad de tamaño si
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
t-distributed Stochastic Neighbor Embedding
Generalización de Stochastic Neighbor Embedding (SNE)
El objetivo es preservar las similitudes, que se traduce a igualar las pbb condicionales, para esto se minimiza
La divergencia KL no es simétrica. Para seleccionar el tamaño de vecindad:
La “perplejidad” se interpreta como el Nº efectivo de vecinos
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
t-distributed Stochastic Neighbor Embedding
En t-SNE se generaliza SNE
Esto facilita la optimización del funcional y alivia el “problema de crowding”
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
t-distributed Stochastic Neighbor Embedding
Se reemplazan las probabilidades condicionales por conjuntas
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
t-distributed Stochastic Neighbor Embedding
Para el espacio de baja dimensionalidad se reemplaza la distribución Gaussiana por una distribución t-Student de colas anchas
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
t-distributed Stochastic Neighbor Embedding
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
t-distributed Stochastic Neighbor Embedding
http://distill.pub/2016/misread-tsne/
t-SNE
Sammon
Isomap
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com
t-distributed Stochastic Neighbor Embedding
Reducción de dimensionalidad, github @ phuijse, pablo dot huijse at gmail dot com