机器(深度)学习中数学知识点之范数

                                                                                                         数学知识点之范数

机器学习中会用到很多范数,自己在学习LSTM网络的时候,有一步是计算损失的时候,用到了范数,就顺便整理一下,可能不全,之后再次更新。

数学中:

1. 向量范数:

(1)向量的1-范数:||x||_{1}=\sum_{i=1}^{n}|x_{i}|  , 即向量中每个元素绝对值的和。

(2)向量的2-范数:||x_{2}||=(\sum_{i=1}^{n}x_{i}^{2})^{\frac{1}{2}}=\sqrt{\sum_{i=1}^{n}x_{i}^{2}},即向量中每个元素平方和之后再开方。

(3)向量的无穷范数:max(|x_{i}|),即向量中元素绝对值最大的一个。

2. 矩阵范数:

(1)矩阵的1-范数(列范数):||A||_{1}=\max_{X\neq 0}\frac{||AX||_{1}}{||X||_{1}}=\max_{1\leqslant j\leqslant n}\sum_{i=1}^{n}|a_{ij}|,矩阵的每列求和,然后从每列和中挑出一个最大的。

(2)矩阵的2-范数:||A_{2}||=\max_{X\neq 0}\frac{||AX||_{2}}{||X||_{2}}=\sqrt{\lambda _{max}(A^{T}A)}=\sqrt{\max_{1\leqslant i\leqslant n}|\lambda _{i}|},其中\lambda iA^{T}A的特征值。即矩阵A^{T}A特征值绝对值的最大值的开方。

(3)矩阵的无穷范数(行范数):||A||_{\infty }=\max_{X\neq 0}\frac{||AX||_{\infty }}{||X||_{\infty }}=\max_{1\leqslant i\leqslant n}\sum_{j=1}^{n}|a_{ij}|,矩阵的每行求和,然后从每行和中挑出一个最大的。

机器学习用到的一些范数,与数学中的有些区别。

(1)矩阵的核范数:矩阵的奇异值(线代中的特征值分解只适用于方针,奇异值分解适用于任意的矩阵。)之和。

(2)矩阵的L0范数:矩阵的非0元素的个数,它可以来表示矩阵的稀疏性,L0范数越小,则0元素越多,矩阵越稀疏。

(3)矩阵的L1范数:矩阵中每个元素绝对值之和,它是L0范数的最优凸近似,它也可以近似表示稀疏。

(4)矩阵的F范数:矩阵的各个元素平方和之后再开方。通常被称为L2范数。、

(5)矩阵的L21范数:以矩阵每列为单位,求每列F范数,然后将得到的结果求L1范数。

代码:numpy中实现的范数

import numpy as np

#np.linalg.norm(x, ord=None, axis=None, keepdims=False) ord表示范数类型

#向量:
a = np.array([1,2,3])
b = np.array([4,5,6])
print(np.linalg.norm(a-b))   #默认为2范数
print(np.linalg.norm(a-b, 1))   #向量1范数
print(np.linalg.norm(a-b, 2))   #向量2范数
print(np.linalg.norm(a-b, np.inf)) #向量的无穷范数

#矩阵:
a = np.array([[1,2,3],[4,5,6]])
print(a)
print(np.linalg.norm(a))    #默认是F范数
print(np.linalg.norm(a, 2)) #矩阵的2范数
print(np.linalg.norm(a, 1)) #矩阵的1范数
print(np.linalg.norm(a, np.inf))    #矩阵无穷范数


5.196152422706632
9.0
5.196152422706632
3.0
[[1 2 3]
 [4 5 6]]
9.539392014169456
9.508032000695724
9.0
15.0

 

     参考资料:

1.np.linalg.norm(求范数) https://blog.csdn.net/hqh131360239/article/details/79061535

2.向量与矩阵的范数(比较1-范数、2-范数、无穷范数、p-范数、L0范数 和 L1范数等)https://blog.csdn.net/zaishuiyifangxym/article/details/81673491

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值