【深度学习视觉】范数简明介绍

博客介绍了向量范数和矩阵范数。向量范数定义了向量距离,有L0、L1、L2与L_infinity范数,可用于特征选择。矩阵范数除满足向量范数要求外,方阵还需满足相容性,有1-、2-、infinity-、F-范数等,核范数可近似求解矩阵秩。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公众号:深度学习视觉

向量范数:
向量范数定义了向量的距离,而距离满足正定,齐次,三角不等式。范数的使用可以帮助特征选择,使得模型更具解释性
向量的范数一般有L0, L1, L2与L_infinity范数,

L0范数:
定义:∥x∥0=∑i=1k∣xi∣0\|x\|_{0}=\sum_{i=1}^{k}\left|x_{i}\right|^{0}x0=i=1kxi0
L0范数表示非0元素的个数。利用该特性,我们可以用来规则化机器学习中的参数w,可以使得w大部分元素为零,寻找最少最优的稀疏特征。但是,L0范数的最小化问题是NP难问题,而L1范数是L0范数的最优凸近似,L1范数比L0范数更容易求解。所以实际中会用L1范数来代替L0范数求解。

L1范数:
定义:∥x∥1=∑i=1k∣xi∣\|x\|_{1}=\sum_{i=1}^{k}\left|x_{i}\right|x1=i=1kxi
L1范数表示向量中各个元素绝对值的和,也被称作"Lasso regularization"(稀疏规则算子)。在机器学习中,稀疏规则化能够实现特征的自动选择,将无用的特征权重置为0来剔除。

L2范数:
定义:∥x∥2=∑i=1k∣xi∣2\|x\|_{2}=\sqrt{\sum_{i=1}^{k}\left|x_{i}\right|^{2}}x2=i=1kxi2
L2范数中的一个代表是欧式距离。L2范数被广泛应用在解决机器学习里面的过拟合问题,L2范数不会像L1范数那样将不重要的特征置为0,而是将所有参数最小化,只是接近于0。所以,L2范数下的特征重要性更均匀,但是不像L1范数突出显示最重要的特征。

矩阵范数:
矩阵范数又名为相容范数,除了要满足向量范数中的要求外,在矩阵为n阶方正的情况下,需要满足相容性,即∥AB∥≤∥A∥⋅∥B∥\|A B\| \leq\|A\| \cdot\|B\|ABAB
矩阵范数一般有1-, 2-, infinity-, F-范数。

1-范数:
定义:∥A∥1=max⁡j∑i=1m∣aij∣\|A\|_{1}=\max _{j} \sum_{i=1}^{m}\left|a_{i j}\right|A1=maxji=1maij
1-范数又名为列和范数,即所有矩阵列向量绝对值之和的最大值。

2-范数:
定义:∥A∥2=λ1\|A\|_{2}=\sqrt{\lambda_{1}}A2=λ1
其中λ\lambdaλATAA^{T} AATA的最大特征值。又名为谱范数,表示ATAA^{T} AATA矩阵最大特征值的平方根。

infinity-范数:
定义:∥A∥∞=max⁡i∑j=1m∣aij∣\|A\|_{\infty}=\max _{i} \sum_{j=1}^{m}\left|a_{i j}\right|A=maxij=1maij
∞\infty-范数又名为行和范数,即所有矩阵行向量绝对值之和的最大值。

以上范数都是诱导范数,由向量Lp范数诱导得到。非诱导范数常见的为F-范数,即Frobenius范数以及核范数。

F-范数:
定义:∥A∥F=(∑i=1m∑j=1n∣aij∣2)12\|A\|_{F}=\left(\sum_{i=1}^{m} \sum_{j=1}^{n}\left|a_{i j}\right|^2\right)^{\frac{1}{2}}AF=(i=1mj=1naij2)21
Frobenius范数,即矩阵元素绝对值的平方和再开平方。

核范数:
定义:∥A∥∗=∑i=1nλi\|A\|_{*}=\sum_{i=1}^{n} \lambda_{i}A=i=1nλi
λi\lambda_iλi为矩阵A的奇异。秩可以度量矩阵中数据的相关性,如果相关性很强,表示数据中含有冗余信息,则表示该数据矩阵可以降维,也可以利用冗余信息对缺失值进行填充。由于求解矩阵的秩很难,所以寻找了它的近似凸函数即核范数来求解。

### 关于深度学习中的相对范数误差 #### 定义 相对范数误差是一种用于评估模型预测值与真实值之间差异的指标。其核心思想是通过计算预测值与真实值之间的欧几里得距离,并将其标准化为无量纲的形式,从而使得不同尺度的数据可以进行公平比较。相对范数误差的具体定义如下: \[ RE = \frac{\|y_{pred} - y_{true}\|_2}{\|y_{true}\|_2} \] 其中 \( \|v\|_2 \) 表示向量 \( v \) 的 L2 范数,\( y_{pred} \) 是模型的预测值,而 \( y_{true} \) 则表示真实的标签值[^1]。 这种形式的优点在于它能够消除数据本身的绝对数值影响,提供一种更加通用的方式去衡量模型的表现。 #### 使用场景 相对范数误差广泛应用于需要精确测量连续变量的任务中,尤其是在那些涉及回归分析或者信号处理的问题上。例如,在图像重建、时间序列预测以及物理仿真等领域,由于这些领域内的目标通常是高维连续型数据,因此使用相对范数误差可以帮助研究者更好地理解模型在捕捉复杂模式方面的表现能力[^3]。 此外,在电子商务推荐系统的开发过程中也可能会用到该指标来判断商品评分预测的质量如何接近用户的实际偏好得分情况。 ```python import numpy as np def relative_norm_error(y_true, y_pred): numerator = np.linalg.norm(np.array(y_pred) - np.array(y_true), ord=2) denominator = np.linalg.norm(np.array(y_true), ord=2) if denominator == 0: raise ValueError("True values cannot be all zeros.") return (numerator / denominator) # Example usage of the function with dummy data points. example_y_true = [1.5, 2.7, 3.8] example_y_pred = [1.4, 2.9, 3.6] print(f"The Relative Norm Error is {relative_norm_error(example_y_true, example_y_pred):.4f}") ``` 上述代码片段展示了如何实现并调用 `relative_norm_error` 函数来进行简单的测试操作。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值