On Mar 2, 2011, at 4:32 PM, Ted Dunning wrote:

> Uh... it has been some time since I read Funk's blog entry on this nor have I 
> read the code you reference, but isn't it typical for such incremental 
> solvers to put the singular values with U or V?  Suppose that we really get 
> matrices X and Y instead of the orthonormal matrices U and V such that
> 
Maybe someone else can chime in here.  I was under the impression that d1 = d2 
= sqrt(s) in this incremental approach, but this is pretty new to me.
>     (U  d1)  (V d2)^T  = X Y^T
> 
> where d = d1 d2 is the diagonal matrix with the singular values.  To get d 
> back, we just do this:
> 
>     d1 = sqrt(X^T X)
>     d2 = sqrt(Y^T Y)
>     d = d1  d2

Cool, okay.  I see this now.  

Thanks a lot Ted.  I am curious to see how this plays out for my problem!
Chris

> 
> Similarly, if we really do get a singular decomposition, we can use the 
> original matrix to compute the singular values:
> 
>     A  =  U d V^T
> 
>     d  = U^T A V
> 
> 
> On Wed, Mar 2, 2011 at 3:52 PM, Chris Schilling <[email protected]> wrote:
> Hey Ted,
> 
> I finally had time to get back to this.  This is definitely bringing back 
> some memories :)  I hope you have room for (hopefully) one more question.
> 
> So, I have been studying Simon Funk's incremental SVD approach (this is 
> implemented in ExpectationMaximizationSVDFactorizer). In this method, the 
> singular values are folded in to the left and right matrices:
> 
> A = U * sqrt(d) * sqrt(d) * VT = U' * V'T
> 
> So, in this case, inverse(V'T) = V * d^-1/2 
> 
> Whatever the case, my question is the same:  given U' and V'T, I am failing 
> to see an elegant (i.e. trivial) solution to extracting the singular values.  
> I was hoping you could help me out.
> 
> Thanks again,
> Chris
> 
> On Feb 25, 2011, at 2:29 PM, Ted Dunning wrote:
> 
>> Yes.  That affects things.  The key is that inverse(diag(d_1 ... d_n)) = 
>> diag(1/d_1 ... 1/d_n)
>> 
>> that means that inverse(D V') = V inverse(D).  If you have X' = DV' you need 
>> to compute inverse(X') = X D^-2
>> 
>> On Fri, Feb 25, 2011 at 1:25 PM, Chris Schilling <[email protected]> wrote:
>> One more linear algebra question.  So, does this still hold when the diag(d) 
>> matrix is multiplied through the right hand side?  Is that an affect I 
>> should worry about when trying to compute u?
>> 
> 
> 

Reply via email to