How do I optimize over (or take derivative wrt) a square diagonal matrix? - MathOverflow most recent 30 from http://mathoverflow.net2013-05-25T09:30:09Zhttp://mathoverflow.net/feeds/question/75051http://www.creativecommons.org/licenses/by-nc/2.5/rdfhttp://mathoverflow.net/questions/75051/how-do-i-optimize-over-or-take-derivative-wrt-a-square-diagonal-matrixHow do I optimize over (or take derivative wrt) a square diagonal matrix?Jackson2011-09-09T23:24:46Z2011-09-10T04:36:44Z
<p>Hello. I'd like to solve the following optimization problem.</p>
<p>$P_i$ is a 6x6 matrix<br>
$X$, $Y$ is a 6xk matrix<br>
$w_i$ is a kx1 vector<br>
$diag(w_i)$ is a square diagonal matrix with diagonal entries equal to $w_i$</p>
<p>$\min_{w_i} ~ ||P_i - X diag(w_i) Y^T||_F^2$</p>
<p>So the question is how to optimize over $diag(w_i)$.</p>
<p>Does anyone know how to take derivative wrt a diagonal matrix?</p>
<p>Or would it work if treat $diag(w_i)$ as a square matrix, solve it,<br>
and then set off-diagonal entries to zeros?</p>
http://mathoverflow.net/questions/75051/how-do-i-optimize-over-or-take-derivative-wrt-a-square-diagonal-matrix/75066#75066Answer by Brian Borchers for How do I optimize over (or take derivative wrt) a square diagonal matrix?Brian Borchers2011-09-10T04:28:23Z2011-09-10T04:36:44Z<p>Your notation is somewhat confusing, in that you apply the subscript $i$ to $w$, and have a vector $w_{i}$, but don't use $i$ in any meaningful way in your problem. I'm going to take the liberty of rewriting the problem as </p>
<p>$\min_{w} \| P-X \mbox{diag}(w) Y^{T} \|_{F} $.</p>
<p>You may have a whole bunch of these problems to solve as $i$ varies over some index set, but each can be solved separately.</p>
<p>This is a linear least squares problem in disguise. </p>
<p>The key to seeing this is to recognize that the Frobenius norm of a matrix $Z$ is the two norm of the vector $\mbox{vec}(Z)$ obtained from the matrix $Z$ by stacking the columns of $Z$ one on top of another. </p>
<p>Also note that </p>
<p>$X \mbox{diag}(w) Y^{T}=\sum_{j=1}^{k} w_{j} X_{j}Y_{j}^{T}$</p>
<p>where $X_{j}$ is the $j$th column of $X$, and $Y_{j}$ is the $j$th column of $Y$.</p>
<p>Now, your problem can be written as </p>
<p>$\min_{w} \| P- \sum_{j=1}^{k} w_{j} X_{j}Y_{j}^{T} \|_{F}$.</p>
<p>Let $H_{j}=X_{j}Y_{j}^{T}$, for $j=1, 2, \ldots, k$. We now have</p>
<p>$\min_{w} \| P - \sum_{j=1}^{k} w_{j} H_{j} \|_{F}. $</p>
<p>Transforming this into vector form, this becomes</p>
<p>$\min_{w} \| \mbox{vec}(P) - \sum_{j=1}^{k} w_{j} \mbox{vec}(H_{j}) \|_{2}$.</p>
<p>Let $A$ be the matrix whose columns are given by</p>
<p>$A_{j}=\mbox{vec}(H_{j})$. </p>
<p>Then the optimization problem can be written as </p>
<p>$\min_{w} \| \mbox{vec}(P) - Aw \|_{2} $.</p>
<p>which is a conventional linear least squares problem. </p>