Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Implementação ICA usando Matlab, Notas de estudo de Engenharia Informática

Esse tutorial tem uma breve introdução de ICA e implementação em Matlab

Tipologia: Notas de estudo

2011

Compartilhado em 13/06/2011

nielsen-damasceno-7
nielsen-damasceno-7 🇧🇷

2 documentos

1 / 24

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
1
Prof. M.Sc. Nielsen Castelo Damasceno – www.ncdd.com.br – E-mail: nielsen.tekla@gmail.com – UFRN
ANÁLISE DE COMPONENTES INDEPENDENTES
Tutorial
Nielsen Castelo Damasceno
1 INTRODUÇÃO
Em linhas gerais, podemos dizer que a motivação do uso de Análise de
Componentes Independentes (ACI) ou do inglês: Independent Componente Analysis
(ICA) é o BSS (Blind Source Separation ou Separação Cega de Fontes)
(HYVÄRINEN, OJA, 1999). Todavia, vamos utilizar ACI e ICA, doravante, para
representar a mesma entidade. Sobretudo, um dos problemas típicos investigados
pela técnica de separação cega de fontes é motivado por um problema chamado
cocktail party” ou separação de sinais de áudio.
Considere duas pessoas conversando em uma sala fechada utilizando
sensores (microfones) para capturar suas vozes. Esta situação é representada na
Figura 1. O problema consiste em separar os sinais captados pelos microfones
sabendo que os sinais estão agora correlacionados. A particularidade da separação
cega de fontes perante as outras técnicas de filtragens é que, nesse caso, não
precisamos conhecer precisamente os sinais de fontes (HYVÄRINEN, 1999a).
Figura 1: O problema do cocktail-party.
O problema do cocktail-party pode ser representado da seguinte forma: x =
2
1
x
x
, A=
2221
1211
aa
aa
e s =
2
1
s
s
, ou seja,
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18

Pré-visualização parcial do texto

Baixe Implementação ICA usando Matlab e outras Notas de estudo em PDF para Engenharia Informática, somente na Docsity!

ANÁLISE DE COMPONENTES INDEPENDENTES

Tutorial Nielsen Castelo Damasceno

1 INTRODUÇÃO

Em linhas gerais, podemos dizer que a motivação do uso de Análise de Componentes Independentes (ACI) ou do inglês: Independent Componente Analysis (ICA) é o BSS ( Blind Source Separation ou Separação Cega de Fontes) (HYVÄRINEN, OJA, 1999). Todavia, vamos utilizar ACI e ICA, doravante, para representar a mesma entidade. Sobretudo, um dos problemas típicos investigados pela técnica de separação cega de fontes é motivado por um problema chamado “ cocktail party” ou separação de sinais de áudio.

Considere duas pessoas conversando em uma sala fechada utilizando sensores (microfones) para capturar suas vozes. Esta situação é representada na Figura 1. O problema consiste em separar os sinais captados pelos microfones sabendo que os sinais estão agora correlacionados. A particularidade da separação cega de fontes perante as outras técnicas de filtragens é que, nesse caso, não precisamos conhecer precisamente os sinais de fontes (HYVÄRINEN, 1999a).

Figura 1: O problema do cocktail-party. O problema do cocktail-party pode ser representado da seguinte forma: x = 

2

1 x

x (^) , A = 

21 22

11 12 a a

a a e s = 

2

1 s

s (^) , ou seja,

x =  

2

1 21 22

11 12 2

1 s

s a a

a a x

x (^) (1)

ou pode-se reescrever a Equação 1 utilizando a notação matricial, que tornar-se-á:

x = As (2) Denota-se x pelo vetor aleatório cujos elementos representam as misturas ou sensores, a matriz A com elementos (^) aij representam a atenuação ou

amplificação sobre o vetor aleatório s que representam o sinal de fontes s 1 e s 2.

Por enquanto, deixemos de lado qualquer momento de atraso e outros fatores extras a partir de nosso modelo simplificado de mistura. Como ilustração, considere os sinais representados na Figura 2 e 3.

Figura 2: Dois sinais do discurso original. Os sinais do discurso original é semelhante aos sinais representado na Figura 2 e as misturas poderiam se parecer com os sinais na Figura 3. Nos gráficos acima as coordenadas abscissas representam o número de amostra do sinal em cada período de tempo e a ordenada representa a amplitude do sinal. O problema consiste em recuperar os dados na Figura 2 utilizando apenas os dados da Figura 3.

-0.02 0 2 4 6 8 10 12 14 16 18 20

-0.

0

Sinal de fonte 1 (Amplitude) Tempo (ms)

-0.04 0 2 4 6 8 10 12 14 16 18 20

-0.

0

Sinal de fonte 2 (Amplitude) Tempo (ms)

sistema misturador. Este problema é dito cego em razão da falta de informação que temos sobre as misturas e as fontes.

Figura 4: Sinais de fonte estimados a partir das misturas.

Figura 5: Diagrama esquemático do problema de separação cega linear.

Podemos também representar de forma simples o processo de misturas das fontes pela seguinte expressão:

x ( ) n = F ( s ( ) n , s ( n − 1 ),L , s ( nL ), r ( ) n ) (3)

onde o F ( )⋅ corresponde a ação do sistema misturador, L é associado às memórias

(amostras atrasadas) no sistema e o vetor r representa o ruído presente nas fontes. Um sistema misturador é dito linear se o mapeamento F ( )⋅ atende o principio da

superposição, caso contrário é dito não linear.

-2 0 2 4 6 8 10 12 14 16 18 20

0

1

2

Sinal estimado 1 (Amplitude) Tempo (ms)

-4 0 2 4 6 8 10 12 14 16 18 20

0

2

Sinal estimado 2 (Amplitude) Tempo (ms)

Nas situações em que o sistema misturador depende das amostras passadas ( L > 0) é dito que o sistema misturador é convolutivo (com memória). Entretanto, há situações em que (L = 0) o sistema é chamado de instantâneo (COMON, 1994).

Em outras situações onde o número de sensores podem ser maiores que o número de sinais de fontes, tem-se o caso sobre determinado. Analogamente, temos o caso subdeterminado quando o número de sensores é menor que os sinais de fontes.

2 RELAÇÃO ENTRE ICA E PCA

O ICA procura transformar a mistura de sinais num número de componentes independentes (ICs), sem reduzir as dimensões da mistura. Mas, quando é necessário a redução da informação, então efetua-se um pré-processamento da mistura com PCA ( Principal Componentes Analysis ).

A principal diferença entre o ICA e o PCA é que o PCA usa, unicamente, a estatística de 2ª ordem (média e variância), enquanto o ICA utiliza a estatística de ordens superiores ( kurtosis ). Por isso, o PCA é usado para variáveis Gaussianas que são de estatística de 2ª ordem. Mas, como a maioria dos sinais são não- gassianos e com ordens estatísticas elevadas, logo o ICA é uma melhor opção.

3 INDEPENDÊNCIA E NÃO-CORRELAÇÃO

ICA consiste em recuperar os sinais originais a partir de uma mistura. Um princípio bastante utilizado para determinar ou inferir nas misturas tem sido a independência estatística, ou seja, o valor de qualquer um dos componentes não fornece nenhuma informação sobre os valores dos outros componentes.

Normalmente, uma distribuição de probabilidade é caracterizada em termos de sua função de densidade ao invés de cdf (função de distribuição cumulativa ou do inglês: cumulative distribution function ). Formalmente, a função de densidade de probabilidade é obtida derivando cdf. ICA está intimamente ligado à independência estatística. Matematicamente, a independência estatística é definida em termos de densidade de probabilidade (PAPOULIS, 1991), por exemplo. As variáveis aleatórias x e y são ditas independentes, se e somente se,

, ,  ^  ^ ^ (4)

4.1 MATRIZ DE MISTURA, VARIÁVEIS OBSERVÁVEIS E VARIÁVEIS LATENTES

Matematicamente, o modelo generativo foi apresentado na seção 1. A variável s é um vetor composto por todos os sinais originais (componentes independentes). Note-se que os sinais originais, só por si, são também vetores. Assim, nesta notação, as componentes independentes são os elementos de um único vector de sinais originais, s. Neste vetor encontram-se então as variáveis latentes, uma vez que, não são diretamente observáveis. Ou seja, estão escondidas ou latentes, no vector x.

As técnicas usadas no ICA pretendem usar a matriz inversa de A , de forma a estimar as componentes independentes, s , da seguinte forma:

s = A −^1 x (9) Em situações que a matriz A é conhecida basta utilizar a Equação 9 para estimar s. Quando a matriz A não é conhecida devemos inicialmente assumir que, a mistura, x , estão relacionados com os sinais latentes, s , através de uma transformação linear (rotação e scaling ). Logo, alguma transformação inversa (rotação/scaling) pode ser encontrada de forma a se obter os sinais originais.

Note-se que as transformações podem também ser não-lineares. Desta forma, a separação das componentes independentes complica-se. A Equação 10 e 11 descrevem, sucintamente, que existe uma função de mistura, F , também desconhecida:

x = F ( x ) (10)

∑=

n i u j ij j x F a s 1

onde, i = 1 , L, n e j = 1 , L, n.

5 RESTRIÇÕES AO MODELO

Para estimar a matriz de mistura A é preciso admitir algumas restrições:

  1. As variáveis latentes, s , têm que ser mutuamente independentes.
  2. As componentes independentes tem que ser distribuições não-gaussianas. Isto deve-se ao fato do ICA permitir estimar ICs com ordem de estatística elevada. Para sinais gaussianos, a ordem de estatística elevada é igual a zero. Portanto, ICA não requer que seja conhecida a distribuição das variáveis, basta que elas não sejam gaussianas. Pode-se notar (Figura 6) que não é possível estimar a matriz de mistura, A , porque a distribuição de probabilidades não possui informação sobre as direções das colunas desta matriz. Assim, se a mistura possuir sinais originais não-gaussianos e sinais originais gaussianos, então as componentes gaussianas não são separadas pelo ICA e surgem misturadas.

Figura 6: Distribuição conjunta de duas variáveis aleatórias gaussianas.

  1. A matriz de mistura A deve ser quadrada. Ou seja, o número de ICs deve ser igual ao número de variáveis observadas (ou misturas). Assim, após o cálculo da matriz A , pode-se usar a sua inversa, matriz B , para obter as ICs:

x = AsA −^1 x = A −^1 Ass = Bx (12) Se a matriz A não for quadrada, então não terá inversa.

P

7 PRÉ-PROCESSAMENTO

A correlação é considerada uma medida “fraca”. Todavia, pode-se verificar que este procedimento permite a determinação de uma transformação linear sobre a mistura. À luz deste paradigma, conclui-se que a PCA considera apenas estatística de segunda ordem, diferentemente de ICA, que considera estatística de ordem superior, discutido anteriormente. Assim, utiliza-se a PCA como um pré- processamento ao ICA que chamamos de branqueamento (POBLADOR; MORENO et. al., 2004). Este método será detalhado na próxima seção. Para ilustrar a tentativa de recuperar as fontes usando branqueamento, representamos duas fontes independentes,  e  , uniformemente distribuídas em um quadrado (Figura 7). Usou-se uma matriz quadrada 2x2 para gerar as misturas dadas pela Equação 2. O resultado desta mistura é apresentado na Figura 8 e por fim suas estimativas obtidas pelo processo de branqueamento são ilustradas na Figura 9. Considerando o efeito do sistema misturador linear, verifica-se a dificuldade da recuperação das fontes (Figura 9) usando estatística de segunda ordem. Claramente, o método consegue recuperar as escalas das fontes, mas é incapaz de recuperar a rotação, pois existe uma indeterminação referente a uma matriz ortogonal cujo efeito é a rotação dos dados (HYVÄRINEN; OJA, 1999). Intuitivamente, percebe-se que a utilização dessa ideia para um pré- processamento no algoritmo ICA dito anteriormente é obrigatório na utilização do branqueamento para a separação das fontes, visto que em distribuições gaussianas conhecemos apenas duas características, a média e variância. Percebe-se com este resultado a ineficácia da estatística de segunda ordem, no que tange a impossibilidade de recuperar fontes gaussianas e este resultado foi provado por Comon (1994).

Figura 7: Distribuição conjunta é uniforme em um quadrado.

Figura 8: Distribuição das misturas dos componentes.

Figura 9: Distribuições conjuntas das estimativas usando PCA.

O branqueamento de x pode ser feito pela matriz V tal que,

  /^ , (18)

onde,  é uma matriz ortogonal cujas colunas são os autovetores de ^ e  é uma matriz diagonal com os autovalores correspondentes:

  ^ (19)

Assim, o branqueamento transforma a matriz  em uma nova matriz , de forma que agora temos:

     (20) Vamos agora fazer uma transformação ortogonal em  fazendo: !  " (21) Em razão à ortogonalidade de ",! também é branco como mostra a seguinte expressão:

!!  ""  "I"^  I (22) Portanto, mostrou-se que o branqueamento é um pré-processamento para o ICA, pois ele não é suficiente para que se estimem as fontes independentes, e fornecendo apenas uma transformação ortogonal em . O que precisamos agora é de uma estratégia elaborada para rotacionar os dados das misturas.

8 MÉTODO DE ESTIMAÇÃO ICA

As componentes independentes são determinadas através da aplicação de uma transformação na matriz de mistura ortogonal, após o processo de whitening. Uma vez que, as misturas são uma combinação linear das ICs, então é possível reconstrui-las a partir duma transformação linear inversa sobre as variáveis de x. Assim sendo, a Equação 23 mostra a transformação, a partir da qual, se obtém as ICs:

ic (^) i = bit x (23)

O elemento $% da Equação 23 é uma componente independente e trata-se duma estimativa do sinal original. O elemento b é o vetor apropriado que reconstrói cada componente independente. Existem inúmeras e diferentes abordagens para estimar b que, se baseiam numa função objetivo relacionada com a independência das variáveis. Essa função é maximizada ou minimizada através de algoritmos de optimização. As várias abordagens diferem entre si, na definição da função objetivo que é optimizada e, no método de optimização a usar. Alguns métodos são: Maximização da não-gaussianidade; estimativa da máxima probabilidade; minimização da Informação mútua; métodos tensoriais, método usando PCA, entre outros.

8.1 ALGORITMO ICA UTILIZANDO PCA

Um dos algoritmos que foi desenvolvido recentemente provou ser superior a algumas abordagens ICA (KUN, CHAN, 2006). Conhecido como P-ICA , esta abordagem basicamente resolve o problema de BSS linear aplicando PCA e posteriormente usa uma transformação para recuperar os sinais de fontes.

Considerando os dados observados representados por x , PCA e ICA visam à transformação linear dado pela Equação 2. No entanto, elas exploram os dados de formas diferentes. O PCA visa encontrar uma transformação ortogonal em W que dá resultados não correlacionados (vale lembrar que se mostrou anteriormente que PCA considera apenas estatística de segunda ordem). Porém, o PCA utiliza a distribuição conjunta gaussiana para ajustar os dados e encontrar uma transformação ortogonal que faz a distribuição conjunta gaussiana fatorável independente da verdadeira distribuição dos dados. Neste contexto, a ICA tenta encontrar uma transformação linear que faz a verdadeira distribuição conjunta dos dados transformados fatorável, de modo que as saídas são mutuamente independentes. Grande parte dos algoritmos ICA requerem o branqueamento das misturas como descrito na seção 7.2, podemos citar como exemplo o FastICA (HYVÄRIEN, 1999c) e o JADE (CARDOSO, 1999). Discorremos na mesma seção que o processo de branqueamento pode ser feito a partir de PCA, bem como usar decomposição de autovalores e autovetores.

Sendo um processo iterativo, um novo valor de W é dado por: W = [ E { x ( Wtx )^3 }− 3 No final, o vector W fornece uma das componentes independentes como uma combinação (Equação 24). Mas para tal acontecer, é necessário que os valores old and new de W apontem na mesma direção.

ic = Wt x (24) 8.2.2 UTILIZANDO NEGENTROPIA

O algoritmo FastICA foi primeiramente publicado por Hyvärinen (1999b). O objetivo do algoritmo é encontrar uma matriz W e ajustar as suas linhas denotadas por ), de modo que !  ) resulte numa estimativa das fontes, lembrando que a maximização da Negentropia é baseada nos momentos polinomiais (HYVÄRINEN, 1999a). Utilizando a aproximação da Negentropia e considerando que os dados foram branqueados, a maximização da Negentropia se resume em encontrar uma matriz W que é descrito pelo seguinte problema de otimização (HYVÄRINEN, 2000):

)*  +, - ./ 01 2 1 3 

Fazendo uma restrição na etapa de adaptação, temos que restringir a potência de cada uma das estimativas assumindo que:

  )  1

O máximo da função )* é quando encontramos certo valor ótimo de 1 em razão ao 10 3 4 ser constante. Assim, considerando o primeiro termo da equação, o problema de maximizar e otimizar são equivalentes. Podemos mostrar que o problema de otimização é resolvido usando o método de Lagrange , quando a seguinte condição é satisfatória (HYVÄRINEN, 1999):

1^6 ) 7 8)  0,

onde 8 é uma constante.

Considerando que as misturas estejam branqueadas, aplica-se o método de Newton para a solução da expressão anterior e assim se obtêm a seguinte regra de atualização:

) ← 1) 2 1^6 ))

onde G é uma função não quadrática e 16 é sua derivada. A expressão a seguir poderia representar 1 e sua derivada, respectivamente:

1;  ^1  log ?@A B

16 ;  CAB Para recuperar várias fontes a partir da regra de atualização (ou regra de ajuste), se faz necessário executá-la para vários vetores ). Frequentemente, se tem um problema em que o algoritmo sempre encontra a mesma fonte, ou seja, converge para o mesmo ótimo. Neste caso, o problema é contornado da seguinte maneira: Considere um problema de separação de três fontes distintas feita a extração da primeira fonte. A extração da segunda fonte é feita aplicando a regra de ajuste. Entretanto, a cada iteração se retira do vetor em processo de estimação a contribuição do vetor referente à primeira fonte, de modo que esses dois vetores sejam ortogonais. Podemos usar esta mesma estratégia para extrair a terceira fonte. Deve-se, em cada iteração, retirar a contribuição dos dois vetores estimados e assim por diante. Finalmente, a regra de aprendizagem do FastICA é descrito:

  1. Centralizar e branquear as misturas;
  2. Definir aleatoriamente valores iniciais para ) (colunas de W ) e ortogonalizar W de acordo com passo 5;
  3. Para todo D faça ) ← 1) 2 1^6 ));
  4. Divida ) por sua norma;
  5. Ortogonalizar ' ← ''/^ ';
  6. Caso não convirja, volta para o passo 3.

9 APLICAÇOES ICA

Um dos grandes desafios da engenharia biomédica é na avaliação das alterações fisiológicas que ocorrem em diversos órgãos internos do corpo humano. Existem problemas nas extrações das informações relevantes para diagnósticos, ou seja, sinais de fontes biomédicos são geralmente fracos, não estacionários, com ruídos e interferências (CICHOCKI; AMARI, 2002). A seguir têm-se algumas aplicações da ICA em problemas de separação cega de fontes.

9.1 MONITORAMENTO DE BATIMENTOS CARDÍACOS

A ação mecânica dos músculos do coração é estimulada por sinais elétricos. Estes níveis de sinais podem ser medidos e visualizados como funções de tempo usando eletrocardiograma (ECG) (CICHOCKI; AMARI, 2002). Tal como para adultos também seria possível medir a atividade elétrica do coração de um feto. As características de um eletrocardiograma fetal (FECG) podem ser muito úteis para determinar se um feto está se desenvolvendo corretamente, por exemplo. Estas características incluem uma elevação da frequência cardíaca fetal que indica estresse, arritmias. Obter uma informação fiel do FEGC é uma tarefa não trivial. Problemas podem acontecer em virtude de que o eletrocardiograma também contém informações dos batimentos cardíacos materno (MECG) (JAHN; AMARI et al., 1999). Além disso, o FECG irá ocasionalmente sobrepor sinais ao MECG e torná-lo normalmente difícil de detectar (CARDOSO, 1998). Também juntamente com o MECG ruídos extensivos nestes sensores interferem no FECG e podem mascarar completamente este. A separação destes sinais de fontes fetal e materno de uma mulher grávida pode ser modelado como um problema BSS (HAYKIN, 2001a).

9.2 CANCELAMENTO DE RUÍDO E INTERFERÊNCIA

O sistema nervoso dos seres humanos e dos animais deve codificar e processar informações sensoriais. Dentro deste contexto, os sinais codificados (as imagens, sons) têm propriedades muito específicas. Uma das tarefas desafiadoras é a de saber como fielmente detectar, localizar e melhorar os sinais cerebrais em que

muitas vezes as fontes são corrompidas. ICA e Análise Fatorial Adaptativo (AFA) são abordagens promissoras para a eliminação de artefatos e ruídos provenientes dos EEG / MEG (HE; REED, 1996) (JAHN; AMARI et al., 1999).

9.3 SISTEMAS DE COMUNICAÇÃO DIGITAL

Considere um sistema onde se têm múltiplos sinais de uma propagação de comunicação sem fio, bem como um número de usuários difundidos em sinais modulados digitalmente para uma estação base em um ambiente de vários usuários. A transmissão destes sinais interage com diversos objetos físicos na região antes de chegar à antena ou estação de base. Cada sinal segue caminhos diferentes com atraso e atenuação. Este é um típico problema que é conhecido como “multi-path fading” (CARDOSO, 1998). Além disto, em algumas redes de celulares existem outras fontes adicionais de distorções. Estas interferências podem ser causadas por vários utilizadores que partilham a mesma frequência e tempo. Um problema desafiador é a separação e processamento de sinais cegos conjunta de espaço-tempo e equalização dos sinais transmitidos, isto é, para estimar a fonte de sinais e seus canais na presença de outros sinais e ruído (HAYKIN, 2001a).

10 EXEMPLO DA APLICAÇÃO ICA UTILIZANDO MATLAB

Neste experimento utilizamos 3 sinais de fontes que são misturados por uma matriz 3x3 gerado aleatoriamente e finalmente estimado pelo P-ICA. Vamos primeiramente descrever o método P-ICA dado pelo pca_ica.m. E o método utilizado para realizar o branqueamento é dado por branqueamento.m.

% A seguinte função implementa o P-ICA linear % % Entrada: x é mistura uma matriz(dxn) % % y é os sinais estimados % w é a matriz de mistura (inversa de A) % % % Autor: Nielsen C. Damasceno % Data: 20.12. function [y,w] = pca_ica(x)

n = size(x,1);