矩阵范数小结_f范数

矩阵范数小结_f范数稍微总结一下矩阵范数的求解来放松一下身心吧~这里总结的矩阵范数主要是F范数、1范数、2范数、核范数以及全变分TV范数与1、2的搭配

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

今天看了半天强化学习,看得很不开心。。。因为一直处于懵圈状态。。。
于是乎不想看了,稍微总结一下矩阵范数的求解来放松一下身心吧~

这里总结的矩阵范数主要是F范数、1范数、2范数、核范数以及全变分TV范数与1、2的搭配

1、F范数

概念:

XF=i=1mj=1nx2ij



矩阵各个元素平方和开根,概念上非常像向量的L2范数

导数:求导的方法则是将其展开来,一般情况下我们不会直接求原始的范数||A||F,因为很麻烦,即使是在损失函数中也是用F范数的平方项来简化运算,而常见的损失函数一般是

12||YX||2F

,此时对X求导,则需要将内部的Y-X展开来



YXTYX=YTY+2XTY+XTX
,所以对

12||YX||2F
中X求导即为

XY

2、1范数

概念:║A║1 = max{ ∑|ai1|, ∑|ai2| ,…… ,∑|ain| } (列和范数,A每一列元素绝对值之和的最大值) (其中∑|ai1|第一列元素绝对值的和∑|ai1|=|a11|+|a21|+…+|an1|,其余类似);
矩阵的1范数和向量的1范数雷同,不能直接求解,只能分情况讨论
求导:常规的L1范数的求导是在损失函数中作为正则项出现,即 12||YX||2F+λ1||X||1 ,这里前半部分求导是 XY ,后半部分则需要分情况讨论,最终结果为为

[Sλ(Y)]i=yiλ0yi+λifyi>λifλyiλifyi<λ

3、2范数

概念: ||A||2 指的是A最大的奇异值或者半正定矩阵A*A最大特征值开根
求导:对于问题 argminX12XV2F+λX2 存在近似解 |V|2λ|V|2V

4、TV范数

概念:全变分范数,其实就是对矩阵乘上一个一阶的差分矩阵,乘完还是个矩阵,所以要一般要结合前边的1范数或者2范数再对其进行约束求解

5、核范数

概念:即矩阵奇异值的和
求解:对于 minX112YX12F+λ1X1
存在近似解 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账号...

(0)


相关推荐

  • JavaScript算法题整理

    JavaScript算法题整理1.获得两个数相除的商和余数console.log(10/3);//商:3.3333console.log(10%3);//余数:1//获得两个数相除的商和余数console.log(Math.floor(10/3));//13//Math.floor(向下取整)、Math.ceil(向上取整)、round(四舍五入)console.log(0.1+0.2);//在js中,尽量避免做小数点运算//如果有小数位的运算varsum=(0.1*100+0.2*100)/100;c

  • PyCharm 2022.01.13永久激活[最新免费获取]

    (PyCharm 2022.01.13永久激活)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1…

  • linux 7z压缩、解压命令「建议收藏」

    linux 7z压缩、解压命令「建议收藏」原文地址:https://blog.csdn.net/jk110333/article/details/7829879支持7Z,ZIP,Zip64,CAB,RAR,ARJ,GZIP,BZIP2,TAR,CPIO,RPM,ISO,DEB压缩文件格式安装:sudoapt-getinstall p7zip-full# 7zayajiu.7zyajiu.jpgyajiu.png…

  • python创建学生管理系统_学员管理系统 培训机构

    python创建学生管理系统_学员管理系统 培训机构使用面向对象完成了学员管理系统,实现了添加、删除、修改、查询、保存读取等功能。将学员、学员管理后台、开始入口分为了3个py文件,分别是Student.py、Student_management.py、main.py。保存文件名叫student.txt文件。内含注释,我也是给初学者,可能有些地方解释不清楚。Student.py代码如下#定义学生的类classStudent(object):def__init__(self,name,gender,number):

  • pycharm远程调试「建议收藏」

    pycharm远程调试「建议收藏」我的博客链接Remote篇——PyCharm远程运行、调试环境配置一般在本地无法调试远程端代码,机械性的scp传输文件十分影响工作效率,PyCharm的Pro支持远程Run,Debug,等可视化的功能。操作系统:本地MacOS,远程Linux(本地3个操作系统都是支持的,远程Linux比较稳定)IDE:最新版本PyCharmPro(不支持社区版)python虚拟环境:Anaconda,pip远程创建新项目首先在远程服务器上新建一个项目文件$mkdirYOUR-PROJEC

  • c# taskscheduler使用场合_hbase shell put

    c# taskscheduler使用场合_hbase shell put这里记录下TaskScheduler的简单用法。使用场景:在使用Task的时候,大家都知道用TaskFactory.StartNew可以用来创建一个Task。这里如果创建10个,那么这10个Task就各自放飞直接运行了。一般情况下是没什么大问题,如果这10个中的每个Task非常耗CPU或者内存,而公司的产品又是非常考验配置成本(比如一体机,移动设备等),就需要让这10个Task按照一定要求执行,比如串行执行,从而节省资源、让机器还可以顺畅去干别的事情。Task…

    2022年10月11日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号