I'm working with the FastICA algorithm (in itpp/signal). I have a working project that uses the "Helsinki University of Technology" MATLAB implementation, and my understanding is that the version contained in IT++ is a direct port. Differences between the results I generate with the IT++ version and the MATLAB version have led me to the following:
It seems that the default behavior of this algorithm is to generate a random initial guess of the solution. However, the function set_init_guess() (member of Fast_ICA) stores a matrix containing an initial guess, which should then be used in place of a random matrix.
However, it seems that this specified initial guess is never accessed, and in fact a flag that indicates whether to use a specified vs. random initial guess is hard-coded in the constructor, but is not checked, thus the algorithm always uses a random guess.
This issue has been corrected in the attached patch.
Log in to post a comment.