FastICA

FastICA är en effektiv och populär algoritm för oberoende komponentanalys uppfunnen av Aapo Hyvärinen vid Helsingfors tekniska högskola . Liksom de flesta ICA-algoritmer söker FastICA en ortogonal rotation av förvitade data, genom ett fastpunkts- iterationsschema , som maximerar ett mått på icke-Gaussianitet hos de roterade komponenterna. Icke-gaussianitet fungerar som en proxy för statistiskt oberoende , vilket är ett mycket starkt tillstånd och kräver oändliga data för att verifiera. FastICA kan också alternativt härledas som en approximativ Newton-iteration.

Algoritm

Förvitning av data

Låt beteckna indata matris, antalet kolumner som motsvarar antalet sampel av blandade signaler och antalet rader som motsvarar antalet oberoende källsignaler. Indatamatrisen måste vara förvitad , eller centrerad och blekad, innan FastICA-algoritmen tillämpas på den.

  • Att centrera data innebär att förnedra varje komponent av indata dvs.
för varje och . Efter centrering har varje rad av förväntat värde .
  • Att vita data kräver en linjär transformation av den centrerade datan så att komponenterna i är okorrelerade och har varians ett. Mer exakt, om är en centrerad datamatris, kovariansen av är den -dimensionell identitetsmatris, det vill säga,
En vanlig metod för blekning är genom att utföra en egenvärdesuppdelning kovariansmatrisen för de centrerade data E E är matrisen av egenvektorer och är den diagonala matrisen av egenvärden. Den vitade datamatrisen definieras sålunda av

Enkomponentsextraktion

Den iterativa algoritmen hittar riktningen för viktvektorn som maximerar ett mått på icke-Gaussianitet för projektionen , där betecknar en förvitad datamatris enligt beskrivningen ovan. Observera att är en kolumnvektor. För att mäta icke-Gaussianitet förlitar sig FastICA på en icke-kvadratisk olinjär funktion , dess första derivata , och dess andra derivata . Hyvärinen uppger att funktionerna

är användbara för allmänna ändamål, medan

kan vara mycket robust. Stegen för att extrahera viktvektorn för en enkel komponent i FastICA är följande:

  1. Randomisera den initiala viktvektorn
  2. Låt , där betyder medelvärde över alla kolumnvektorer av matris
  3. Låt
  4. Om inte konvergerat, gå tillbaka till 2

Extraktion av flera komponenter

Den iterativa enenhetsalgoritmen uppskattar endast en viktvektor som extraherar en enda komponent. Att uppskatta ytterligare komponenter som är ömsesidigt "oberoende" kräver att algoritmen upprepas för att erhålla linjärt oberoende projektionsvektorer - notera att begreppet oberoende här syftar på att maximera icke-Gaussianitet i de uppskattade komponenterna. Hyvärinen tillhandahåller flera sätt att extrahera flera komponenter med det enklaste är följande. Här en kolumnvektor med 1:or av dimensionen .

Algoritm FastICA

Ingång: Antal önskade komponenter
Indata: Förvitad matris, där varje kolumn representerar ett -dimensionellt prov, där
Utdata: Avblandningsmatris där varje kolumn projicerar på en oberoende komponent.
Utdata: Oberoende komponentmatris, med kolumner som representerar ett sampel med dimensioner.
 
     
        
        

för p i 1 till C: Slumpmässig vektor med längden N medan ändras utgång utdata

Se även

externa länkar