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 matrizLa transformación correspondiente se puede encontrar definiendo una función objetivo diferenciable paraseguido 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 clasespuede determinarse como una función de, hasta una constante escalar. Por lo tanto, este uso del algoritmo aborda el problema de la selección de modelos .
Explicación
Para definir, definimos una función objetivo que describe la precisión de la clasificación en el espacio transformado y tratamos de determinarde manera que se maximice esta función objetivo.
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 su-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 cercanospuede 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 de, lo que implica que cualquier función objetivobasado 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 el-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:
La probabilidad de clasificar correctamente un punto de datoses la probabilidad de clasificar los puntos de cada uno de sus vecinos con la misma clase:
dóndees la probabilidad de clasificar al vecinodel punto.
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:
Tenga en cuenta que bajo vecinos más cercanos estocásticos, la clase de consenso para un solo puntoes 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.es decir: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.dóndeahora es el conjunto de datos transformado completo.
Esta elección de función objetivo es preferible ya que es diferenciable con respecto a(denotar):
Obtención de un gradiente paraEsto 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
"Maximizares equivalente a minimizar la-distancia entre la distribución de clases predicha y la distribución de clases verdadera (es decir: donde lainducido porson todos iguales a 1). Una alternativa natural es la divergencia KL, que induce la siguiente función objetivo y gradiente:" (Goldberger 2005)
En la práctica, la optimización deEl 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.
Enlaces externos
Software
- La biblioteca MLPACK contiene una implementación en C++.
- nca ( C++ )
- Implementación de " NeighborhoodComponentsAnalysis " de scikit-learn ( Python )
- Clasificación estadística