目标函数(Objective Function)
上面三个函数依次为 f 1 ( x ) , f 2 ( x ) , f 3 ( x ) f_1(x),f_2(x),f_3(x) f1(x),f2(x),f3(x),我们想用这三个函数来拟合Price,Price的真实值记为 Y Y Y。
那么损失函数(loss function) 或者叫 代价函数(cost function) 记作:
L
(
Y
,
f
(
X
)
)
=
(
Y
−
f
(
X
)
)
2
L(Y,f(X))=(Y-f(X))^2
L(Y,f(X))=(Y−f(X))2
损失函数用来表示模型与真实值拟合的程度,损失函数值越小,模型拟合度越好。
风险函数是损失函数的期望,
f
(
X
)
f(X)
f(X)关于训练集的平均损失称作经验风险(Empirical Risk),即:
1
N
∑
i
=
1
N
L
(
y
i
,
f
(
x
i
)
)
\frac 1N \sum_{i=1}^N L(y_i, f(x_i))
N1i=1∑NL(yi,f(xi))
从经验风险来看,显然
f
3
(
x
)
f_3(x)
f3(x)的经验风险最小,对历史数据的拟合最好,但是因为它过度学习历史数据,导致它在真正预测时效果会很不好,这种情况称为过拟合(over-fitting)。
所以引出了结构风险,定义函数 J ( f ) J(f) J(f)表示模型的复杂度,在机器学习中也叫正则化(Regularization),常用的有 L 1 , L 2 L_1,L_2 L1,L2范数。
为了使经验风险和结构风险最小化,于是得到最终的优化函数:
min
1
N
∑
i
=
1
N
L
(
y
i
,
f
(
x
i
)
)
+
λ
J
(
f
)
\min \frac 1N \sum_{i=1}^N L(y_i, f(x_i)) + \lambda J(f)
minN1i=1∑NL(yi,f(xi))+λJ(f)
即最小化经验风险和结构风险,这个函数就被称为目标函数。
可以看出,图中 f 1 ( x ) f_1(x) f1(x)结构风险最小(模型最简单),但经验风险最大(对历史数据拟合最差); f 3 ( x ) f_3(x) f3(x)经验风险最小,但结构风险最大(模型最复杂);而 f 2 ( x ) f_2(x) f2(x)恰好达到了二者的良好平衡,应当是最优解。