Class | Content |
---|---|
layout | post |
title | 详解机器学习中的损失函数 |
categories | Blog |
description | 机器学习中常见的损失函数以及它们的特点和适用场景 |
keywords | 机器学习 损失函数 风险函数 |
1. 前言
我们知道机器学习的三要素是:方法= 模型+策略+算法, 如何从假设空间中选择最优模型,这涉及到我们需要用什么样的准则进行学习,这就是三要素中的”策略”问题。
在假设空间中选择模型 y(xn,w) y ( x n , w ) 作为决策函数,给定输入 xn x n ,由模型得到输出 y(xn,w) y ( x n , w ) ,而预测的 y(xn,w) y ( x n , w ) 与真实值 tn t n 之间可能不一致,如图1-1 可以看出预测值 y(xn,w) y ( x n , w ) 与真实值 tn t n 存在不一致情况,他们之间的差的绝对值为 |y(xn,w)−tn| | y ( x n , w ) − t n | 为绿色线部分, 而损失函数是定义在单个样本上的,算的是一个样本的误差。因此选用损失函数来度量预测误差。
损失函数(loss function)是用来度量模型的预测值与真实值的不一致程度,是一个非负实值函数,损失函数越小,预测正确程度越高,表示为:
损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分。模型的结构风险函数包括了经验风险项和正则项,可以表示为:
Rsrm(f)=1N∑i=1NL(yi,f(xi))+λJ(f) R s r m ( f ) = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) + λ J ( f )
这个公式为结构风险函数,其中,包括前一部分的经验风险项以及后一部分的正则化项,正则化项用于控制模型复杂度, λ λ 则是用于权衡经验风险和模型复杂度之间的关系.
所以,通过最小化结构风险的策略找到最优模型,求解最优模型就是求解如下最优化问题:minf∈ϝ1N∑i=1NL(yi,f(xi))+λJ(f) m i n f ∈ ϝ 1 N ∑ i = 1 N L ( y i , f ( x i ) ) + λ J ( f )当然,除了让结构风险最小化寻找最优模型外,还可以直接最小化经验风险,即
minf∈ϝ1N∑i=1NL(yi,f(xi)) m i n f ∈ ϝ 1 N ∑ i = 1 N L ( y i , f ( x i ) )
在样本足够的情况下,经验风险最小化可以达到很好的学习效果,但是样本容量有限时,容易产生过拟合现象,所以在才有上面结构风险最小化求最优模型的策略.
2. 区别损失函数\ 风险函数\ 代价函数\ 目标函数
- 损失函数:衡量单个样本预测值与真实值的误差【不赘述】.
- 代价函数:定义在训练集上,是模型关于训练集的平均损失,它也叫经验风险,表示为:
1N∑i=1NL(yi,f(xi)) 1 N ∑ i = 1 N L ( y i , f ( x i ) )
- 风险函数:是指损失函数的期望,又叫期望损失,由于输入 X X 和输出
是随机变量,那么可求得联合分布 P(X,Y) P ( X , Y ) ,所以可以表示为:
Rexp(f)=Ep[L(Y,f(X))]=∫X,YL(y,f(x))p(x,y)dxdy R e x p ( f ) = E p [ L ( Y , f ( X ) ) ] = ∫ X , Y L ( y , f ( x ) ) p ( x , y ) d x d y
- 目标函数:是一个更为广的概念,比如最小化结构风险求最优模型时,结构化风险函数就是目标函数,而最小化经验风险求最优模型时,经验风险函数就是目标函数,简单地讲,目标函数就是需要优化的函数。
Note:
- a.通常,我们没有细分损失函数和代价函数,经常将两个概念混用。
- b.由于 P(Y,X) P ( Y , X ) 未知,所以风险函数无法计算,经验风险 Remp(f) R e m p ( f ) 是模型关于训练集的平均损失,根据大数定律,当样本容量 N N 趋于无穷时,经验风险
趋于风险函数 Rexp(f) R e x p ( f ) ,这也说明了训练集容量越大,选择的最优模型越逼近真实模型。
3. 常见的损失函数
- (1) 0-1损失函数(Zero-one Loss)
L(yi