公众号:数据山谷
在学习过程中我们经常会接触到损失函数、代价函数、目标函数三个词语,本文让我们来总结一下机器学习中常见的损失函数和代价函数。
首先让我们来了解一下三种损失函数的概念。
损失函数(Loss Function )是定义在单个样本上的,算的是一个样本的误差。
代价函数(Cost Function )是定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均。
目标函数(Object Function)定义为:最终需要优化的函数。等于经验风险+结构风险(也就是代价函数 + 正则化项)。
关于目标函数和代价函数的区别还有一种通俗的区别:
目标函数是最大化或者最小化,而代价函数是最小化。
函数表达式:
L ( y , f ( x ) ) = { 1 , y ≠ f ( x ) 0 , y = f ( x ) L(y,f(x))=\left\{\begin{matrix} 1, y\neq f(x) \\ 0, y=f(x) \end{matrix}\right. L(y,f(x))={1,y=f(x)0,y=f(x)
函数说明:
函数特点:
L ( y , f ( x ) ) = { 1 , ∣ y − f ( x ) ∣ ⩾ T 0 , ∣ y − f ( x ) ∣ < T L(y,f(x))=\left\{\begin{matrix} 1, |y-f(x)|\geqslant T \\ 0, |y-f(x)|
函数表达式:
L ( y , f ( x ) ) = ( y − f ( x ) ) 2 L(y,f(x))=(y-f(x))^2 L(y,f(x))=(y−f(x))2
函数说明:
函数特点:
函数表达式:
L ( y , f ( x ) ) = ∣ y − f ( x ) ∣ L(y,f(x))=|y-f(x)| L(y,f(x))=∣y−f(x)∣
函数说明:
函数特点:
函数表达式:
L ( y , p ( y ∣ x ) ) = − log p ( y ∣ x ) L(y,p(y|x))=-\log p(y|x) L(y,p(y∣x))=−logp(y∣x)
函数说明:
函数特点:
函数表达式:
L ( w , b ) = m a x { 0 , 1 − y f ( x ) } L(w,b)=max\{0,1-yf(x)\} L(w,b)=max{0,1−yf(x)}
y = ± 1 , f ( x ) = w x + b y=\pm1,f(x)=wx+b y=±1,f(x)=wx+b
函数说明:
函数特点:
函数表达式:
L ( y ∣ f ( x ) ) = exp ( − y f ( x ) ) L(y|f(x))=\exp(-yf(x)) L(y∣f(x))=exp(−yf(x))
函数说明:
函数特点:
函数表达式:
M S E = 1 N ∑ i = 1 N ( y i − f ( x i ) ) 2 MSE=\frac{1}{N}\sum_{i=1}^N(y^i-f(x^i))^2 MSE=N1∑i=1N(yi−f(xi))2
函数说明:
函数特点:
函数表达式:
R M S E = 1 N ∑ i = 1 N ( y i − f ( x i ) ) 2 RMSE=\sqrt{\frac{1}{N}\sum_{i=1}^N(y^i-f(x^i))^2} RMSE=N1∑i=1N(yi−f(xi))2
函数说明:
函数特点:
函数表达式:
M A E = 1 N ∑ i = 1 N ∣ y i − f ( x i ) ∣ MAE=\frac{1}{N}\sum_{i=1}^{N}|y^i-f(x^i)| MAE=N1∑i=1N∣yi−f(xi)∣
函数说明:
函数特点:
函数表达式:
H ( p , q ) = − ∑ i = 1 N p ( x i ) log q ( x − i ) H(p,q)=-\sum_{i=1}^Np(x^i)\log q(x^{-i}) H(p,q)=−∑i=1Np(xi)logq(x−i)
函数说明:
函数特点:
举例说明:
逻辑回归(二分类)的损失函数:
L o s s = − 1 N ∑ i = 1 N ( y ( i ) l o g ( h ( θ ) ( x ( i ) ) ) + ( 1 − y ( i ) ) l o g ( 1 − h ( θ ) ( x ( i ) ) ) ) Loss = -\frac{1}{N}\sum_{i=1}^{N}(y^{(i)}log (h_{(\theta) }(x^{(i)}))+(1-y^{(i)})log(1- h_{(\theta) }(x^{(i)}))) Loss=−N1∑i=1N(y(i)log(h(θ)(x(i)))+(1−y(i))log(1−h(θ)(x(i))))
这里的h(x)可以是sigmoid函数,也可以是深度学习中的其他激活函数。