An Approximate, Randomized 'Eigen' Algorithm
In the world of numerical algorithms, finding efficient solutions for matrix decomposition is a cornerstone of many scientific and engineering applications. Eigenvalue decomposition, in particular, plays a crucial role in fields ranging from signal processing to machine learning. One interesting challenge is developing approaches that are both computationally efficient and suitable for environments with constraints, such as embedded systems or real-time applications.
In this post, we explore an approximate, randomized algorithm for eigenvalue decomposition that leverages the "Follow the Perturbed Leader" (FPL) framework. This approach is particularly useful in scenarios where traditional sparse matrix packages may be too cumbersome to implement in constrained environments. By combining randomization techniques with iterative eigenvector computation methods, we aim to simplify the problem without sacrificing accuracy.
Background
In its linear, discrete-time form, Kalman filters can be described by the following equations:
In an ideal situation, covariance matrices
One solution is to decompose
The Algorithm
We propose a randomized matrix algorithm to approximate eigenvalue decomposition. In many cases, sparse matrix libraries are too large to fit into embedded systems, leading to implementation challenges. Our algorithm offers an alternative, balancing efficiency and accuracy.
This approach leverages the "Follow the Perturbed Leader" (FPL) oracle-based eigenvector computation in an online setting.
We assume we have a distribution
The algorithm operates as follows:
An effective way of evaluating
Computing Approximate Eigenvectors
Assuming we wish to compute approximate eigenvectors and values of
Conclusion
This randomized approach provides a practical solution for scenarios where traditional eigenvalue algorithms are computationally prohibitive or impractical for embedded applications. By applying FPL techniques, we can iteratively compute eigenvectors in an efficient, online setting.