0
$\begingroup$

$C \in \mathbb{R}^{m \times n}$, $X \in \mathbb{R}^{m \times n}$, $W \in \mathbb{R}^{m \times k}$, $H \in \mathbb{R}^{n \times k}$

$\circ$ is Hadamard product (element-wise product).

$$[C \circ (WH^T)]H - (C \circ X)H +{\lambda}W = 0 \quad (1)$$

Hi everyone,

In equation (1), how to get the $W$ expression, that is $W$ was expressed by other matrices. Or is there some ways to change the hadamard product to ordinary matrix product (if no such hadamard product, it is easy to solve as usual)? What is the trick to solve such kinds of equations?

$$W = ?$$

Thanks.

Kevin

$\endgroup$
0
$\begingroup$

It's of the form $L(W) + \lambda W = B$ where $L$ is a linear operator, so if $L + \lambda I$ is invertible the solution is $W = (L+\lambda I)^{-1} B$. I don't know if there is a very nice expression for $(L + \lambda I)^{-1}$.

$\endgroup$
  • $\begingroup$ Thanks @Robert Israel. It is difficult to get $W$ using this expression. In fact, I asked the questions here: math.stackexchange.com/questions/1670377/… I just want to get the derivative of a function wrt $W$ and $H$. However, there is a solution like this: $\frac{\partial f}{\partial W_{i}}$, where $W_{i}$ is the ith row of $W$. Can you help proof $\frac{\partial f}{\partial W_{i}}$? Thanks. $\endgroup$ – BioChemoinformatics Feb 28 '16 at 22:14
0
$\begingroup$

I try to solve it by vectorization and kronecker product according to the fact.

$$vec(ABC) = (C^T \otimes A) vec(B)$$

$$vec(A \circ B )=diag(vec(A)) vec(B)$$

So,

$$I_m[C \circ (W \times H^T) ]H + \lambda I_m W I_k = I_m (C \circ X)H$$

$$(H^T \otimes I_m) vec[C \circ (WH^T)] + \lambda (I_k^T \otimes I_m)vec(W)=(H^T \otimes I_m)vec(C \circ X) $$

$$(H^T \otimes I_m) diag[vec(C)]vec[I_m WH^T] + \lambda (I_k^T \otimes I_m)vec(W)=(H^T \otimes I_m)vec(C \circ X)$$

$$(H^T \otimes I_m) diag[vec(C)](H \otimes I_m) vec(W) + \lambda (I_k^T \otimes I_m)vec(W)=(H^T \otimes I_m)vec(C \circ X)$$

So,

$$vec(W)=[(H^T \otimes I_m) diag[vec(C)](H \otimes I_m) + \lambda (I_k^T \otimes I_m)]^{-1}(H^T \otimes I_m)vec(C \circ X)$$

Hope, anyone help check the result if it is right. Thanks.

$\endgroup$
  • $\begingroup$ This looks like the right approach. The only problem I see is that in the initial expansion, the term $(\lambda\,I_m\,W\,I_m)$ should be $(\lambda\,I_m\,W\,I_k)$. Switch that $I_m$ term to $I_k$ in all your subsequent manipulations. Everything else looks good. $\endgroup$ – hans Mar 6 '16 at 1:37
  • $\begingroup$ @hans Thanks. I will check that. $\endgroup$ – BioChemoinformatics Mar 7 '16 at 14:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.