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 på .
-
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 på 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
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:
- Randomisera den initiala viktvektorn
- Låt , där betyder medelvärde över alla kolumnvektorer av matris
- Låt
- Om inte konvergerat, gå tillbaka till 2
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