universidad de los andes facultad de ingeniería escuela de ingeniería eléctrica
DESCRIPTION
Universidad de Los Andes Facultad de Ingeniería Escuela de Ingeniería Eléctrica Maestría en Ingeniería Biomédica GIBULA. Máquinas de Soporte Vectorial. (Clase Nº 4: Ideas Preliminares). Material digital elaborado por: Miguel Vera. Mérida, Mayo de 2009. Universidad de Los Andes - PowerPoint PPT PresentationTRANSCRIPT
Universidad de Los AndesUniversidad de Los Andes
Facultad de IngenieríaFacultad de Ingeniería
Escuela de Ingeniería EléctricaEscuela de Ingeniería Eléctrica
Maestría en Ingeniería BiomédicaMaestría en Ingeniería Biomédica
GIBULAGIBULA
Máquinas de Soporte Vectorial.(Clase Nº 4: Ideas Preliminares)
Material digital elaborado por:
Miguel Vera
Mérida, Mayo de 2009
Universidad de Los AndesUniversidad de Los Andes
Facultad de IngenieríaFacultad de Ingeniería
Escuela de Ingeniería EléctricaEscuela de Ingeniería Eléctrica
Maestría en Ingeniería BiomédicaMaestría en Ingeniería Biomédica
GIBULAGIBULA
Mérida, Mayo de 2009
Preliminar Nº 5
Algoritmo Expectación-Maximización (EM):Algoritmo Expectación-Maximización (EM):
Consideraciones teóricas y AplicacionesConsideraciones teóricas y Aplicaciones
Algoritmo EM: Modelo Teórico
Donde:
Inconvenientes:
Mezcla de Gaussianas
Mezcla de Gaussianas
Mezcla de Gaussianas
Mezcla de Gaussianas
Ejemplo de Código para el algoritmo EM
function gMM = EMLISTO(datos,k)data = load(datos);mx = max(data);mn = min(data);plot(data(:,1),data(:,2),'b.','MarkerSize',15); axis([0 120 0 80]),hold on;gMM.k = k;gMM.d = size(data,2);%Inicializacion de los parametros de la mezcla gaussiana (gMM)gMM.mu = [ ]; for i=1:k mux = (rand(size(mx)).*(mx-mn))'; gMM.mu = [gMM.mu mux]; end initSD = (mx-mn)/(k^(1/gMM.d));initCovar = ((mean(initSD)/k)^2)*eye(gMM.d); for i=1:k gMM.covar(:,:,i) = initCovar; endgMM.weights = ones(k,1)/k;
Ejemplo de Código para el algoritmo EM%ExpectacionnIter = 50;for i=1:nIter i responsabilidades = []; for i=1:gMM.k weight = gMM.weights(i); mu = gMM.mu(:,i); covar = gMM.covar(:,:,i); end [n,gMM.d] = size(data);z = (2*pi)^(0.5*gMM.d);S = zeros(1,gMM.k);r = zeros(gMM.d,gMM.d,gMM.k); for j=1:gMM.k, if gMM.covar(:,:,j)==zeros(gMM.d,gMM.d), gMM.covar(:,:,j)=ones(gMM.d,gMM.d)*eps; end S(j) = sqrt(det(gMM.covar(:,:,j))); r(:,:,j) = inv(gMM .covar(:,:,j)); end
Ejemplo de Código para el algoritmo EM
responsabilidades = zeros(n,gMM.k); for q=1:n, for j=1:gMM.k, rXM = data(q,:)'-gMM.mu(:,j); tt = exp(-0.5*rXM'*r(:,:,j)*rXM)/(z*S(j)); responsabilidades(q,j) = gMM.weights(j)*tt; end resp=responsabilidades(:,j); end responsabilidades = responsabilidades ./repmat(sum(responsabilidades,2),1,gMM.k);plot(data(:,1),data(:,2),'b.','MarkerSize',15); k = size(responsabilidades,2); if k <= 3 colorExpectacion = [responsabilidades zeros(size(data,1),3-k)]; for i=1:size(data,1) plot(data(i,1),data(i,2),'color',colorExpectacion(i,:),...
'marker','.','MarkerSize',15); end end
Ejemplo de Código para el algoritmo EM% MaximizaciongMMOld = gMM;for i=1:gMM.k resp = responsabilidades(:,i); [n,gMM.d] = size(data);gMM.weights = zeros(1,gMM.k); gMM.mu = zeros(gMM.d,gMM.k);gMM.covar = zeros(gMM.d,gMM.d,gMM.k);for i=1:gMM.k, % Calculo de los pesos finales for j=1:n, gMM.weights(i) = gMM.weights(i) + responsabilidades(j,i); gMM.mu(:,i) = gMM.mu(:,i) + responsabilidades(j,i)*data(j,:)'; end gMM.mu(:,i) = gMM.mu(:,i)/gMM.weights(i);% Calculo de las medias finales endfor i=1:gMM.k, for j=1:n, rXM = data(j,:)'-gMM.mu(:,i); gMM.covar(:,:,i) = gMM.covar(:,:,i) + responsabilidades(j,i)*rXM*rXM';% cov finales end gMM.covar(:,:,i) = gMM.covar(:,:,i)/gMM.weights(i);endgMM.weights = gMM.weights/n;
Ejemplo de Código para el algoritmo EM
% Valores finales de los parametros del gMM weight = gMM.weights(i);mu = gMM.mu(:,i);covar = gMM.covar(:,:,i);endplot(data(:,1),data(:,2),'b.','MarkerSize',15); k = size(responsabilidades,2); if k <= 3 colores = [responsabilidades zeros(size(data,1),3-k)]; for i=1:size(data,1) plot(data(i,1),data(i,2),'color',colores(i,:),...
'marker','.','MarkerSize',15); endend criterioparada = sum(sum((gMMOld.mu - gMM.mu).^2))if criterioparada <= 0.0000000000001 criterioparadabreak;end end
Asignación
1.- Descargar de la carpeta materialelectiva, ubicada en:www.tach.ula.ve/vermigLos siguientes archivos: EM.rar, tarea5.pdf y reportemerida.doc2.- Seguir las instrucciones dadas en tarea5.pdf3.- Para verificar si los programas fueron bien diseñados se deben correr y obtener resultados similares a los contenidos en el archivo reportemerida.doc. Nota: Replicar para todos los casos presentados en ese documento.Entregar via email: [email protected] Tope: 02/06/2009Hora: 12 del medio día