问题是要找到Z,使得ε(E)(等式21)最小化。Z是一个MxN矩阵,这是我们需要找到的。Zx和Zy也是已知的MxN矩阵。Dx和Dy是执行数值微分的NxN矩阵(参见照片中红色圈出的矩阵),因此它们也是已知的矩阵。F表示“Fobrenius范数”或“条目范数”。如何解决这个问题?我知道如何解决向量的最小二乘问题,但现在它是矩阵形式,我卡住了。谢谢
hgncfbus1#
这里的技巧是使用Kronecker Product:$$ \begin{align*} {\left| \boldsymbol{D}{y} \boldsymbol{Z} - \hat{\boldsymbol{Z}}{y} \right|}{F}^{2} & \rightarrow {\left| \left( \boldsymbol{I} \otimes \boldsymbol{D}{y} \right) \boldsymbol{z} - \hat{\boldsymbol{z}}{y} \right|}{2}^{2} = {\left| \hat{\boldsymbol{D}{y}} \boldsymbol{z} - \hat{\boldsymbol{z}}{y} \right|}{2}^{2} \ {\left| \boldsymbol{Z} \boldsymbol{D}{x}^{T} - \hat{\boldsymbol{Z}}{x} \right|}{F}^{2} & \rightarrow {\left| \left( \boldsymbol{D}{x} \otimes \boldsymbol{I} \right) \boldsymbol{z} - \hat{\boldsymbol{z}}{x} \right|}{2}^{2} = {\left| \hat{\boldsymbol{D}{x}} \boldsymbol{z} - \hat{\boldsymbol{z}}{x} \right|}{2}^{2} \end{align*} $$x1c 0d1x的数据这相当于解决:$$ {\left|\boldsymbol{D} \boldsymbol{z} - \hat{\boldsymbol{z}} \right| {2}^{2} $$
的其中矩阵$\boldsymbol{D}$是通过水平堆叠矩阵,$\hat{\boldsymbol{z}$是通过垂直堆叠矩阵。该实现应该利用相关矩阵的稀疏属性,因此计算方面与原始公式一样有效。
i34xakig2#
使用该
normF(A*Z-B)^2=trace((A*Z-B).T*(A*Z-B))
字符串对于dZ方向的方向导数,
2*trace((A*dZ).T*(A*Z-B))=dotF(dZ,A.T*(A*Z-B))
型这通常被解释为导数是A.T*(A*Z-B)。在另一项中,你得到类似的,
A.T*(A*Z-B)
normF(Z*A.T-B.T)^2 = trace((A*Z.T-B)*(Z*A.T-B.T))
型方向导数
2*trace(A*dZ.T*(Z*A.T-B.T))=dotF(dZ,(Z*A.T-B.T)*A)
型将x和y添加到矩阵名称中,
x
y
2*Z*(Ax.T*Ax) + 2*(Ay.T*Ay)*Z - 2*Bx.T*Ax - 2*Ay.T*By
型以下形式的公式
Z*Qx + Qy*Z = C
型现在取对角线Q=U*D*U.T与正交U和对角线D,左乘Uy.T,右乘Ux,得到
Q=U*D*U.T
U
D
Uy.T
Ux
(Uy.T*Z*Ux)*Dx + Dy*(Uy.T*Z*U) = (Uy.T*C*Ux)
型并可读出求解算法,逐元素计算(Uy.T*Z*Ux),然后通过矩阵乘法得到Z。
(Uy.T*Z*Ux)
Z
2条答案
按热度按时间hgncfbus1#
这里的技巧是使用Kronecker Product:
$$ \begin{align*} {\left| \boldsymbol{D}{y} \boldsymbol{Z} - \hat{\boldsymbol{Z}}{y} \right|}{F}^{2} & \rightarrow {\left| \left( \boldsymbol{I} \otimes \boldsymbol{D}{y} \right) \boldsymbol{z} - \hat{\boldsymbol{z}}{y} \right|}{2}^{2} = {\left| \hat{\boldsymbol{D}{y}} \boldsymbol{z} - \hat{\boldsymbol{z}}{y} \right|}{2}^{2} \ {\left| \boldsymbol{Z} \boldsymbol{D}{x}^{T} - \hat{\boldsymbol{Z}}{x} \right|}{F}^{2} & \rightarrow {\left| \left( \boldsymbol{D}{x} \otimes \boldsymbol{I} \right) \boldsymbol{z} - \hat{\boldsymbol{z}}{x} \right|}{2}^{2} = {\left| \hat{\boldsymbol{D}{x}} \boldsymbol{z} - \hat{\boldsymbol{z}}{x} \right|}{2}^{2} \end{align*} $$
x1c 0d1x的数据
这相当于解决:
$$ {\left|\boldsymbol{D} \boldsymbol{z} - \hat{\boldsymbol{z}} \right| {2}^{2} $$
的
其中矩阵$\boldsymbol{D}$是通过水平堆叠矩阵,$\hat{\boldsymbol{z}$是通过垂直堆叠矩阵。
该实现应该利用相关矩阵的稀疏属性,因此计算方面与原始公式一样有效。
i34xakig2#
使用该
字符串
对于dZ方向的方向导数,
型
这通常被解释为导数是
A.T*(A*Z-B)
。在另一项中,你得到类似的,
型
方向导数
型
将
x
和y
添加到矩阵名称中,型
以下形式的公式
型
现在取对角线
Q=U*D*U.T
与正交U
和对角线D
,左乘Uy.T
,右乘Ux
,得到型
并可读出求解算法,逐元素计算
(Uy.T*Z*Ux)
,然后通过矩阵乘法得到Z
。