HyperAIHyperAI

Command Palette

Search for a command to run...

核范数 Nuclear Norm

日期

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

核范数定义

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

latex∥X∥_\* = tr(XTX)latex {{ \left\Vert {X} \right\Vert }\mathop{{}}\nolimits\_{{\*}}\text{ }=\text{ }tr{ \left( {\sqrt{{X\mathop{{}}\nolimits^{{T}}X}}} \right) }}latex∥X∥_\* = 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 (p≥1)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 (p≥1) , 则 latexf_xlatex {f\mathop{{}}\nolimits\_{{x}}}latexf_x 凸,故 latex∥A∥_p = sup_∥x∥_p=1 f_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) }}latex∥A∥_p = sup_∥x∥_p=1 f_x(A) 凸,同时 latex∥A∥_2latex {{ \left\Vert {A} \right\Vert }\mathop{{}}\nolimits\_{{2}}}latex∥A∥_2 由于 latex∥A∥_\*latex {{ \left\Vert {A} \right\Vert }\mathop{{}}\nolimits\_{{\*}}}latex∥A∥_\* 和 latex∥A∥_2latex {{ \left\Vert {A} \right\Vert }\mathop{{}}\nolimits\_{{2}}}latex∥A∥_2 是对偶范数,故 latex∥A∥_\*latex {{ \left\Vert {A} \right\Vert }\mathop{{}}\nolimits\_{{\*}}}latex∥A∥_\* 凸(latex∥A∥_\* = sup_∥X∥_2=1 tr(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) }}latex∥A∥_\* = sup_∥X∥_2=1 tr(ATX))。

梯度的求解

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

latex∂∥X∥_\*∂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}}}latex∂X∂∥X∥_\*​ = ∂X∂tr(Σ)​ = ∂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}}

所以:

latex∂∥X∥_\*∂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}}}latex∂X∂∥X∥_\*​ = ∂Xtr(∂Σ)​ = ∂Xtr(UT(∂X)V)​ = ∂Xtr(VUT(∂X))​ = (VUT)T = UVT

用 AI 构建 AI

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

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

HyperAI Newsletters

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