机器学习 之损失函数

目录

  • 0、损失函数简介
    • 0.1 对数损失函数
    • 0.2 平方损失函数
    • 0.3 指数损失函数??含义
    • 0.4 合页损失函数
    • 0.5 其他损失函数
  • 1、KNN损失函数
  • 2、朴素贝叶斯
  • 3、决策树
  • 4、逻辑回归
  • 5、支持向量机
  • 6、Adaboost提升算法
  • 7、EM算法
  • 8、隐式马尔科夫模型
  • 9、条件随机场
  • 12、线性回归
  • 10、XGBoost算法
  • 11、LightGBM算法三

机器学习 之损失函数_第1张图片

0、损失函数简介

  • 损失函数是用来估量你模型的预测值f(x)与真实值y之间的不一致程度,它是一个非负实值函数,通常使用L(y, f(x))来表示。损失函数越小,模型的鲁棒性就越好。

  • 损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分。模型函数包括了经验风险项和正则项,表达公式为:

\[ \theta ^{*} = argmin_{\theta} \frac{1}{N} \sum_{i=1}^{N} L(y_{i}, f(x_{i}; \theta)) + \lambda \Phi (\theta)\]

前面的均值函数表示的是经验风险函数,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。

机器学习 之损失函数_第2张图片

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 \]

10、XGBoost算法

11、LightGBM算法三

参考:https://www.jianshu.com/p/477a8c1cb05d

你可能感兴趣的:(机器学习 之损失函数)