![]() |
FastICA is the most popular method and the fastest algorithm to perform Independent Component Analysis. It can be used to separate all the individual signals from a mixed signal. Independent Component Analysis(ICA) is a method where it performs a search for finding mutually independent non-Gaussian latent variables. Here, the components of the multivariate data are assumed to be linear combinations of them. FastICA is of two types.
FastICA has some prominent features it can use any nonlinearity function and optimizes the extraction order in the deflation-based version. Mathematical ApproachFastICA can be used to separate all the individual signals from a mixed signal. So let us assume a set of individual source signals is
Now FastICA algorithm is used to unmix these signals as there are some multidimensional signals that can be present on the mixed signals. Blind source separation can effectively unmix these signals with the help of the FastICA algorithm by determining an un-mixing matrix We will see the steps of FastICA algorithms later on in this article. Applications of FastICAFastICA is used in various fields in real-life events like a mixed sound wave from multiple independent sources we can easily find out each signal wave along with its source by using FastICA. Also let if a room is full of people and there are a certain number of microphones, we can use FastICA to identify everyone from the mixed sound waves captures by microphones. Blind Source SeparationWhen all the sources of the signals and also the mixing methodology is completely unknown, the Blind source separation technique comes into consideration. From the name, we can understand it separates signals ‘blindly’ i.e. maximum numbers are not known of the mixed signals but we need to separate them. In real life, there are many situations where it is necessary to separate the mixed signal into it’s each signal. Also, there is a high possibility that the mixed signal contains noises. Blind Source Separation is used to handle these types of situations where separation is important but most things are not known about its input signal. Application of Blind Source Separation:It is used in many domains like Audio source separation(speech separation and music industry), Medical tests(electroencephalography, Magnetic Resonance Imaging(MRI), electrocardiography, etc.), and communication applications. FastICA AlgorithmFastICA consists of mainly three steps:- 1. Pre-whitening the data:If the input data matrix is
2. For single unit:After that , the iterative algorithm finds the direction for the weight vector that maximizes a measure of non-Gaussian plane of the projection on the pre-whitened data matrix. In this case it randomizes initial weight vector then perform averaging over all column-vectors of matrix X. If converges then weight vector(w) value is calculated if not converged then it re-performs the averaging. For calculating non-Gaussianity FastICA uses a nonlinear nonquadratic function f(q) and it’s first derivative(g(q)) , second derivative(g'(q)).
For general purpose uses the function will be –> or 3. For several unit:Only one weight vector can be estimated by the single unit iterative algorithm which extracts only a single component. For estimating additional components that are mutually independent(i.e. a certain components performance will not be affected by other components occurrence) requires repeating the algorithm to obtain linearly independent projection vectors. In this case total number of desired components along with pre-whitened matrix is given as input the algorithm gives the output as Un-mixing matrix(each column projects onto independent component) and Independent components matrix. Pseudo code for this algorithm is given below–>
Now we will see a example which depicts how FastICA is can be used for Blind source separation step by step–> To estimate the sound sources effectively from given noisy measurements the Independent component analysis (ICA) is used. Let us assume that three different type of musical instrument is playing music simultaneously and three microphones recording the mixed signals. ICA is used here to recover the sources of the signals i.e. which signal is played by which instrument. Here we will also show that PCA fails to recover the instruments since the related signals reflect non-Gaussian processes. We will see the implementation step by step–> Importing Python libraries and generating sample dataBy using python libraries like NumPy, SciPy, Matplotlib and SKlearn we can perform complex computations easily and effectively. After that three types of signals(sinusoidal, square and saw-tooth) we will generate. Python3
Computing ICANow we will compute ICA model using FastICA and also as given earlier we will also compute PCA model for showing the comparison. Python3
Visualizing results and comparison in graphical formatNow we will plot the graph with our achieved values and can under stand the efficiency of ICA for blind source separation of signals as well as PCA has failed to do this. Python3
Output: ![]() Blind source separation From the graph, it is very much clear that ICA has separated all three signals efficiently but PCA can’t. |
Reffered: https://www.geeksforgeeks.org
AI ML DS |
Type: | Geek |
Category: | Coding |
Sub Category: | Tutorial |
Uploaded by: | Admin |
Views: | 13 |