Академический Документы
Профессиональный Документы
Культура Документы
Introduccin
Figura 2.- Distribucion de puntos con media y varianza ajustados por el mtodo
Expectation Maximization
Resultados
Para probar este algoritmo se implement la funcin EM en la cual envas
distribuciones con medias, varianzas y los pesos de probabilidades, y esta
genera una serie de puntos pseudo-aleatorios con ayuda de la siguiente
funcin: mvnrnd(m(:,dist)',Se(:,:,dist),1)
Y a partir de estos puntos la funcin estima la media, varianza y probabilidad
de esta serie de datos. Por lo cual esperaramos una estimacin similar a la
enviada originalmente.
El cdigo de la funcin, realizada en Matlab, se muestra a continuacin:
end
P_tot=Nxn*Pi';
for j=1:length(Pi)
Ynk(j,k)=(Nxn(j)*Pi(j))/P_tot;
end
end
Q1=0;
for k=1:N
for j=1:length(Pi)
aux1=-log(2*pi*Si(j));
aux2=((sum(X(:,k))-sum(m(:,j))).^2)/(2*Si(j));
aux3=log(Pi(j));
Q1=Q1+(Ynk(j,k)*(aux1-aux2+aux3));
end
end
% MAXIMIZATION
% Determina las nuevas medias
for j=1:length(Pi)
a=zeros(1,length(mi(:,1)));
for k=1:N
a = a + Ynk(j,k)*(X(:,k)');
end
m_n(:,j)=a/sum(Ynk(j,:));
end
% Determinar las varianzas
S_n=[];
for j=1:length(Pi)
b=0;
for k=1:N
b = b+Ynk(j,k)*((X(:,k)'-m_n(:,j)')*(X(:,k)'m_n(:,j)')');
end
S_n(j)=b/(length(Pi)*sum(Ynk(j,:)));
if S_n(j)<10^(-10)
S_n(j)=0.001;
end
end
% Determina las probabilidades de cada componente
for j=1:length(Pi)
q=0;
for k=1:N
q=q+Ynk(j,k);
end
P_n(j)=q/N;
end
%Calculo el error
e=sum(abs(P_n-Pi))+sum(sum(abs(m_n-mi)))+sum(abs(S_n-Si));
%Asignacion de las nuevas medias, varianzas y probabilidades
%para la siguiente iteracin
Pi=P_n;
Si=S_n;
mi=m_n;
end
mf=mi
Sf=Si
Pf=Pi
end
Set 1
Estimacin Set 1
M1=[0,2]
M2=[5,2]
M3=[5,5]
S1=0.15
S2=0.27
S3=0.4
S1 = 0.0906
S2 = 0.1652
S3 = 0.2686
P1=P2=P3=1/3
P1 = 0.3660
P2 = 0.3357
P3 = 0.2983
Set 2
Estimacin Set 2
M1=[1.6,1.4]
M2=[1.4,1.6]
M3=[1.3,1.5]
S1=0.2
S2=0.4
S3=0.3
S1 = 0.0911
S2 = 0.1737
S3 = 0.2618
P1=0.2
P2=P3=0.4
P1 = 0.0911
P2 = 0.7722
P3 = 0.1367
Set 3
Estimacin Set 3
M1=[1.6,1.4]
M2=[1.4,1.6]
S1=0.2
S2=0.4
S1 = 0.1749
S2 = 0.2818
P1=P2=1/2
P1 = 0.0474
P2 = 0.9526
Como podemos observar el primer set tuvo una aproximacin bastante buena,
sin embargo los otros dos Sets no tuvieron tan favorable respuesta esto debido
a que los puntos estn muy cerca entre si y no se logra apreciar una tendencia
clara. A continuacin se muestra los puntos generados para el 3er Set.
-2
-4
-4
-2
Conclusiones
Este mtodo es muy til para hacer las aproximaciones de los parmetros que
describen a una distribucin de puntos, y al hacer muchas iteraciones se logra
un error pequeo. Las aplicaciones que se le pueden dar a este mtodo son
muchas y muy diversas como por ejemplo el reconocimiento de diversos
patrones, como puede ser voz o imgenes. Sin embargo este mtodo se
muestra poco eficiente cuando los datos estn muy cerca entre s, y esto es
lgico ya que ni a simple vista se podra identificar una tendencia a algn lugar
en el plano.