HyperAIHyperAI

Command Palette

Search for a command to run...

核范数 Nuclear Norm

日期

3 年前

核范数是矩阵奇异值的和,用于约束矩阵的低秩,对于稀疏性质的数据而言,其矩阵是低秩且会包含大量冗余信息,这些信息可被用于恢复数据和提取特征。

核范数定义

矩阵 X 的核范数定义式为:

latexX_\*=tr(XTX)latex {{ \left\Vert {X} \right\Vert }\mathop{{}}\nolimits\_{{\*}}\text{ }=\text{ }tr{ \left( {\sqrt{{X\mathop{{}}\nolimits^{{T}}X}}} \right) }}latexX_\*=tr(XTX)

根据上式可以得出,核范数等价于矩阵特征值的和,考虑 X 的特征值分解 latexX=UΣVTlatex {X\text{ }=\text{ }U \Sigma V\mathop{{}}\nolimits^{{T}}}latexX=UΣVT ,可以得出以下结论:

latex {\begin{array}{\*{20}{l}} {tr{ \left( {\sqrt{{X\mathop{{}}\nolimits^{{T}}X}}} \right) }}&{=\text{ }tr{ \left( {\sqrt{{{ \left( {U \Sigma V\mathop{{}}\nolimits^{{T}}} \right) }\mathop{{}}\nolimits^{{T}}U \Sigma V\mathop{{}}\nolimits^{{T}}}}} \right) }}\\ {}&{=\text{ }tr{ \left( {\sqrt{{V \Sigma \mathop{{}}\nolimits^{{T}}U\mathop{{}}\nolimits^{{T}}U \Sigma V\mathop{{}}\nolimits^{{T}}}}} \right) }}\\ {}&{=\text{ }tr{ \left( {\sqrt{{V \Sigma \mathop{{}}\nolimits^{{2}}V\mathop{{}}\nolimits^{{T}}}}} \right) }\text{ }{ \left( { \Sigma \mathop{{}}\nolimits^{{T}}= \Sigma } \right) }}\\ {}&{=\text{ }tr{ \left( {\sqrt{{V\mathop{{}}\nolimits^{{T}}V \Sigma \mathop{{}}\nolimits^{{2}}}}} \right) }}\\ {}&{=\text{ }tr{ \left( { \Sigma } \right) }} \end{array}}

凸性的证明

根据可知信息,矩阵诱导范数是凸的,即:

latexf_x(A)=Ax_p(p1)latex {f\mathop{{}}\nolimits\_{{x}}{ \left( {A} \right) }\text{ }=\text{ }{ \left\Vert {Ax} \right\Vert }\mathop{{}}\nolimits\_{{p}}\text{ }{ \left( {p \ge 1} \right) }}latexf_x(A)=Ax_p(p1) , 则 latexf_xlatex {f\mathop{{}}\nolimits\_{{x}}}latexf_x 凸,故 latexA_p=sup_x_p=1f_x(A)latex {{ \left\Vert {A} \right\Vert }\mathop{{}}\nolimits\_{{p}}\text{ }=\text{ }\mathop{{sup}}\limits\_{{{ \left\Vert {x} \right\Vert }\mathop{{}}\nolimits\_{{p}}=1}}\text{ }f\mathop{{}}\nolimits\_{{x}}{ \left( {A} \right) }}latexA_p=sup_x_p=1f_x(A) 凸,同时 latexA_2latex {{ \left\Vert {A} \right\Vert }\mathop{{}}\nolimits\_{{2}}}latexA_2 由于 latexA_\*latex {{ \left\Vert {A} \right\Vert }\mathop{{}}\nolimits\_{{\*}}}latexA_\*latexA_2latex {{ \left\Vert {A} \right\Vert }\mathop{{}}\nolimits\_{{2}}}latexA_2 是对偶范数,故 latexA_\*latex {{ \left\Vert {A} \right\Vert }\mathop{{}}\nolimits\_{{\*}}}latexA_\* 凸(latexA_\*=sup_X_2=1tr(ATX)latex {{ \left\Vert {A} \right\Vert }\mathop{{}}\nolimits\_{{\*}}\text{ }=\text{ }\mathop{{sup}}\limits\_{{{ \left\Vert {X} \right\Vert }\mathop{{}}\nolimits\_{{2}}=1}}\text{ }tr{ \left( {{A\mathop{{}}\nolimits^{{T}}X}} \right) }}latexA_\*=sup_X_2=1tr(ATX))。

梯度的求解

基于上述 S.V.D 假设,可以得出结论:

latexX_\*X=tr(Σ)X=tr(Σ)Xlatex {\frac{{ \partial { \left\Vert {X} \right\Vert }\mathop{{}}\nolimits\_{{\*}}}}{{ \partial X}}\text{ }=\text{ }\frac{{ \partial tr{ \left( { \Sigma } \right) }}}{{ \partial X}}\text{ }=\text{ }\frac{{tr{ \left( { \partial \Sigma } \right) }}}{{ \partial X}}}latexXX_\*=Xtr(Σ)=Xtr(Σ)

因此需要解出 latexΣlatex { \partial \Sigma }latexΣ ,考虑 latexX=UΣVTlatex {X\text{ }=\text{ }U \Sigma V\mathop{{}}\nolimits^{{T}}}latexX=UΣVT ,故有:

latex {\begin{array}{\*{20}{l}} {}&{ \partial X}&{=\text{ }{ \left( { \partial U} \right) } \Sigma V\mathop{{}}\nolimits^{{T}}\text{ }+\text{ }U{ \left( { \partial \Sigma } \right) }V\mathop{{}}\nolimits^{{T}}\text{ }+\text{ }U \Sigma { \left( { \partial V\mathop{{}}\nolimits^{{T}}} \right) }}\\ { \Rightarrow }&{ \partial \Sigma }&{=\text{ }U\mathop{{}}\nolimits^{{T}}{ \left( { \partial X} \right) }V\text{ }-\text{ }U\mathop{{}}\nolimits^{{T}}{ \left( { \partial U} \right) } \Sigma \text{ }-\text{ } \Sigma { \left( { \partial V\mathop{{}}\nolimits^{{T}}} \right) }V}\\ {}&{}&{=U\mathop{{}}\nolimits^{{T}}{ \left( { \partial X} \right) }V\text{ }\text{ }\text{ }\text{ }{ \left( {-U\mathop{{}}\nolimits^{{T}}{ \left( { \partial U} \right) } \Sigma – \Sigma { \left( { \partial V\mathop{{}}\nolimits^{{T}}} \right) }V\text{ }=\text{ }0} \right) }} \end{array}}

所以:

latexX_\*X=tr(Σ)X=tr(UT(X)V)X=tr(VUT(X))X=(VUT)T=UVTlatex {\frac{{ \partial { \left\Vert {X} \right\Vert }\mathop{{}}\nolimits\_{{\*}}}}{{ \partial X}}\text{ }=\text{ }\frac{{tr{ \left( { \partial \Sigma } \right) }}}{{ \partial X}}\text{ }=\text{ }\frac{{tr{ \left( {U\mathop{{}}\nolimits^{{T}}{ \left( { \partial X} \right) }V} \right) }}}{{ \partial X}}\text{ }=\text{ }\frac{{tr{ \left( {VU\mathop{{}}\nolimits^{{T}}{ \left( { \partial X} \right) }} \right) }}}{{ \partial X}} \text{ }=\text{ }{ \left( {VU\mathop{{}}\nolimits^{{T}}} \right) }\mathop{{}}\nolimits^{{T}}\text{ }=\text{ }UV\mathop{{}}\nolimits^{{T}}}latexXX_\*=Xtr(Σ)=Xtr(UT(X)V)=Xtr(VUT(X))=(VUT)T=UVT

用 AI 构建 AI

从创意到上线——通过免费 AI 协同编码、开箱即用的环境和最优惠的 GPU 价格,加速您的 AI 开发。

AI 协同编码
开箱即用的 GPU
最优定价

HyperAI Newsletters

订阅我们的最新资讯
我们会在北京时间 每周一的上午九点 向您的邮箱投递本周内的最新更新
邮件发送服务由 MailChimp 提供