Siksha Sarovar

Siksha Sarovar (sikshasarovar.com) is a free educational web application that helps students in India learn programming and prepare for academic and competitive exams. The platform offers structured coding courses (C, C++, Python, Java, HTML, CSS, PHP, Power BI, AI, Machine Learning, Data Science), complete university curriculum notes for BCA/MCA students with previous year question papers, Class 10 and Class 12 CBSE/HBSE school notes, and dedicated preparation material for SSC, UPSC, Banking, Railway and other government exams. Browsing the site is completely free and requires no account. Users may optionally sign in with Google solely to save their learning progress, quiz scores and personal preferences across devices.

Privacy Policy | Terms of Service | Contact Siksha Sarovar | About Siksha Sarovar

v4.0.9 · PWA
Siksha Sarovar logo
Siksha Sarovar
Your Learning Universe

Siksha Sarovar is a free e-learning platform for coding courses, BCA university notes and competitive exam preparation. Optional Google sign-in saves your learning progress across devices.

Initializing knowledge base…
Compiling modules 0%

10. Independent Component Analysis (ICA)

Lesson 12 of 22 in the free Machine Learning II notes on Siksha Sarovar, written by Rohit Jangra.

10. Independent Component Analysis (ICA)

ICA is a computational technique for separating a multivariate signal into statistically independent non-Gaussian components. The classic motivating example is the cocktail party problem: given recordings from microphones placed in a room with multiple speakers, recover the individual speakers' voices.

Problem Formulation

Observed signal: x = A * s

  • x: observed mixtures (p-dimensional)
  • A: unknown mixing matrix (p x p)
  • s: unknown independent source signals (p-dimensional)

Goal: find W such that s_hat = W * x recovers independent sources.

Key Assumptions

  1. Source signals s_i are statistically independent.
  2. At most one source can be Gaussian (a fundamental constraint of ICA).
  3. The mixing is instantaneous (no time delays).

ICA vs PCA

AspectICAPCA
CriterionStatistical independenceUncorrelated (2nd-order)
Uses higher momentsYes (kurtosis, negentropy)No
SolutionUnique (up to order/scale)Unique (orthogonal basis)
Handles non-GaussianRequiredGaussian assumed optimal
ApplicationBSS, fMRI, audioCompression, visualization

FastICA Algorithm

  1. Center and whiten data (make uncorrelated with unit variance)
  2. For each component i:
  3. a. Initialize random weight vector w b. Iterate: w = E[x G(w^Tx)] - E[G(w^Tx)] w c. Deflate: orthogonalize w against previous components

  4. Sources: s_hat = W * x

Where G is the derivative of a non-linearity (e.g., tanh for kurtosis maximization).

Common Pitfalls

  • ICA cannot determine order or scale of recovered sources (inherent ambiguity)
  • Requires all sources to be non-Gaussian — fails if sources are Gaussian
  • Computationally intensive for large datasets

Exam-Ready Summary

  • ICA: recovers statistically independent sources from observed linear mixtures
  • PCA decorrelates (2nd order); ICA achieves full statistical independence (all orders)
  • FastICA uses kurtosis or negentropy as a measure of non-Gaussianity
  • Order and scale of components are ambiguous — not a limitation in practice
  • Applications: EEG/fMRI blind source separation, audio signal processing