You know what happens when Random Matrices Are Too Damn Large and so yuuuggge, they cannot be held in memory nor processed ? well, the answer is to fake them till you make it. I like how the authors used the phase transition diagrams to show the similarity of two algorithms.
How to Fake Multiply by a Gaussian Matrix by Michael Kapralov, Vamsi K. Potluru, David P. Woodruff
Have you ever wanted to multiply ann×d matrixX , withn≫d , on the left by anm×n matrixG~ of i.i.d. Gaussian random variables, but could not afford to do it because it was too slow? In this work we propose a new randomizedm×n matrixT , for which one can computeT⋅X in onlyO(nnz(X))+O~(m1.5⋅d3) time, for which the total variation distance between the distributionsT⋅X andG~⋅X is as small as desired, i.e., less than any positive constant. Herennz(X) denotes the number of non-zero entries ofX . Assumingnnz(X)≫m1.5⋅d3 , this is a significant savings over the na\"iveO(nnz(X)m) time to computeG~⋅X . Moreover, since the total variation distance is small, we can provably useT⋅X in place ofG~⋅X in any application and have the same guarantees as if we were usingG~⋅X , up to a small positive constant in error probability. We apply this transform to nonnegative matrix factorization (NMF) and support vector machines (SVM).
1 comment:
https://archive.org/details/bitsavers_mitreESDTe69266ANewMethodofGeneratingGaussianRando_2706065
Post a Comment