机器学习 之损失函数
0、损失函数简介
-
损失函数是用来估量你模型的预测值f(x)与真实值y之间的不一致程度,它是一个非负实值函数,通常使用
L(y, f(x))
来表示。损失函数越小,模型的鲁棒性就越好。 -
损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分。模型函数包括了经验风险项和正则项,表达公式为:
前面的均值函数表示的是经验风险函数,L表示损失函数,后面的\(\Phi\)是正则化项或者惩罚项。可以是L1,也可以是L2。整个表达式就是使目标函数最小时的\(\theta\)值。
- 令数据集为{X,y},其中\(X = {x_{1}, x_{2}, ... , x_{N}}\),\(x_{i} = {x_{i}^{1},x_{i}^{2},,..., x_{i}^{M}}\),N表示有N个样本,M表示每个样本有M个特征,y表示真实分类标签或者真实值。
0.1 对数损失函数
-
对数损失函数的表达式为:
\[L(y, P(y|X)) = -log P(y|X) \]
损失函数L(y, P(y|X))表达的是样本X在分类y的情况下,使概率P(y|X)达到最大值。概率P越大,损失函数L越小。因此目标是最小化对数损失函数,从而使概率最大。
0.2 平方损失函数
-
平方损失函数的表达式为:
\[L(y, f(x)) = (y - f(x))^2 \] -
当样本个数为n时,此时的损失函数变为:
\[L(y, f(x)) = \sum_{i=1}^{n} (y_{i} - f(x_{i}))^2 \]
y-f(x)
表示的是残差,整个式子表示的是残差的平方和。目标是最小化这个目标函数值,即最小化残差的平方和。实际应用中,会使用均方差MSE作为一项衡量指标,公式如下:
$$ MSE = \frac{1}{N} \sum_{i=1}^{N} (\tilde{Y}_{i} - Y_{i})^2 $$
MSE
即Mean Squared Error,可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。均方根误差\(RMSE = \sqrt{MSE}\)
0.3 指数损失函数??含义
-
指数损失函数的表达式为:
\[L(y, f(x)) = exp[-y f(x)] \] -
在给定n个样本的情况下,Adaboost的指数损失函数为:
\[L(y, f(x)) = \frac{1}{N} \sum_{i=1}^{n} exp[-y_{i} f(x_{i})] \]
如果是分类,yf(x)
表示的是样本被正确分类,整个式子是被不正确分类的指数和,目标是最小化损失函数,即最小化被不正确分类的指数和。如果是回归,yf(x)
表示的是真实值与预测值的乘积,整个式子是真实值与预测值乘积负方向的指数和,目标是最小损失函数,即最小化真实值与预测值乘积负方向的指数和。
0.4 合页损失函数
-
合页损失函数的表达式为:
\[L(y*(\omega *x + b)) = [1 - y*(\omega *x + b)]_{+} \]
其中下表+
表示取正值的函数,我们用括号z表示中括号中的部分:
$$ [Z]_{+} = \begin{cases} z, z>0\\ 0,z<=0\\ \end{cases} $$
即数据点如果被正确分类,则损失为y*(\omega *x + b)>=1
,即[1 - y*(\omega *x + b)]<=0
,则损失为0;如果没有被正确分类,损失为z。
0.5 其他损失函数
(1)0-1 损失函数
-
0-1损失的表达式为:
\[L(y, f(X)) = \begin{cases} 1, y \neq f(X)\\ 0, y=f(X) \end{cases} \] -
在给定n个样本的情况下,损失函数变为:
\[L(y, f(x)) = \sum_{i=1}^{n} L(y_{i}, f(x_{i})) \]
损失函数表示的是预测值与真实值不等的数目。即预测值和真实值相等的越多,损失函数越小。目标是最小化目标损失函数,是真实值与预测值相等的情况更多。
(2)绝对值损失函数
-
绝对值损失函数的表达式为:
\[L(y, f(x)) = |y - f(X)| \] -
在给定n个样本的情况下,损失函数变为:
\[L(y, f(x)) = | y_{i} - f(x_{i}) | \]
y - f(X)
表示残差,整个式子表示的是残差的绝对值,即真实值与预测值的距离。目标是最小化目标损失函数,使预测值更加靠近真实值。
1、KNN损失函数
-
KNN的损失函数是分类损失函数,即误分类率:
\[L = \frac{1}{k} \sum\limits_{x_{i} \in N_{k}(x)} I(y_{i} \ne c_{j}) = 1 - \frac{1}{k} \sum\limits_{x_{i} \in N_{k}(x)} I(y_{i} = c_{j}) \]
其中I为指示函数,当\(y_{i} = c_{i}\)时I为1,否则I为0。要使误分类率最小,即经验风险最小,就要使$\sum\limits_{x_{i} \in N_{k}(x)} I(y_{i} = c_{j}) $最大,所以多数表决规则等价于经验风险最小化。
2、朴素贝叶斯
-
朴素贝叶斯的损失函数(0-1损失后)为:
\[L(y, f(X)) = \begin{cases} 1, y \neq f(X)\\ 0, y=f(X) \end{cases} \]
使期望风险函数最小,即让损失函数最小:
$$R_{exp} (f) = E[L(Y, f(X))] = E_{X} \sum\limits_{k=1}^{K} [L(c_{k}, f(X))] P(c_{k} | X)$$
-
推导过程:
\[f(x) = argmin_{y \in \Upsilon} \] -
朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。
-
贝叶斯定理:P(A|B)=P(A)P(B|A) / P(B)
-
特征条件独立假设:每一个类别特征中的数据或者与其他特征无关。
3、决策树
- 决策树的损失函数为:\[C_{\alpha}(T) = \sum_{t=1}^{|T|} N_{t} H_{t}(T) + \alpha |T| \]
4、逻辑回归
- 逻辑回归使用三对数损失函数:\[J(\theta) = - \frac{1}{N} \sum_{i=1}^{N} y^{(i)} log(h_{\theta} (x^{(i)})) + (1-y^{(i)}) log(1 - h_{\theta}(x^{(i)})) \]
5、支持向量机
- 支持向量机的损失函数为:\[L(y, \omega x + b) = \sum_{i}^{N} [1 - y_{i} (\omega * x_{i} + b)]_{+} + \lambda ||\omega||^2 \]
6、Adaboost提升算法
- Adaboost的损失函数为:\[L(y, f(x)) = \frac{1}{N} \sum_{i=1}{n} exp[-y_{i} f(x_{i})] \]
7、EM算法
8、隐式马尔科夫模型
9、条件随机场
12、线性回归
- 线性回归使用平方损失函数\[L(y, f(X)) = \sum_{i=1}^{n} (y - f(X))^2 \]