Analisi delle componenti indipendenti
L'analisi delle componenti indipendenti, anche nota con l'acronimo inglese ICA (che sta per Independent component analysis) è un metodo di elaborazione computazionale che serve per separare un segnale multivariante nelle sue sotto-componenti additive, assumendo che esista una mutua indipendenza statistica della sorgente dei segnali non Gaussiani. Si tratta di un caso particolare della blind source separation ("separazione alla cieca delle sorgenti").
Definizione di ICA
modificaL'assunzione dell'indipendenza delle varie onde del segnale si rivela corretta in molti casi in modo che la separazione alla cieca tramite ICA di un segnale misto fornisce spesso risultati molto buoni. Viene anche utilizzato per segnali che non si suppone siano stati generati per una miscelazione per puri propositi analitici. Una semplice applicazione della ICA è il problema del cocktail party, dove i segnali del parlato del nostro interlocutore, subiacenti alla musica ed al rumore del simultaneo parlato altrui, vengono separati in modo efficace. In genere il problema viene semplificato assumendo che non vi siano echi né ritardi temporali nell'arrivo all'udito dell'ascoltatore. Una nota importante da considerare è che se sono presenti N sorgenti, sono necessarie almeno N osservazioni (ad es. microfoni) per ottenere i segnali originari (J = D, dove D è la dimensione dell'input di dati e J è la dimensione del modello). Altri casi di (J < D) non ben determinato oppure sopradeterminato (J > D) sono stati esaminati.
Il metodo statistico trova le componenti indipendenti (noti come fattori, variabili latenti o sorgenti) massimizzando l'indipendenza statistica delle componenti stimate. La non-gaussianità, motivata dal teorema del limite centrale, è un metodo per misurare l'indipendenza delle componenti. La non-gaussianità può essere misurata, ad esempio, dalla curtosi o approssimazioni della negentropia. L'informazione mutua è un altro criterio molto sfruttato per misurare l'indipendenza statistica dei segnali.
Algoritmi tipici dell'ICA
modificaGli algoritmi tipici dell'ICA utilizzano il centering, la determinazione del rumore bianco (whitening) e la riduzione delle dimensioni (dimensionality reduction) come stadi di preelaborazione per semplificare e ridurre la complessità del problema riguardante l'algoritmo iterativo in esame. I processi di whitening e riduzione in dimensioni possono essere ottenuti con l'analisi delle componenti principali o la decomposizione ai valori singolari dell'onda. Il processo del whitening assicura che tutte le dimensioni siano trattate ugualmente a priori prima che venga lanciato l'algoritmo. Gli algoritmi impiegati nell'ICA includono infomax, FastICA e JADE, ma vi sono anche molti altri.
Il metodo ICA non è in grado di estrarre l'esatto numero delle sorgenti del segnale, l'ordine in cui arrivano i segnali dalle fonti, e neanche il segno (positivo o negativo) o il valore scalare delle sorgenti.
Il metodo è importante per la separazione dei segnali alla cieca (blind signal separation) e può fornire molte applicazioni pratiche.
Definizioni matematiche
modificaL'analisi delle componenti lineari indipendenti può essere divisa in noiseless e noisy cases, dove noiseless (senza rumore) ICA è un caso particolare di noisy ICA (rumoroso o per meglio dire artefattato).[1] L'ICA non lineare dovrebbe essere considerata come caso separato.[2]
Storia
modificaIl quadro di riferimento generale che ha permesso lo sviluppo dell'analisi delle componenti indipendenti venne elaborato da Jeanny Herault e Christian Jutten nel 1986 ed è stato più chiaramente definito da Pierre Comon nel 1994. Nel 1995, Tony Bell e Terry Sejnowski hanno dimostrato un algoritmo ICA (basato su infomax) molto veloce ed efficiente, un principio introdotto da Ralph Linsker nel 1992.
Vi sono molti algoritmi presentati dalla letteratura statistica che possono eseguire l'ICA. Uno molto utilizzato, che viene incluso nella applicazioni industriali, è l'algoritmo FastICA, che è stato sviluppato da Aapo Hyvärinen e da Erkki Oja, ed impiega la curtosi come funzione di costo. Altri esempi sono piuttosto relativi alla blind source separation (separazione alla cieca delle sorgenti), che necessita di un approccio più generico. Ad esempio, si può assumere che le sorgenti siano indipendenti e si può procedere a separare segnali che sembrano mutuamente correlati, e dunque, che sono segnali statisticamente "dipendenti" a vicenda.
Applicazioni
modificaUn esempio della applicazione degli algoritmi ICA è nel campo della elettroencefalografia (EEG), che sono registrazione della differenza di potenziale tra varie aree dello scalpo, generata dalla corteccia cerebrale e trasmessa attraverso le meningi ed il cranio. I segnali elettrici che si originano dal cervello vengono molto attenuati quando vengono registrati sullo scalpo (perché attraversano le meningi, il liquido cefalorachidiano, la calotta cranica, la galea aponeurotica e la cute dello scalpo), con potenziali che scendono al livello del microvolt (μV), ed esistono forti componenti indesiderate derivate dai movimenti oculari e dai muscoli facciali, temporali e frontali.
L'algoritmo ICA è stato ampiamente sfruttato anche nella separazione dell'elettrocardiogramma (ECG) del feto da quello della madre.
Le tecniche ICA possono essere estese all'analisi di dati non fisici, bensì semantici o linguistici. Ad esempio, la ICA è stata applicata per far capire ad un elaboratore l'argomento di discussione in un insieme di archivi di liste di notizie.
Note
modifica- ^ Johan Himbergand Aapo Hyvärinen, Independent Component Analysis For Binary Data: An Experimental Study, Proc. Int. Workshop on Independent Component Analysis and Blind Signal Separation (ICA2001), San Diego, California, 2001.
- ^ Huy Nguyen and Rong Zheng, Binary Independent Component Analysis With or Mixtures, IEEE Transactions on Signal Processing, Vol. 59, Issue 7. (July 2011), pp. 3168–3181.
Voci correlate
modificaAltri progetti
modifica- Wikimedia Commons contiene immagini o altri file sull'analisi delle componenti indipendenti
Collegamenti esterni
modifica- (EN) What is independent component analysis? by Aapo Hyvärinen
- (EN) Introductory chapter of the book A. Hyvärinen, J. Karhunen, E. Oja (2001). Independent Component Analysis
- (EN) FastICA as a package for Matlab, in R language, C++, and Python, su cis.hut.fi.
- (EN) ICALAB Toolboxes for Matlab, developed at Riken
- (EN) High Performance Signal Analysis Toolkit provides C++ implementations of FastICA and Infomax
- (EN) Free software for ICA by JV Stone.
- (EN) Demonstration of the cocktail party problem, su cis.hut.fi. URL consultato il 17 gennaio 2007 (archiviato dall'url originale il 13 marzo 2010).
- (EN) EEGLAB Toolbox ICA of EEG for Matlab, developed at UCSD.
- (EN) FMRLAB Toolbox ICA of fMRI for Matlab, developed at UCSD
- (EN) Discussion of ICA used in a biomedical shape-representation context, su brandon-merkl.blogspot.com.