Articulo de referencia

Análisis de los componentes del vecindario

El análisis de componentes de vecindario es un método de aprendizaje supervisado para clasificar datos multivariados en clases distintas según una métrica de distancia dada sobr...

El análisis de componentes de vecindario es un método de aprendizaje supervisado para clasificar datos multivariados en clases distintas según una métrica de distancia dada sobre los datos. Funcionalmente, cumple los mismos propósitos que el algoritmo de los k vecinos más cercanos y utiliza directamente un concepto relacionado denominado vecinos más cercanos estocásticos .

Definición

El análisis de componentes de vecindario tiene como objetivo "aprender" una métrica de distancia al encontrar una transformación lineal de los datos de entrada tal que el rendimiento promedio de clasificación de dejar uno fuera (LOO) se maximice en el espacio transformado. La idea clave del algoritmo es que una matrizA{\displaystyle A}La transformación correspondiente se puede encontrar definiendo una función objetivo diferenciable paraA{\displaystyle A}seguido del uso de un solucionador iterativo como el descenso de gradiente conjugado . Una de las ventajas de este algoritmo es que el número de clasesk{\displaystyle k}puede determinarse como una función deA{\displaystyle A}, hasta una constante escalar. Por lo tanto, este uso del algoritmo aborda el problema de la selección de modelos .

Explicación

Para definirA{\displaystyle A}, definimos una función objetivo que describe la precisión de la clasificación en el espacio transformado y tratamos de determinarA{\displaystyle A^{*}}de manera que se maximice esta función objetivo.

A=argmaxAF(A){\displaystyle A^{*}={\mbox{argmax}}_{A}f(A)}

Clasificación de exclusión de un elemento (LOO, por sus siglas en inglés)

Consideremos predecir la etiqueta de clase de un único punto de datos por consenso de suk{\displaystyle k}-vecinos más cercanos con una métrica de distancia dada. Esto se conoce como clasificación de dejar uno fuera . Sin embargo, el conjunto de vecinos más cercanosdoi{\displaystyle C_{i}}puede ser bastante diferente después de pasar todos los puntos a través de una transformación lineal. Específicamente, el conjunto de vecinos de un punto puede sufrir cambios discretos en respuesta a cambios suaves en los elementos deA{\displaystyle A}, lo que implica que cualquier función objetivoF(){\displaystyle f(\cdot )}basado en los vecinos de un punto será constante por partes y, por lo tanto, no diferenciable .

Solución

Podemos resolver esta dificultad utilizando un enfoque inspirado en el descenso de gradiente estocástico . En lugar de considerar elk{\displaystyle k}-vecinos más cercanos en cada punto transformado en la clasificación LOO, consideraremos todo el conjunto de datos transformado como vecinos más cercanos estocásticos . Los definimos utilizando una función softmax de la distancia euclidiana al cuadrado entre un punto dado de la clasificación LOO y cada otro punto en el espacio transformado:

pagij={mi||AincógnitaiAincógnitaj||2kimi||AincógnitaiAincógnitak||2,si ji0,si j=i{\displaystyle p_{ij}={\begin{cases}{\frac {e^{-||Ax_{i}-Ax_{j}||^{2}}}{\sum _{k\neq i}e^{-||Ax_{i}-Ax_{k}||^{2}}}},&{\mbox{si }}j\neq i\\0,&{\mbox{si }}j=i\end{cases}}}

La probabilidad de clasificar correctamente un punto de datosi{\displaystyle i}es la probabilidad de clasificar los puntos de cada uno de sus vecinos con la misma clasedoi{\displaystyle C_{i}}:

pagi=jdoipagij{\displaystyle p_{i}=\sum _{j\in C_{i}}p_{ij}\quad }dóndepagij{\displaystyle p_{ij}}es la probabilidad de clasificar al vecinoj{\displaystyle j}del puntoi{\displaystyle i}.

Defina la función objetivo utilizando la clasificación LOO, esta vez usando todo el conjunto de datos como vecinos más cercanos estocásticos:

F(A)=ijdoipagij=ipagi{\displaystyle f(A)=\sum _{i}\sum _{j\in C_{i}}p_{ij}=\sum _{i}p_{i}}

Tenga en cuenta que bajo vecinos más cercanos estocásticos, la clase de consenso para un solo puntoi{\displaystyle i}es el valor esperado de la clase de un punto en el límite de un número infinito de muestras extraídas de la distribución sobre sus vecinos.jdoi{\displaystyle j\in C_{i}}es decir:PAG(dolass(incógnitai)=dolass(incógnitaj))=pagij{\displaystyle P(Clase(X_{i})=Clase(X_{j}))=p_{ij}}Por lo tanto, la clase predicha es una combinación afín de las clases de todos los demás puntos, ponderada por la función softmax para cada uno.jdoj{\displaystyle j\in C_{j}}dóndedoj{\displaystyle C_{j}}ahora es el conjunto de datos transformado completo.

Esta elección de función objetivo es preferible ya que es diferenciable con respecto aA{\displaystyle A}(denotarincógnitaij=incógnitaiincógnitaj{\displaystyle x_{ij}=x_{i}-x_{j}}):

FA=2Aijdoipagij(incógnitaijincógnitaijTkpagikincógnitaikincógnitaikT){\displaystyle {\frac {\partial f}{\partial A}}=-2A\sum _{i}\sum _{j\in C_{i}}p_{ij}\left(x_{ij}x_{ij}^{T}-\sum _{k}p_{ik}x_{ik}x_{ik}^{T}\right)}

=2Ai(pagikpagikincógnitaikincógnitaikTjdoipagijincógnitaijincógnitaijT){\displaystyle =2A\sum _{i}\left(p_{i}\sum _{k}p_{ik}x_{ik}x_{ik}^{T}-\sum _{j\in C_{i}}p_{ij}x_{ij}x_{ij}^{T}\right)}

Obtención de un gradiente paraA{\displaystyle A}Esto significa que se puede encontrar con un método iterativo como el descenso de gradiente conjugado . Cabe destacar que, en la práctica, la mayoría de los términos internos del gradiente resultan en contribuciones insignificantes debido a la rápida disminución de la contribución de los puntos distantes del punto de interés. Esto implica que la suma interna del gradiente se puede truncar, lo que permite obtener tiempos de cálculo razonables incluso para conjuntos de datos grandes.

Formulación alternativa

"MaximizarF(){\displaystyle f(\cdot )}es equivalente a minimizar laL1{\displaystyle L_{1}}-distancia entre la distribución de clases predicha y la distribución de clases verdadera (es decir: donde lapagi{\displaystyle p_{i}}inducido porA{\displaystyle A}son todos iguales a 1). Una alternativa natural es la divergencia KL, que induce la siguiente función objetivo y gradiente:" (Goldberger 2005)

gramo(A)=iregistro(jdoipagij)=iregistro(pagi){\displaystyle g(A)=\sum _{i}\log \left(\sum _{j\in C_{i}}p_{ij}\right)=\sum _{i}\log(p_{i})}

gramoA=2Ai(kpagikincógnitaikincógnitaikTjdoipagijincógnitaijincógnitaijTjdoipagij){\displaystyle {\frac {\partial g}{\partial A}}=2A\sum _{i}\left(\sum _{k}p_{ik}x_{ik}x_{ik}^{T}-{\frac {\sum _{j\in C_{i}}p_{ij}x_{ij}x_{ij}^{T}}{\sum _{j\in C_{i}}p_{ij}}}\right)}

En la práctica, la optimización deA{\displaystyle A}El uso de esta función suele ofrecer resultados de rendimiento similares a los de la original.

Historia y antecedentes

El análisis de componentes de vecindario fue desarrollado por Jacob Goldberger, Sam Roweis, Ruslan Salakhutdinov y Geoff Hinton en el departamento de informática de la Universidad de Toronto en 2004.

Véase también

Referencias

  • J. Goldberger, G. Hinton, S. Roweis, R. Salakhutdinov. (2005) Análisis de componentes de vecindario . Archivado el 23 de febrero de 2005 en Wayback Machine . Advances in Neural Information Processing Systems. 17, 513–520, 2005.

Software