关于矩阵范数求导数--区分2范数和F=2时范数

转载 2016年06月01日 16:08:56

关于矩阵范数求导数--区分2范数和F=2时范数

由于在sparse coding模型中求系统代价函数偏导数时需要用到矩阵的范数求导,这在其它模型中应该也很常见,比如说对一个矩阵内的元素值进行惩罚,使其值不能过大,则可以使用F范数(下面将介绍)约束,查阅了下矩阵范数求导的相关资料,本节就简单介绍下。

  首先,网络上有大把的人把2范数和F=2时的范数混为一谈,或者说把矩阵p范数和诱导p范数混淆了(也有可能是因为各个版本书所定义的不同吧)。下面我还是以矩阵中权威教材the matrix cookbook和matlab内嵌函数所用的定义来解释。话说the matrix cookbook是一本非常不错的参考书,查找矩阵相关的公式就像查字典一样,很方便。

  矩阵的诱导2范数我们常说的2范数,其定义如下:

   

  而矩阵的F=2时的范数,却在实际优化领域经常用到的范数,也称为Frobenius范数,其定义为:

   

  由此可见,在前面博文Deep learning:二十六(Sparse coding简单理解)中,Ng教授给出关于Sparse coding的代价公式如下:

   

  并且Ng教授称公式中比如第一项是l2范数,按照我现在这种定义其实这种讲法是错的,严格的说应该是Frobenius范数(不过也有可能是他自己的定义不同吧,反正最终能解决问题就行)。毕竟,在matlab中如果按照Ng关于l2范数定义来求的话,其结果就错了。

  为了证明上面的观点,下面在matlab下做一个简单的实验,实验code如下:


%% 使用原始定义求,即a中各元素平方和,然后开根号
a = magic(3);
b = a.^2;
c = sum(b(:));
d = sqrt(c)

%% 直接使用matlab中2规范函数求
e = norm(a,2)

%% 使用矩阵a'*a最大特征值开根号的方法求
f = a'*a;
g = eig(f);
h = max(g);
i = sqrt(h)

%% 使用Frobenius范数公式来求(其中F=2)
j = sqrt(trace(a*a'))

%% 使用matlab自带的Frobenius公式来求
k = norm(a,'fro')

  运行后其输出结果为:

  d =

     16.8819

  e =

     15.0000

  i =

     15.0000

  j =

     16.8819

  k =

     16.8819

  从上面结果可以看出,矩阵的2范数定义所求出的结果和matlab中2范数所求出的结果都是一样的,都为15。而按照Frobenius范数公式的定义, matlab中求Frobenius的函数,以及Frobenius最初始的定义这3种方法来求,其结果也是一样,为16.8819。这个实验和上面的介绍是一致的。

  下面就来看看Sparse coding代价函数第一项中如果要对矩阵A和s求导,该怎么求呢?很明显这是一个矩阵Frobenius求导问题,且求A导数时假设s和X都是常量,求s的时类似,参考了网上论坛http://www.mathchina.net/dvbbs/dispbbs.asp?boardid=4&Id=3673上的教材后就可以得到相应的答案。

图片点击可在新窗口打开查看

其中对矩阵s求导可以参考下面一个例题:

   

  而对矩阵A求导可以参考:

   

 

   总结:

   现在比较能够区分2范数和F=2时的范数了,另外需要熟悉矩阵求导的方法。不过到目前为止,还没有找到矩阵2范数求导的公式,也不知道该怎么推导。

转自:http://www.cnblogs.com/tornadomeet/archive/2013/04/14/3019885.html

矩阵的 Frobenius 范数及其求偏导法则

1. 矩阵的迹求导法则 2. 矩阵的Frobenius范数及其求偏导法则 3. 复杂矩阵问题求导方法...
  • txwh0820
  • txwh0820
  • 2015年06月06日 22:53
  • 8207

常见向量范数和矩阵范数

1、向量范数 1-范数:,即向量元素绝对值之和,matlab调用函数norm(x, 1) 。 2-范数:,Euclid范数(欧几里得范数,常用计算向量长度),即向量元素绝对值的平方和再开方,mat...
  • left_la
  • left_la
  • 2013年06月24日 11:37
  • 95959

向量和矩阵的各种范数比较(1范数、2范数、无穷范数等等)

向量的1范数,2范数,无穷范数,矩阵的1范数,2范数,无穷范数,L0范数,L1范数,L2范数(F范数),L21范数,核范数。。。。、。...
  • Michael__Corleone
  • Michael__Corleone
  • 2017年07月16日 23:32
  • 8226

常用的范数求导

矢量范数的偏导数 L1范数不可微。但是存在次梯度,即是次微分的,这里先不写。 L2 范数: ∂∂x||x−a||2=x−a||x−a||2\begin{equation} \frac{\partia...
  • xuluhui123
  • xuluhui123
  • 2016年12月14日 11:01
  • 8059

范数理解(0范数,1范数,2范数)

刚刚结束,若有错误请多多指教。转载自http://www.zhihu.com/question/20473040/answer/102907063 可以从函数、几何与矩阵的角度去理解范数。 我们...
  • SusanZhang1231
  • SusanZhang1231
  • 2016年08月05日 10:54
  • 8885

矩阵论(1)三种常见的矩阵范数

总结了三种矩阵范数:1-范数,2-范数以及∞-范数。
  • u013534498
  • u013534498
  • 2016年09月27日 09:23
  • 4597

矩阵的 Frobenius 范数及其求偏导法则

前言:   由于在sparse coding模型中求系统代价函数偏导数时需要用到矩阵的范数求导,这在其它模型中应该也很常见,比如说对一个矩阵内的元素值进行惩罚,使其值不能过大,则可以使用F范数(...
  • LEH210434
  • LEH210434
  • 2014年09月06日 10:12
  • 2317

几种常用的矩阵范数

按道理讲,这些东西应该熟记于心的。但是自己真心不喜欢记这种东西,看到一个总结不错的博客,转载过来以便于自己查看把!原文 1. 几种范数 矩阵 X∈Rm×nX∈Rm×n,σi(X)σi(...
  • jzwong
  • jzwong
  • 2017年05月04日 16:27
  • 1620

正交矩阵相乘,范数不变性

记录矩阵F范数、2范数与正交矩阵相乘的范数不变性,有些地方也叫做保范性。首先明确一下正交矩阵A'A=AA'=I 先看矩阵的2范数,即矩阵A的2范数定义为A最大的奇异值。对A做奇异值分解,不妨记作A=...
  • jzwong
  • jzwong
  • 2016年08月17日 11:07
  • 3489

谱范数的理解与论述

对于任意两点间来说,直线距离最短。而计算两点间距离的公式就是源于众所周知的勾股定理的基础上推导而来的。事实上,不仅对于人们所熟知的二维空间和三维空间如此,对于高维空间亦是如此。在数学上,一般将高维空间...
  • MathThinker
  • MathThinker
  • 2016年09月25日 21:06
  • 3328
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于矩阵范数求导数--区分2范数和F=2时范数
举报原因:
原因补充:

(最多只允许输入30个字)