深度学习基础:线性代数(4)_范数

Lp范数

$$
\mid\mid x\mid\midp = (\sum{i}|x_i|^p)^{\frac {1} {p}}
$$

其中$p \in {\Bbb {R}}, p \geq 1$

$L_1$范数:$ \mid \mid x\mid\mid1 = \sum{i} x_i $
$L_2$范数:$ \mid \mid x\mid\mid2 = \sqrt{\sum{i} xi^2} $
$L
\infty$范数:$ \mid \mid x\mid\mid_\infty = max \mid x_i\mid $

Frobenius范数

Frobenius范数是用来衡量矩阵的大小,其定义:

$$
||x||F = \sqrt{\sum{i,j}A_{i,j}^2}
$$

就是矩阵的每个元素取平方再求和,最终开平方。类似于$L_2$范数。

Python实现

norm(x, ord=None, axis=None, keepdims=False)

x表示要度量的向量,ord表示范数的种类

参数 说明 计算方法
默认 二范数:$l_2$ $\sqrt{x_1^2 + x_2^2 + \cdots + x_n^2}$
ord=2 二范数:$l_2$ 同上
ord=1 一范数:$l_1$ $\mid x_1\mid + \mid x_2\mid + \cdots + \mid x_n\mid$
ord=np.inf 无穷范数:$l_\infty$ $max(\mid x_i\mid)$

范数理论的一个小推论告诉我们:$l_1 \geq l2 \geq l\infty$

Numpy

import numpy as np

# 向量
x = np.arange(9) - 4
# 矩阵
A = x.reshape((3, 3))
print(A)
# L1范数
print(np.linalg.norm(x, 1))
# L2范数
print(np.linalg.norm(x, 2))
# L正无穷范数
print(np.linalg.norm(x, np.inf))
# L负无穷范数
print(np.linalg.norm(x, -np.inf))
# Frobenius范数
print(np.linalg.norm(A))

Numpy

import numpy as np
from scipy import linalg

# 向量
x = np.arange(9) - 4
# 矩阵
A = x.reshape((3, 3))
print(A)
# L1范数
print(linalg.norm(x,1))
# L2范数
print(linalg.norm(x,2))
# L正无穷范数
print(linalg.norm(x,np.inf))
# L负无穷范数
print(linalg.norm(x,-np.inf))
# Frobenius范数
print(linalg.norm(A))
上一篇 深度学习基础:线性代数(3)_逆矩阵与伪逆矩阵
下一篇 深度学习基础:线性代数(5)_矩阵的迹
目录
文章列表
1 Vue踩坑:Html属性差值弃用双大括号改用v-bind
Vue踩坑:Html属性差值弃用双大括号改用v-bind
2
iOS微信支付接入(Swift)
iOS微信支付接入(Swift)
3
Spring Boot小技巧总结
Spring Boot小技巧总结
4
Java认证与Shiro安全框架
Java认证与Shiro安全框架
5
MySQL 排序
MySQL 排序
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。