O ICA requer a execução do PCA primeiro?

9

Revisei um documento baseado em aplicativos dizendo que aplicando o PCA antes de aplicar o ICA (usando o pacote fastICA). Minha pergunta é: o ICA (fastICA) exige que o PCA seja executado primeiro?

Este artigo mencionou que

... também é discutido que a pré-aplicação do PCA aprimora o desempenho da ACI (1) descartando pequenos valores próprios finais antes do clareamento e (2) reduzindo a complexidade computacional, minimizando as dependências entre pares. PCA correlaciona os dados de entrada; as demais dependências de ordem superior são separadas pelo ICA.

Outros documentos também estão aplicando o PCA antes da ACI, por exemplo, este .

Existem outros prós e contras para executar o PCA antes da ICA? Por favor, forneça referências à teoria.

Samo Jerom
fonte
Este trabalho publicado encontra efeitos adversos da redução dimensional baseada em PCA na ACI.
bonobo

Respostas:

9

A abordagem fastICA requer uma etapa de pré-clareamento: os dados são transformados primeiro usando PCA, o que leva a uma matriz de covariância diagonal e, em seguida, cada dimensão é normalizada, de modo que a matriz de covariância seja igual à matriz de identidade (clareamento).

Existem transformações infinitas dos dados que resultam em matriz de covariância de identidade e, se suas fontes fossem gaussianas, você parava por aí (para distribuições multivariadas gaussianas, média e covariância são estatísticas suficientes), na presença de fontes não gaussianas, você pode minimizar algumas medida da dependência dos dados embranquecidos, portanto, você procura uma rotação dos dados embranquecidos que maximize a independência. O FastICA consegue isso usando medidas teóricas da informação e um esquema de iteração de ponto fixo.

Eu recomendaria o trabalho de Hyvärinen para entender melhor o problema:

  • A. Hyvärinen. Algoritmos de ponto fixo rápidos e robustos para análise de componentes independentes. Transações IEEE em redes neurais 10 (3): 626-634, 1999.
  • A. Hyvärinen, J. Karhunen, E. Oja, Independent Component Analysis, Wiley & Sons. 2001

Observe que executar o PCA e reduzir a dimensão não são exatamente a mesma coisa: quando você tiver mais observações (por sinal) do que sinais, poderá executar um PCA retendo 100% da variação explicada e continuar com o branqueamento e a iteração de ponto fixo para obter uma estimativa dos componentes independentes. A execução ou não da redução de dimensão depende muito do contexto e é baseada em suas suposições de modelagem e distribuição de dados.

Giancarlo
fonte
2
Essa é uma boa resposta, mas, até onde eu sei, seu último ponto pode ser muito mais forte: é quase sempre uma boa ideia usar a etapa PCA para reduzir a dimensionalidade (além de embranquecer os dados). De fato, se a dimensionalidade é muito alta, a ACI pode facilmente superestimar e produzir componentes sem sentido. O pré-processamento com o PCA geralmente resolve esse problema (conforme discutido na citação no OP).
Ameba
4

A aplicação do PCA aos seus dados tem o único efeito de girar os eixos de coordenadas originais. É uma transformação linear, exatamente como por exemplo a transformação de Fourier. Portanto, como tal, ele realmente não pode fazer nada com seus dados.

No entanto, os dados representados no novo espaço PCA possuem algumas propriedades interessantes. Após a rotação de coordenadas com o PCA, você pode descartar algumas dimensões com base em critérios estabelecidos, como porcentagem da variação total explicada pelos novos eixos. Dependendo do seu sinal, você pode obter uma quantidade considerável de redução dimensional por esse método e isso definitivamente aumentaria o desempenho da seguinte ACI. Fazer uma ICA sem descartar nenhum componente do PCA não terá impacto no resultado da ICA a seguir.

Além disso, também é possível clarear facilmente os dados no espaço PCA devido à ortogonalidade dos eixos de coordenadas. O clareamento tem o efeito de equalizar as variações em todas as dimensões. Eu argumentaria que isso é necessário para que uma ACI funcione corretamente. Caso contrário, apenas alguns componentes de PCA com maiores variações dominariam os resultados da ACI.

Realmente não vejo nenhuma desvantagem para o pré-processamento baseado em PCA antes de uma ICA.

Giancarlo já cita a melhor referência para a ACI ...

bonobo
fonte
Toda a sua resposta é baseada na premissa de que a aplicação do PCA está simplesmente girando o eixo de coordenadas, mas, na verdade, "aplicando o PCA" geralmente significa redução da dimensionalidade (ou seja, mantendo apenas um subconjunto de PCs e descartando o resto).
Ameba
O PCA ajuda você a descobrir quais dimensões descartar, se desejar. Não vejo como isso ajusta minha resposta.
bonobo
Enquanto isso, este trabalho foi publicado, eles afirmam mostrar efeitos adversos da redução dimensional baseada em PCA na qualidade da ACI subsequente.
bonobo
Obrigado pelo link. Eu li o resumo e, para ser sincero, sou cético. Mas não sou especialista em ACI e provavelmente não vou estudar este documento em detalhes.
Ameba
2

A derivação do algoritmo fastICA requer apenas clareamento para uma única etapa. Primeiro, você escolhe a direção da etapa (como uma descida de gradiente) e isso não requer dados embranquecidos. Então, temos que escolher o tamanho do passo, que depende do inverso do hessiano. Se os dados forem clareados, esse hessiano é diagonal e invertível.

Então é necessário? Se você apenas fixasse o tamanho da etapa em uma constante (portanto, não necessitando de clareamento), teria uma descida de gradiente padrão. A descida de gradiente com um tamanho fixo de degrau pequeno normalmente convergirá, mas possivelmente muito mais lentamente que o método original. Por outro lado, se você tiver uma matriz de dados grande, o clareamento poderá ser bastante caro. Você pode se sair melhor mesmo com a convergência mais lenta que obtém sem clareamento.

Fiquei surpreso ao não ver menção disso em nenhuma literatura. Um artigo discute o problema: Novos algoritmos Fast-ICA para separação de fontes cegas sem pré-clareamento por Jimin Ye e Ting Huang.

Eles sugerem uma opção um pouco mais barata para o clareamento. Eu gostaria que eles tivessem incluído a comparação óbvia de apenas executar a ACI sem embranquecer como linha de base, mas não o fizeram. Como mais um ponto de dados, tentei rodar o fastICA sem embranquecer os problemas dos brinquedos e funcionou bem.

Atualização: outra boa referência para o clareamento está aqui: análise robusta de componentes independentes, Zaroso e Comon . Eles fornecem algoritmos que não requerem clareamento.

Greg Ver Steeg
fonte