0、损失函数简介
-
损失函数是用来估量你模型的预测值f(x)与真实值y之间的不一致程度,它是一个非负实值函数,通常使用
L(y, f(x))
来表示。损失函数越小,模型的鲁棒性就越好。 -
损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分。模型函数包括了经验风险项和正则项,表达公式为:
前面的均值函数表示的是经验风险函数,L表示损失函数,后面的(Phi)是正则化项或者惩罚项。可以是L1,也可以是L2。整个表达式就是使目标函数最小时的( heta)值。
- 令数据集为{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} ( ilde{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]_{+} = egin{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)) = egin{cases} 1, y eq 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} sumlimits_{x_{i} in N_{k}(x)} I(y_{i} e c_{j}) = 1 - frac{1}{k} sumlimits_{x_{i} in N_{k}(x)} I(y_{i} = c_{j}) ]
其中I为指示函数,当(y_{i} = c_{i})时I为1,否则I为0。要使误分类率最小,即经验风险最小,就要使$sumlimits_{x_{i} in N_{k}(x)} I(y_{i} = c_{j}) $最大,所以多数表决规则等价于经验风险最小化。
2、朴素贝叶斯
-
朴素贝叶斯的损失函数(0-1损失后)为:
[L(y, f(X)) = egin{cases} 1, y eq f(X)\ 0, y=f(X) end{cases} ]
使期望风险函数最小,即让损失函数最小:
$$R_{exp} (f) = E[L(Y, f(X))] = E_{X} sumlimits_{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( heta) = - frac{1}{N} sum_{i=1}^{N} y^{(i)} log(h_{ heta} (x^{(i)})) + (1-y^{(i)}) log(1 - h_{ heta}(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 ]