Fastica
FastICA este un popular algoritm independent de analiză a componentelor dezvoltat de Aapo Hyvärinen de la Universitatea de Tehnologie din Helsinki . Algoritmul se bazează pe un punct fix, schemă iterativă pentru a maximiza non-gaussianitatea unei măsuri statistice de independență. Algoritmul poate fi, de asemenea, derivat din iterația aproximativă a lui Newton.
Algoritm
FastICA pentru o componentă
Algoritmul iterativ găsește direcția pentru vectorul de greutate maximizând non-gaussianitatea proiecției pentru . Functia este derivatul unei funcții non-pătrate.
- Alegeți un purtător de greutate de pornire
- Este
- Este
- dacă nu converge, reveniți la pasul 2
În acest caz, convergența înseamnă apariția situației prin care valorile referindu-se la 2 iterații succesive îndreptate în aceeași direcție.
Câteva exemple de funcții Sunt:
Maximele relative la aproximarea negentropiei lui sunt obținute în corespondență cu unele rezultate ale optimizării funcției ; conform condițiilor Karush-Kuhn-Tucker , optimale ale funcției cu constrângerea sunt obținute în punctele în care apare:
Rezolvând ecuația cu metoda lui Newton și definind partea stângă a ecuației cu F , obținem matricea iacobiană JF (w) ca: Pentru a simplifica inversarea acestei matrice, este util să aproximăm primul termen; dacă datele sunt centrate (valoare medie nulă) și albite, acestea pot fi aproximate după cum urmează:
Prin aplicarea acesteia, matricea iacobiană devine o matrice diagonală și, prin urmare, poate fi ușor inversată. Se obține astfel o iterație Newton aproximativă:
Algoritmul poate fi simplificat în continuare prin înmulțirea ambelor părți cu , dând naștere adevăratului algoritm FastICA.
(Algoritmul folosește o aproximare a negentropiei , care folosește kurtosis ).
FastICA pentru componente multiple
Algoritmul descris pentru o componentă permite să obțină doar una dintre componentele independente. Pentru a putea estima mai mult este necesar să se aplice algoritmul unui set de n unități, caracterizat prin vectori de greutate .
Aplicarea algoritmului este aceeași, dar este necesară prevenirea convergenței mai multor neuroni către același maxim, adică este necesară necorelarea ieșirilor de rețea la sfârșitul fiecărei iterații. Pentru a face acest lucru, există cel puțin trei metode în literatură.
Caracteristicile algoritmului
- convergența este cubică presupunând un model ICA, făcând astfel algoritmul mai rapid decât metodele clasice bazate pe coborârea în gradient, care se caracterizează prin convergență liniară.
- algoritmul se bucură de o ușurință mare de utilizare, de asemenea, deoarece nu există prea mulți parametri de setat.
- FastICA poate găsi componentele independente ale aproape tuturor distribuțiilor gaussiene prin intermediul oricărei funcții neliniare g , spre deosebire de alte tehnici care necesită informații a priori despre distribuții.
- Componentele independente pot fi estimate una câte una, făcând din acest instrument un instrument important pentru analiza datelor exploratorii și reducerea sarcinii de calcul.
- Algoritmul împărtășește caracteristicile dezirabile cu abordările neuronale: este paralel, distribuit, flexibil din punct de vedere al calculului și nu este foarte solicitant în ceea ce privește memoria utilizată.
Elemente conexe
linkuri externe
- Pachet FastICA pentru Matlab , pe cis.hut.fi.
- pachetul fastICA în limbajul de programare R.