440 likes | 601 Views
GAUSIANAS. En esta presentación se ilustran las propiedades que las funciones de densidad de probabilidad Gaussiana tienen y después se muestran los métodos de reconocimiento de patrones que hacen uso de éstas.
E N D
GAUSIANAS En esta presentación se ilustran las propiedades que las funciones de densidad de probabilidad Gaussiana tienen y después se muestran los métodos de reconocimiento de patrones que hacen uso de éstas. Los algoritmo de clasificación supervisada se encuentran basados en el etiquetado de un conjunto de datos. El conocimiento acerca de los miembros de una clase de este conjunto de datos de entrenamiento se utiliza para la clasificación de nuevas muestras. Los métodos de aprendizaje no supervisado establecen el cluster pero utilizando un conjunto de datos de entrenamiento no etiquetado. Varios algoritmos de clusterización tales como el K-means y el EM (de la máxima esperanza) se utilizan hoy en día. ESTADÍSTICA GAUSIANA La función de densidad de probabilidad Gaussiana (Gaussian pdf) para una variable aleatoria de d-dimensiones (esto es, la variable aleatoria , está en función de la ley de probabilidad Gaussiana - o Normal -, está dada por:
ESTADÍSTICA GAUSIANA Tanto como son los parámetros de la distribución Gaussiana. Las características de la señal de voz (conocidas también como vectores acústicos) son ejemplos de variables de d-dimensiones, y usualmente se considera que siguen una distribución del tipo Gaussiana. EL vector de media contiene los valores medios de cada dimensión, definida como:
LA MATRIZ DE COVARIANZA Todas las varianzas cii y covarianzas cij son recolectadas juntas dentro de una matriz de covarianza de dimensiones (d x d). La covarianza cij de dos elementos característicos xi y xj miden su tendencia a cambiar juntas, esto es, a co-variar. Si dos elementos característicos xi y xj, con i diferente a j, tienen una covarianza nula, esto es cij=0, entonces se puede tener la siguiente expresión matemática. Estas son ortogonales en el sentido estadístico, lo cual se traduce al sentido geométrico (la esperanza es un producto escalar de variables aleatorias; un producto escalar nulo significa ortogonalidad). Si todos los componentes de x son mutuamente nulos la matriz de covarianza tiene una forma diagonal.
EJEMPLO donde define a la desviación estándar de la variable aleatoria x. De alguna manera la raíz cuadrada es realtiva desde el punto de vista de matriz. Si (x sigue una ley normal con una media de cero y varianza unitaria; I representa la matriz identidad), y si EXPERIMENTO. Generar una muestra X de N puntos, por ejemplo X={x1,x2,……,xN}, con N=10000, que vienen de un proceso Gaussiano de dos dimensiones que tiene una media de la forma: y varianzas: - 8000 para ambas dimensiones (proceso esférico) (muestra X1):
EJEMPLO Expresado como matriz de covarianza completa (muestra X3): Expresado como matriz de covarianza diagonal (muestra X2): Para este ejemplo nos auxiliaremos de las siguientes funciones de MATLAB: randn.- Genera un conjunto de números aleatorios distribuidos de forma normal. RANDN(N) es una matriz de NxN con entradas aleatorias, seleccionadas de una distribución normal con media cero, varianza uno y desviación estándar 1. RANDN(M,N) o bien RANDN([M,N]) son matrices de orden MxN con entradas aleatorias.
EJEMPLO sqrtm.- raíz cuadrada de la matriz. X=SQRTM(A) es la raíz cuadrada de la matriz A, por lo tanto, X * X=A. una matriz de NxN con entradas aleatorias, seleccionadas de una distribución normal con media cero, varianza uno y desviación estándar 1. RANDN(M,N) o bien RANDN([M,N]) son matrices de orden MxN con entradas aleatorias. X es una raíz cuadrada única para la cual el eigenvalor no tiene parte negativa real. >> sigma_1=[8000 0;0 8000]; >> sqrtm(sigma_1) ans = 89.4427 0 0 89.4427
LA FUNCIÓN repmat >> x3=repmat (mu,N,1) x3 = 730 1090 730 1090 730 1090 730 1090 730 1090 730 1090 730 1090 730 1090 730 1090 730 1090 >> x=x1*x2+x3 x = 1.0e+003 * 0.6913 1.0733 0.5810 1.1549 0.7412 1.0374 0.7557 1.2853 0.6275 1.0778 0.8365 1.1002 0.8364 1.1854 0.7266 1.0953 0.7593 1.0814 0.7456 1.0156 >> N=10; >> mu=[730 1090]; >> sigma_1=[8000 0; 0 8000]; >> x1=randn(N,2) x1 = -0.4326 -0.1867 -1.6656 0.7258 0.1253 -0.5883 0.2877 2.1832 -1.1465 -0.1364 1.1909 0.1139 1.1892 1.0668 -0.0376 0.0593 0.3273 -0.0956 0.1746 -0.8323 >> x2=sqrtm(sigma_1) x2 = 89.4427 0 0 89.4427 repmat.- replica y expande un arreglo. B=REPMAT(A,M,N) crea una gran matriz B consistente de M x N elementos resultantes de copiar a la matriz A.
EJEMPLO DE REPRESENTACIÓN GAUSIANA EN 2-D >> N=10000; >> mu=[730 1090]; >> sigma_1=[8000 0; 0 8000]; >> x1=randn(N,2); >> x2=sqrtm(sigma_1); >> x3=repmat(mu,N,1); >> x=x1*x2+x3; >> gausview(x,mu,sigma_1,'Muestra 1');
EJEMPLO DE REPRESENTACIÓN GAUSIANA EN 2-D >> N=10000; >> mu=[730 1090]; >> sigma_2=[8000 0; 0 18500]; >> x1=randn(N,2); >> x2=sqrtm(sigma_2); >> x3=repmat(mu,N,1); >> gausview(x,mu,sigma_1,'Muestra 2');
EJEMPLO DE REPRESENTACIÓN GAUSIANA EN 2-D >> N=10000; >> mu=[730 1090]; >> sigma_3=[8400 8400; 8400 18500]; >> x1=randn(N,2); >> x2=sqrtm(sigma_3); >> x3=repmat(mu,N,1); >> x=x1*x2+x3; >> gausview(x,mu,sigma_1,'Muestra 3');
2. MODELADO GAUSSIANO: MEDIAS Y VARIANZA DE UNA MUESTRA Ahora se estimarán los parámetros de la media y la covarianza de los modelos Guassianos a partir de las muestras de datos. Fórmulas para realizar la tarea antes mencionada: Comparar el vector de media estimado al vector original de media pero utilizando la distancia Euclideana que las separa a éstas. Comparar la matriz de covarianza con la matriz original por medio de la medida de la diferencia de la norma de 2 matrices (la norma ||A-B||2 consituye una medida de similitud de dos matrices A y B; utilizar el comando norm de MATLAB.
EJEMPLO >> xnueva=x3; >> N=size(xnueva,1) N = 10000 >> mu_10000=sum(xnueva/N) mu_10000 = 1.0e+003 * 0.7300 1.0900 >> %comparacion entre medias >> e_mu10000=sqrt((mu_10000-mu)*(mu_10000-mu)'); >> e_mu10000=sqrt((mu_10000-mu)*(mu_10000-mu)') e_mu10000 = 1.5722e-010 >> sigma_10000=cov(xnueva); >> e_sigma10000=norm(sigma_10000 - sigma_3) e_sigma10000 = 2.3156e+004 >> xnueva1000=x3(1:1000,:); >> N=size(xnueva1000,1) N = 1000 >> mu_1000=sum(xnueva1000/N) mu_1000 = 1.0e+003 * 0.7300 1.0900 >> sigma_1000=cov(xnueva1000); >> e_mu1000=sqrt((mu_1000-mu)*(mu_1000-mu)') e_mu1000 = 1.1291e-011 >> e_sigma1000=norm(sigma_1000 - sigma_3) e_sigma1000 = 2.3156e+004
EJEMPLO >> xnueva100=x3(1:100,:); >> N=size(xnueva100,1) N = 100 >> mu_100=sum(xnueva100/N) mu_100 = 1.0e+003 * 0.7300 1.0900 >> sigma_100=cov(xnueva100); >> e_mu100=sqrt((mu_100-mu)*(mu_100-mu)') e_mu100 = 1.2085e-012 >> e_sigma100=norm(sigma_100 - sigma_3) e_sigma100 = 2.3156e+004
MEDICIÓN DE UNA MUESTRA CON RELACIÓN A UN MODELO GAUSIANO En los siguientes ejemplos se calculará la vecindad de un punto muestra x, y la vecindad conjunta de muestras aleatorias X para un modelo con una Gaussiana. Fórmulas útiles y definición: (*) Vecindad de un punto muestra xi dado un modelo de generación (esto es, dado un conjunto de parámetros para el modelo de densidad de distribución de probabilidad) es el valor de la probabilidad de que el valor xi pertenezca al modelo Gaussiano generado . En el caso de los modelos Gaussianos , esta cantidad se evalúa por medio de la expresión:
MEDICIÓN DE UNA MUESTRA CON RELACIÓN A UN MODELO GAUSIANO (*) Probabilidad conjunta: para un conjunto de muestras distribuidas de manera idénticamente independiente, digamos X={x1,x2,……,xN}, la probabilidad conjunta (o total) es el producto de las probabilidades de cada punto. Por ejemplo, en el caso Gaussiano: Para el caso Gaussiano, esto se puede determinar de la forma: Además, ya que log(x) es una función creciente monotónicamente, el logaritmo más cercano tiene las mismas relaciones de orden que las de
EXPERIMENTO 2 Dados los siguientes 4 modelos Gaussianos: Calcular las probabilidades logarítmicas para una muestra completa X3 de 10000 puntos.
EXPERIMENTO 2 >> N=10000; >> mu=[730 1090];sigma=[8000 0;0 8000]; >> x3=randn(N,2)*sqrt(sigma)+repmat(mu,N,1); >> N=size(x3,1) N = 10000 >> mu_1=[730 1090]; sigma_1=[8000 0;0 8000]; >> mu_2=[730 1090]; sigma_2=[8000 0;0 18500]; >> mu_3=[730 1090]; sigma_3=[8000 8400;8400 18500]; >> mu_4=[270 1690]; sigma_4=[8000 8400;8400 18500]; >> logLike1=0; logLike2=0; logLike3=0; logLike4=0; >> for i=1:N; logLike1=logLike1+(x3(i,:)-mu_1)*inv(sigma_1)*(x3(i,:)-mu_1)'; end; >> logLike1 logLike1 = 2.0246e+004 >> logLike1=-0.5*(logLike1 + N*log (det(sigma_1)) + 2*N*log(2*pi)) logLike1 = -1.1837e+005 >> gausview (x3,mu_1,sigma_1,'Comparacion entre x3 y N1');
EXPERIMENTO 2 >> N=10000; >> mu=[730 1090];sigma=[8000 0;0 8000]; >> x3=randn(N,2)*sqrt(sigma)+repmat(mu,N,1); >> N=size(x3,1) N = 10000 >> mu_1=[730 1090]; sigma_1=[8000 0;0 8000]; >> mu_2=[730 1090]; sigma_2=[8000 0;0 18500]; >> mu_3=[730 1090]; sigma_3=[8000 8400;8400 18500]; >> mu_4=[270 1690]; sigma_4=[8000 8400;8400 18500]; >> logLike1=0; logLike2=0; logLike3=0; logLike4=0; >> for i=1:N; logLike2=logLike2+(x3(i,:)-mu_2)*inv(sigma_2)*(x3(i,:)-mu_2)'; end; >> logLike2 logLike2 = 2.7246e+004 >> logLike2=-0.5*(logLike2 + N*log (det(sigma_2)) + 2*N*log(2*pi)) logLike2 = -1.2283e+005 >> gausview (x3,mu_2,sigma_2,'Comparacion entre x3 y N2');
EXPERIMENTO 2 >> N=10000; >> mu=[730 1090];sigma=[8000 0;0 8000]; >> x3=randn(N,2)*sqrt(sigma)+repmat(mu,N,1); >> N=size(x3,1) N = 10000 >> mu_1=[730 1090]; sigma_1=[8000 0;0 8000]; >> mu_2=[730 1090]; sigma_2=[8000 0;0 18500]; >> mu_3=[730 1090]; sigma_3=[8000 8400;8400 18500]; >> mu_4=[270 1690]; sigma_4=[8000 8400;8400 18500]; >> logLike1=0; logLike2=0; logLike3=0; logLike4=0; >> for i=1:N; logLike3=logLike3+(x3(i,:)-mu_3)*inv(sigma_3)*(x3(i,:)-mu_3)'; end; >> logLike3 logLike3 = 2.7246e+004 >> logLike3=-0.5*(logLike3 + N*log (det(sigma_3)) + 2*N*log(2*pi)) logLike3 = -1.2283e+005 >> gausview (x3,mu_3,sigma_3,'Comparacion entre x3 y N3');
EXPERIMENTO 2 >> N=10000; >> mu=[730 1090];sigma=[8000 0;0 8000]; >> x3=randn(N,2)*sqrt(sigma)+repmat(mu,N,1); >> N=size(x3,1) N = 10000 >> mu_1=[730 1090]; sigma_1=[8000 0;0 8000]; >> mu_2=[730 1090]; sigma_2=[8000 0;0 18500]; >> mu_3=[730 1090]; sigma_3=[8000 8400;8400 18500]; >> mu_4=[270 1690]; sigma_4=[8000 8400;8400 18500]; >> logLike1=0; logLike2=0; logLike3=0; logLike4=0; >> for i=1:N; logLike4=logLike4+(x3(i,:)-mu_4)*inv(sigma_4)*(x3(i,:)-mu_4)'; end; >> logLike4 logLike4 = 1.4993e+006 >> logLike4=-0.5*(logLike4 + N*log (det(sigma_4)) + 2*N*log(2*pi)) logLike4 = -8.5885e+005 >> gausview (x3,mu_4,sigma_4,'Comparacion entre x3 y N4');
RECONOCIMIENTO DE PATRONES ESTADÍSTICAS Cargar el archivo de datos “vocales.mat”. Este archivo contiene una base de datos de muestras de 2 dimensiones de características de la señal de voz en forma de formantes (el primer y segundo formante espectral, [F1,F2]). Las muestras de la frecuencia formante representan las características que pueden ser extraídas de la señal de voz para muchas pronunciaciones de las vocales /a/, /e/, /i/, /o/, y /u/. Las cuales se encuentran agrupadas en matrices de orden Nx2, en donde cada una de las N líneas contiene las dos frecuencias formantes para una ocurrencia de una vocal. Suponiendo que una base de datos cubre adecuadamente un idioma imaginario realizado sólo de /a/’s, /e/’s, /i/’s, /o/’s y /u/’s, calcular la probabilidad de cada clase , . ¿Cuál es el más común y cuál es el fonema menos común dentro de este lenguaje imaginario?.
EJEMPLO 3 >> load vowels.mat >> Na=size(a,1) Na = 5000 >> Ne=size(e,1) Ne = 6000 >> Ni=size(i,1) Ni = 5000 >> No=size(o,1) No = 3000 >> Ny=size(y,1) Ny = 1000 >> N=Na+Ne+Ni+No+Ny; >> Pa=Na/N; >> Pe=Ne/N; >> Pi=Ni/N; >> Po=No/N; >> Py=Ny/N; >> Plotvow;
EJEMPLO 3 >> mu_a=mean(a);mu_e=mean(e);mu_i=mean(i);mu_o=mean(o);mu_y=mean(y); >> sigma_a=cov(a);sigma_e=cov(e);sigma_i=cov(i);sigma_o=cov(o);sigma_y=cov(y); >> plotgaus(mu_a,sigma_a,[0 1 1]); >> plotgaus(mu_e,sigma_e,[0 1 1]); >> plotgaus(mu_i,sigma_i,[0 1 1]); >> plotgaus(mu_o,sigma_o,[0 1 1]); >> plotgaus(mu_y,sigma_y,[0 1 1]); Graficando todos juntos >> plotgaus(mu_a,sigma_a,[0 1 1]); >> plotgaus(mu_e,sigma_e,[0 1 1]); >> plotgaus(mu_i,sigma_i,[0 1 1]); >> plotgaus(mu_o,sigma_o,[0 1 1]); >> plotgaus(mu_y,sigma_y,[0 1 1]);
EJEMPLO 3 a i o e u
CLASIFICACIÓN BAYESIANA Fórmulas útiles y definiciones: • Regla de decisión de Bayes • Esta fórmula significa que dado un conjunto de clases qk, caracterizado por un conjunto de parámetros conocidos , un conjunto de uno o más vectores característicos de la señal de voz X (también llamado observaciones) pertenece a una clase la cual tiene la probabilidad más alta una vez que se conoce (o “ve” o “mide”) la muestra X. es llamada la probabilidad a posteriori, porque depende de haber visto las observaciones, lo que resulta opuesto a la probabilidad a priori la cual no depende de ninguna observación (pero depende por supuesto del conocimiento de cómo caracterizar a todas las clases qk, lo cual representa el conocimiento del conjunto de parámetros ). • Para algunas tareas de clasificación (por ejemplo, la señal de voz), resulta más práctico reordenar la ley de Bayes, la cual utiliza probabilidades, en lugar de intentar estimar de forma directa la probabilidad posterior.
CLASIFICACIÓN BAYESIANA • La ley de Bayes se ilustra en la siguiente expresión: • En donde qk es una clase, X es una muestra que contiene uno o más vectores característicos y es el conjunto de parámetros de todos los modelos de las clases. • Las características de la señal de voz son consideradas equi-probables. Por lo que, se considera que es proporcional a para todas las clases: • Sin embargo, es más conveniente realizar el cálculo en el dominio de los logaritmos.
CLASIFICACIÓN BAYESIANA En nuestro caso, representa el conjunto de todas las medias y varianzas , con k . La expresión de y del logaritmo eeeeeeeeeeeeeecorresponde al cálculo de la función de densidad de probabilidad Gaussiana y su logaritmo, tal y como se expresó anteriormente. La probabilidad es la probabilidad de la clase a priori para la clase qk(correspondiente a los parámetros ). Esto define una probabilidad absoluta de ocurrencia para la clase qk. La clase de probabilidades a-priori para las clases de los fonemas artificiales ya se han determinado con antelación. EXPERIMENTO Una vez modelada cada clase de vocal con la función de densidad de probabilidad Gaussiana (al realizar el cálculos de las medias y de las varianzas), se conoce la probabilidad para cada una de las clases en el caso de estudio que se está tratando, se considerar que las características de la señal de voz (como opuestas a las de la voz) son equiprobables. ¿Cuál es la clase más probable qk para los puntos de la característica de la señal de voz que se ilustran en la siguiente tabla?
EXPERIMENTO Utilizar la función gloglike (point,mu,sigma) para determinar las probabilidades. No olvidar sumar el logaritmo de la probabilidad a priori. Tal y como se realizó con anterioridad para la clase /a/: >>gloglike ([400,1800],mu_a,sigma_a) + log (Pa)
SUPERFICIES DISCRIMINANTES • Fórmulas útiles y definiciones: • Una función discriminante es un conjunto de funciones que permiten clasificar una muestra x en k clases qk si: • En este caso, las k funciones fk(x) son llamadas funciones discriminantes. • La probabilidad a posteriori que tiene una muestra x que pertenece a la clase qk es por si misma una función discriminante:
EJEMPLO Las líneas iso-probables para las funciones de densidad Gaussiana y las cuales se utilizaron anteriormente para el modelo de clase /i/ y la clase /e/, se grafican en la siguiente figura. En la segunda gráfica, las líneas iso-probables para y (dos funciones de densidad de probabilidad con la misma matriz de covarianza se muestran. En estas figuras, se utilizó una pluma de color para unir las intersecciones de las líneas de nivel que corresponden a las probabilidades iguales. (Se puede utilizar isosurf en MATLAB para crear una gráfica de color.)
ENTRENAMIENTO NO SUPERVISADO • En pasos anteriores, se han calculado los modelos para las clases /a/, /e/, /i/, /o/ y /u/ por conocimiento a-priori con lo cual las muestras se entrenaron perteneciendo a una determinada clase (en donde se dispuso de un etiquetado de los datos de entrenamiento). Hasta aquí se ha realizado un entrenamiento supervisado de modelos Gaussianos. Ahora, supondremos que solamente se tienen datos no etiquetados de entrenamiento que se desean separar en varias clases (en este caso, 5 clases) sin tener un conocimiento a-priori de cuales puntos pertenecen a las clases. Esto recibe el nombre de entrenamiento no supervisado. Muchos algoritmos se encuentran disponibles para este propósito, de entre los cuales se pueden mencionar: el algoritmo de K-means, la Máxima Esperanza de Viterbi y el algoritmo de la Máxima Esperanza. • Todos los algoritmos antes mencionados se caracterizan por los siguientes elementos: • Un conjunto de modelos qk (no necesariamente Gaussianos), definidos por algún parámetro (medias, varianzas, priors, etc); • Una medida de membresía, indicando que indica cuál o qué conjunto de datos “pertenecen” a tal modelo. • Un “recipiente” para actualizar los parámetros del modelo en función de la información de membresía.
La medida de membresía regularmente toma la forma de una medida de distancia o la forma de una medida de probabilidad. Ésta reemplaza la información del etiquetado para permitir la aplicación de técnicas de estimación de parámetros estándar. Esto también define de manera implícita un criterio global de “buena aproximación” de los modelos a los datos, por ejemplo: • En el caso de una distancia, los modelos que se encuentran globalmente más próximos de datos caracterizados de mejor forma; • En el caso de una medida de probabilidad, los modelos contienen una mejor probabilidad para que la explicación de los datos sea mejor. • La siguiente tabla resume los componentes de cada uno de los algoritmos que se estudiarán en los siguientes experimentos. Las cuales se detallarán más adelante.
EL ALGORITMO DE K-MEANS • Sinopsis del algoritmo: • Se inicia con K prototipos iniciales • Realizar • Por cada punto de datos , calcular la distancia cuadrada euclidiana del kth prototipo: • Asignar a cada punto de datos xn su prototipo más próximo , esto es asignar a cada clase qk si: • Nota: utilizando el cuadrado de la distancia Euclideana para la clasificación nos otorga el mismo resultado que cuando se utiliza la verdadera distancia Euclídea, debido a que la raíz cuadrada es una función monótona creciente. Pero la carga computacional es mucho más alta cuando la raíz cuadrada es determinada.
3. Reemplazar cada prototipo de con la media de los puntos de datos asignados a las clases correspondientes; • 4. Ir al paso 1. • Realizar todo lo anterior hasta que no ocurran más cambios. • El criterio global definido en este caso es de la forma: • El cual representa la distancia cuadrada total entre los datos y los modelos a los que pertenece. Este criterio es localmente minimizado por el algoritmo.