In a previous post we discussed how to find a common point in a family of convex sets by using the Bregman algorithm. Actually the algorithm is capable of more. We can use it to solve constrained optimization problems.
In the 1960s Lev Meerovich Bregman developed an optimization algorithm  which became rather popular beginning of 2000s. It’s not my intention to present the proofs for all the algorithmic finesse, but rather the general ideas why it is so appealing.
We developed a QR decomposition algorithm, based on the orthogonalisation process of Gram-Schmidt in a series of posts here, here, here, and here. Let’s have a look how good this algorithm performs against built-in implementations from julia and other programming languages.
Problem Formulation We already discussed QR decompositions and showed that using the modified formulation of Gram Schmidt significantly improves the accuracy of the results. However, there is still an error of about $10^3 M_\varepsilon$ (where $M_\varepsilon$ is the machine epsilon) when using the modified Gram Schmidt as base algorithm for the orthogonalisation.
Besides my research in computer vision related tasks such as optical flow, photometric stereo, and shape matching and my focus on PDE-based compression, I have also ventured in other image processing tasks.
I have used machine learning techniques in various projects. Our most successful applications were in the context of quantizing colour values for optimized inpainting and in accoustic source characterizations.
Source Code The source code for clustering methods used for quantizing optimal masks can be found here.