大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
今天看了半天强化学习,看得很不开心。。。因为一直处于懵圈状态。。。
于是乎不想看了,稍微总结一下矩阵范数的求解来放松一下身心吧~
这里总结的矩阵范数主要是F范数、1范数、2范数、核范数以及全变分TV范数与1、2的搭配
1、F范数
概念:
矩阵各个元素平方和开根,概念上非常像向量的L2范数
导数:求导的方法则是将其展开来,一般情况下我们不会直接求原始的范数||A||F,因为很麻烦,即使是在损失函数中也是用F范数的平方项来简化运算,而常见的损失函数一般是
,此时对X求导,则需要将内部的Y-X展开来
(Y−X)T∗(Y−X)=YTY+2∗XTY+XTX
,所以对
12||Y−X||2F
中X求导即为
X−Y
2、1范数
概念:║A║1 = max{ ∑|ai1|, ∑|ai2| ,…… ,∑|ain| } (列和范数,A每一列元素绝对值之和的最大值) (其中∑|ai1|第一列元素绝对值的和∑|ai1|=|a11|+|a21|+…+|an1|,其余类似);
矩阵的1范数和向量的1范数雷同,不能直接求解,只能分情况讨论
求导:常规的L1范数的求导是在损失函数中作为正则项出现,即 12||Y−X||2F+λ1||X||1 ,这里前半部分求导是 X−Y ,后半部分则需要分情况讨论,最终结果为为
3、2范数
概念: ||A||2 指的是A最大的奇异值或者半正定矩阵A*A最大特征值开根
求导:对于问题 argminX12∥X−V∥2F+λ∥X∥2 存在近似解 |V|2−λ|V|2V
4、TV范数
概念:全变分范数,其实就是对矩阵乘上一个一阶的差分矩阵,乘完还是个矩阵,所以要一般要结合前边的1范数或者2范数再对其进行约束求解
5、核范数
概念:即矩阵奇异值的和
求解:对于 minX112∥Y−X1∥2F+λ1∥X1∥⋆
存在近似解 X1^=Dλ1(Y)
Dλ 表示 ∑i=1r(σi−λ)+uivTi
这里, (x)+=max(0,x) . ui , vi 和 σi 分别是 M <script type="math/tex" id="MathJax-Element-1851">M</script>的左奇异向量、右奇异向量和奇异值
(markdown模式下可以用latex写东西真的太方便了= =
至于各个范数的效果,实质上1范数和2范数在矩阵分解上效果差得不多,基本上2范数能分离出的高频成分1范数能更快的分离出来,在一维层面上也容易想想,1范数相比2范数能够更快的收敛(直指坐标中心),核范数效果对低频成分的提取也比TV_1/TV_2范数的效果要好很多。
具体的实现可以关注一下我师弟在这个月投在BIBM上一个关于矩阵范数的toolbox论文。应该很快就可以出结果了。o( ̄▽ ̄)ブ
参考文献
Cai J F, Candès E J, Shen Z. A Singular Value Thresholding Algorithm for Matrix Completion[J]. Siam Journal on Optimization, 2010, 20(4):1956-1982.
矩阵的 Frobenius 范数及其求偏导法则 http://blog.csdn.net/txwh0820/article/details/46392293
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/193431.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...