Find gradient of $\operatorname{tr} \left( B^{T}X^{T}A^{T}CXD \right)$

69 Views Asked by At

I need to find the derivative wrt ${X}$ of:

$$ f({X}) = \operatorname{tr}( B^{T}X^{T}A^{T}CXD )$$

To make this simpler, I let $E = A^{T}C$, then I have:

$$ f({X}) = \operatorname{tr}( B^{T}X^{T}EXD ) = \operatorname{tr}( DB^{T}X^{T}EX )$$

We can rewrite this using the Frobenius inner product:

$$ f({X}) = XBD^{T}:EX$$

So we can calculate the differential easily now:

$$ df = (dX)BD^{T}:EdX$$

Unfortunately this is where I am stuck.


Perhaps we can rewrite this as:

$$ df = BD^{T}:(dX)^{T} E dX$$

But how do we isolate the dX value?


Edits:

I tried: $(dX)^{T} E dX = \operatorname{tr}( dXdX^{T}E) = \operatorname{tr}( EdXdX^{T}) $ but that isn't getting me anywhere either...

1

There are 1 best solutions below

2
On BEST ANSWER

You get two terms, one for each factor involving $X$. You can manipulate the trace for each one separately. Apparently you know that the derivative of $\operatorname{tr}Y^\top X$ is $Y$. For the first term, apply this to $\operatorname{tr}(DB^\top X^\top EX)$ to obtain $E^\top X BD^\top$. For the second term, use the invariance of the trace under cyclic permutation and under transposition to write $\operatorname{tr}(DB^\top X^\top EX)=\operatorname{tr}(X^\top EXDB^\top)=\operatorname{tr}(BD^\top X^\top E^\top X)$ and obtain the second term $EXDB^\top$. Thus the derivative is $E^\top X BD^\top+EXDB^\top$.