- Independent Component Analysis
-
Independent Component Analysis (ICA) löst das Blind-Source-Separation-Problem (BSS), indem angenommen wird, dass die Quellen einer Datenmischung statistisch unabhängig sind.
Inhaltsverzeichnis
Problemstellung
Es wird dabei davon ausgegangen, dass ein Signal mit einer Mischmatrix A multipliziert wird. Das Resultat ist ein neues gemischtes Signal gleicher Dimension.
Das Ziel der ICA ist es nun, wieder das Signal möglichst originalgetreu zu berechnen. Hierfür steht nur das Ergebnis der Mischung zur Verfügung und das Wissen, dass die Teilsignale ursprünglich stochastisch unabhängig waren. Es ist also eine geeignete Matrix A − 1 gesucht, so dass
.
Vorgehensweise
Wir gehen zunächst davon aus, dass unsere Daten von ihrem Mittelwert befreit sind.
Normierung der Varianz
Die Datenverteilung des gemischten Signals muss zunächst in ihrer Varianz normiert werden. Wir berechnen hierfür die Hauptkomponenten über die PCA. Als Ergebnis erhalten wir die Eigenwerte und die Eigenvektoren der Kovarianzmatrix des Signals. Der Satz von Eigenvektoren ergibt die Drehmatrix R, welche wir mit unserem Vektor multiplizieren, so dass unsere Hauptkomponenten nun entlang der Achsen liegen. Die Eigenwerte ei entsprechen der Varianz der jeweiligen Hauptkomponente. Wir bilden aus ihnen die Diagonalmatrix D:
Durch das Multiplizieren mit der Diagonalmatrix führen wir ein sogenanntes Whitening durch und normieren die Varianz dabei auf 1.
Bestimmung der unabhängigen Komponenten
Nun wollen wir die Drehmatrix bestimmen, mit der unsere Daten stochastisch unabhängig werden. Dieser Schritt ist in einer Vielzahl von Ansätzen lösbar. Ziel ist es dabei jedoch immer die Nicht-Gaussheit zu maximieren oder die gemeinsame Information zu minimieren.
Kurtosis
Die Kurtosis ist ein Maß für die Abweichung von einer Normalverteilung. Sie ist definiert durch
- kurt(X) = E(X4) − 3E(X2)2 = E(X4) − 3.
Da unsere Daten in ihrer Varianz normiert sind, wird E(X2) gleich Eins. Unsere Kurtosis wird Null, wenn unsere Verteilung gaussähnlich ist. Ist die Kurtosis negativ, so ähnelt sie zunehmend einer Gleichverteilung. Ist sie positiv, so ist unsere Verteilung eher eine Laplace-Verteilung. Wir müssen also unsere Kurtosis maximieren bzw. minimieren, um uns von der Normalverteilung zu entfernen. Hierzu kann man das Gradientenverfahren verwenden, zum Beispiel in Anlehnung an die Lernregel von Oja.
Negentropie
Ein weiterer Ansatz ist die Maximierung der Negentropie.
Wobei XGauss in Hinsicht auf Varianz und Mittelwert der Verteilung von X entspricht. Da diese jedoch schwer zu bestimmen ist verwendet man hier meist eine Nährung.
Fast ICA
Fast ICA ist ein Fixpunktalgorithmus, welcher das Problem über ein Newtonverfahren löst.
Weblinks
- FastICA Implementierungen für Matlab, R, C++, und Python
- [1] (engl.) Was ist Independent Component Analysis?
- Swartz Center for Computational Neuroscience, University of California San Diego (ICA-basierte Analyse elektrophysiologischer Daten mit Hilfe der freien Matlab-Toolbox EEGLAB)
Wikimedia Foundation.