重点概念区分
在正文开始之前,先说下关于 Loss Function、Cost Function 和 Objective Function 的区别和联系。在机器学习的语境下这三个术语经常被交叉使用。
- 损失函数 Loss Function 通常是针对单个训练样本而言,给定一个模型输出 和一个真实 ,损失函数输出一个实值损失
- 代价函数 Cost Function 通常是针对整个训练集(或者在使用 mini-batch gradient descent 时一个 mini-batch)的总损失
- 目标函数 Objective Function 是一个更通用的术语,表示任意希望被优化的函数,用于机器学习领域和非机器学习领域(比如运筹优化)
一句话总结三者的关系就是:A loss function is a part of a cost function which is a type of an objective function.
由于损失函数和代价函数只是在针对样本集上有区别,因此在本文中统一使用了损失函数这个术语,但下文的相关公式实际上采用的是代价函数 Cost Function 的形式,请读者自行留意。
https://mp.weixin.qq.com/s/YXJPX672rZH1X6YXwAjkxw
0 深度学习中损失函数
对于批次内样本的 预测值 和 真实值的 误差衡量后 目标函数 (求最小值优化)
(有时会混淆 ,到底是批次样本,还是 所有样本的损失
因为大多数是使用mini-batch SGD所以对应的损失函数应该是批次内的样本的损失
)
损失函数的分类
https://blog.csdn.net/EmilyHoward/article/details/118367495
2 批次归一化 Batch normalization (减均值除方差学参数)
https://blog.csdn.net/qq_27009517/article/details/84024363
3 正则化,损失防止过拟合
4 L2范数归一化 向量求L2-normalized
5 范数理解
http://www.zhihu.com/question/20473040/answer/102907063
可以从函数、几何与矩阵的角度去理解范数。
但当函数与几何超出三维空间时,就难以获得较好的想象,于是就有了映射的概念,映射表达的就是一个集合通过某种关系转为另外一个集合。通常数学书是先说映射,然后再讨论函数,这是因为函数是映射的一个特例。
为了更好的在数学上表达这种映射关系,(这里特指线性关系)于是就引进了矩阵。这里的矩阵就是表征上述空间映射的线性关系。而通过向量来表示上述映射中所说的这个集合,而我们通常所说的基,就是这个集合的最一般关系。于是,我们可以这样理解,一个集合(向量),通过一种映射关系(矩阵),得到另外一个集合(另外一个向量)。
- 向量范数
1-范数:
,即向量元素绝对值之和,matlab调用函数norm(x, 1) 。
2-范数:
,Euclid范数(欧几里得范数,常用计算向量长度),即向量元素绝对值的平方和再开方,matlab调用函数norm(x, 2)。
-范数:
,即所有向量元素绝对值中的最大值,matlab调用函数norm(x, inf)。
-范数:
,即所有向量元素绝对值中的最小值,matlab调用函数norm(x, -inf)。
p-范数:
,即向量元素绝对值的p次方和的1/p次幂,matlab调用函数norm(x, p)。
- 矩阵范数
1-范数:
, 列和范数,即所有矩阵列向量绝对值之和的最大值,matlab调用函数norm(A, 1)。
2-范数:,
为的
最大特征值。
-范数:
,行和范数,即所有矩阵行向量绝对值之和的最大值,matlab调用函数norm(A, inf)。
F-范数:
,Frobenius范数,即矩阵元素绝对值的平方和再开平方,matlab调用函数norm(A, ’fro‘)。
核范数:是A的奇异值。
即奇异值之和。
Lp范数是常用的正则化项,其中L2范数|w|2倾向于w的分量取值尽量均衡,即非零分量个数尽量稠密,而L0范数与L1范数则是倾向于w的分量尽量稀疏,即非零分量个数尽量少。