En estadística , el análisis discriminante kernel de Fisher (KFD) , [1] también conocido como análisis discriminante generalizado [2] y análisis discriminante kernel , [3] es una versión kernelizada del análisis discriminante lineal (LDA). Lleva el nombre de Ronald Fisher .
Análisis discriminante lineal
Intuitivamente, la idea de LDA es encontrar una proyección donde se maximice la separación de clases. Dados dos conjuntos de datos etiquetados, y , podemos calcular el valor medio de cada clase, y , como
donde es el número de ejemplos de la clase . El objetivo del análisis discriminante lineal es dar una gran separación de las medias de la clase y, al mismo tiempo, mantener pequeña la varianza dentro de la clase. [4] Esto se formula como la maximización, con respecto a , de la siguiente relación:
donde es la matriz de covarianza entre clases y es la matriz de covarianza total dentro de clases:
El máximo de la relación anterior se alcanza en
como se puede demostrar mediante el método del multiplicador de Lagrange (esquema de prueba):
Maximizar es equivalente a maximizar
sujeto a
Esto, a su vez, es equivalente a maximizar , donde es el multiplicador de Lagrange.
Como máximo, las derivadas de con respecto a y deben ser cero. Tomando como resultado
lo cual se satisface trivialmente con y
Ampliación de LDA
Para extender LDA a asignaciones no lineales, los datos, dados como puntos , se pueden asignar a un nuevo espacio de características, a través de alguna función. En este nuevo espacio de características, la función que se debe maximizar es [1]
dónde
y
Además, tenga en cuenta que . Calcular explícitamente las asignaciones y luego realizar LDA puede ser computacionalmente costoso y, en muchos casos, intratable. Por ejemplo, puede tener una dimensión infinita. Por lo tanto, en lugar de asignar explícitamente los datos a , los datos se pueden incrustar implícitamente reescribiendo el algoritmo en términos de productos puntuales y utilizando funciones de kernel en las que el producto puntual en el nuevo espacio de características se reemplaza por una función de kernel, .
LDA se puede reformular en términos de productos escalares observando primero que tendrá una expansión de la forma [5]
Entonces tenga en cuenta que
dónde
El numerador de puede entonces escribirse como:
De manera similar, el denominador se puede escribir como
con el componente de definido como es la matriz identidad, y la matriz con todas las entradas iguales a . Esta identidad se puede derivar comenzando con la expresión para y usando la expansión de y las definiciones de y
Con estas ecuaciones para el numerador y denominador de , la ecuación para se puede reescribir como
Luego, diferenciando e igualando a cero se obtiene
Dado que solo importa la dirección de , y por lo tanto la dirección de , lo anterior se puede resolver como
Nótese que en la práctica, suele ser singular y por eso se le suma un múltiplo de la identidad [1]
Dada la solución para , la proyección de un nuevo punto de datos está dada por [1]
KFD multiclase
La extensión a casos en los que hay más de dos clases es relativamente sencilla. [2] [6] [7] Sea el número de clases. Entonces, la KFD multiclase implica proyectar los datos en un espacio dimensional utilizando funciones discriminantes.
Esto se puede escribir en notación matricial.
donde son las columnas de . [6] Además, la matriz de covarianza entre clases es ahora
donde es la media de todos los datos en el nuevo espacio de características. La matriz de covarianza dentro de la clase es
La solución ahora se obtiene maximizando
El truco del núcleo se puede utilizar nuevamente y el objetivo del KFD multiclase se convierte en [7]
donde y
Se definen como en la sección anterior y se definen como
puede entonces calcularse encontrando los vectores propios principales de . [7] Además, la proyección de una nueva entrada, , está dada por [7]
donde el componente de está dado por .
Clasificación mediante KFD
Tanto en KFD de dos clases como de múltiples clases, la etiqueta de clase de una nueva entrada se puede asignar como [7]
donde es la media proyectada para la clase y es una función de distancia.
Aplicaciones
El análisis discriminante de kernel se ha utilizado en diversas aplicaciones, entre ellas:
- Reconocimiento facial [3] [8] [9] y detección [10] [11]
- Reconocimiento de dígitos escritos a mano [1] [12]
- Reconocimiento de huellas de palmas [13]
- Clasificación de microcalcificaciones malignas y benignas en racimos [14]
- Clasificación de semillas [2]
- Búsqueda del bosón de Higgs en el CERN [15]
Véase también
Referencias
- ^ abcde Mika, S; Rätsch, G.; Weston, J.; Schölkopf, B.; Müller, KR (1999). "Análisis discriminante de Fisher con núcleos". Redes neuronales para procesamiento de señales IX: Actas del taller de la IEEE Signal Processing Society de 1999 (Cat. N.° 98TH8468) . Vol. IX. págs. 41–48. CiteSeerX 10.1.1.35.9904 . doi :10.1109/NNSP.1999.788121. ISBN . 978-0-7803-5673-3. Número de identificación del sujeto 8473401.
- ^ abc Baudat, G.; Anouar, F. (2000). "Análisis discriminante generalizado utilizando un enfoque kernel". Computación neuronal . 12 (10): 2385–2404. CiteSeerX 10.1.1.412.760 . doi :10.1162/089976600300014980. PMID 11032039. S2CID 7036341.
- ^ ab Li, Y.; Gong, S.; Liddell, H. (2003). "Reconocimiento de trayectorias de identidades faciales mediante análisis discriminante de núcleo". Image and Vision Computing . 21 (13–14): 1077–1086. CiteSeerX 10.1.1.2.6315 . doi :10.1016/j.imavis.2003.08.010.
- ^ Bishop, CM (2006). Reconocimiento de patrones y aprendizaje automático . Nueva York, NY: Springer.
- ^ Scholkopf, B; Herbrich, R.; Smola, A. (2001). "Un teorema de representante generalizado". Computational Learning Theory . Lecture Notes in Computer Science. Vol. 2111. págs. 416–426. CiteSeerX 10.1.1.42.8617 . doi :10.1007/3-540-44581-1_27. ISBN 978-3-540-42343-0.
- ^ ab Duda, R.; Hart, P.; Stork, D. (2001). Clasificación de patrones . Nueva York, NY: Wiley.
- ^ abcde Zhang, J.; Ma, KK (2004). "Discriminante de Kernel Fisher para clasificación de textura".
- ^ Liu, Q.; Lu, H.; Ma, S. (2004). "Mejora del análisis discriminante de Fisher del núcleo para el reconocimiento facial". IEEE Transactions on Circuits and Systems for Video Technology . 14 (1): 42–49. doi :10.1109/tcsvt.2003.818352. S2CID 39657721.
- ^ Liu, Q.; Huang, R.; Lu, H.; Ma, S. (2002). "Reconocimiento facial mediante análisis discriminante de Fisher basado en kernel". IEEE International Conference on Automatic Face and Gesture Recognition .
- ^ Kurita, T.; Taguchi, T. (2002). "Una modificación del análisis discriminante de Fisher basado en kernel para la detección de rostros". Actas de la quinta conferencia internacional IEEE sobre reconocimiento automático de gestos faciales . pp. 300–305. CiteSeerX 10.1.1.100.3568 . doi :10.1109/AFGR.2002.1004170. ISBN . 978-0-7695-1602-8.S2CID 7581426 .
- ^ Feng, Y.; Shi, P. (2004). "Detección de rostros basada en análisis discriminante de Kernel Fisher". Conferencia internacional IEEE sobre reconocimiento automático de rostros y gestos .
- ^ Yang, J.; Frangi, AF; Yang, JY; Zang, D., Jin, Z. (2005). "KPCA más LDA: un marco discriminante de kernel Fisher completo para la extracción y reconocimiento de características". IEEE Transactions on Pattern Analysis and Machine Intelligence . 27 (2): 230–244. CiteSeerX 10.1.1.330.1179 . doi :10.1109/tpami.2005.33. PMID 15688560. S2CID 9771368.
{{cite journal}}
: CS1 maint: multiple names: authors list (link) - ^ Wang, Y.; Ruan, Q. (2006). "Análisis discriminante de Kernel Fisher para el reconocimiento de huellas de palmas". Conferencia internacional sobre reconocimiento de patrones .
- ^ Wei, L.; Yang, Y.; Nishikawa, RM; Jiang, Y. (2005). "Un estudio sobre varios métodos de aprendizaje automático para la clasificación de microcalcificaciones agrupadas malignas y benignas". IEEE Transactions on Medical Imaging . 24 (3): 371–380. doi :10.1109/tmi.2004.842457. PMID 15754987. S2CID 36691320.
- ^ Malmgren, T. (1997). "Un programa iterativo de análisis discriminante no lineal: IDA 1.0". Computer Physics Communications . 106 (3): 230–236. Código Bibliográfico :1997CoPhC.106..230M. doi :10.1016/S0010-4655(97)00100-8.
Enlaces externos
- Análisis discriminante de núcleo en C#: código C# para realizar KFD.
- Caja de herramientas de Matlab para reducción de dimensionalidad: incluye un método para realizar KFD.
- Reconocimiento de escritura a mano mediante análisis discriminante de kernel: código C# que demuestra el reconocimiento de dígitos escritos a mano mediante KFD.