当存在噪声数据时,由于所得到的结果未必是真实的结果,因此模型不再是确定性函数 h(x) ,而是概率分布 p(y|x) ,损失函数也变成了 y p(y│x) 下 y≠f(x) 。可以认为 p(y|x) 给预测结果带来的不确定性是由噪声数据造成的。同时,过去的确定性函数 h(x) 可以看做目标分布的特殊情况,即某一分类概率为1的情况。 例如在线性不可分(可以看做在线性可分的集合中设置噪声)的训练集中,利用pocket感知机即寻找一个最好的模型使得损失函数 y≠f(x) 最小。 同时需要注意的是,在存在噪声的情况下VC维理论依然有效。
我们需要一个方法来判断我们得到的 g(x) 与真实分布 f(x) 的差距,因此把对逐个样本进行度量的方法叫 err(g(x),f(x)) 。对于训练集,把每个样本的err结果平均即为 Ein(g) ,对于未知样本,即从理想分布 P 中采样,样本的err即为泛化能力。 介绍两种重要的error measure: (1)0/1 error 即 err(g(x),f(x))=1[g(x)≠f(x)] 。其对应的模型为在给定条件分布 P(y|x) 下,预测结果为 f(x)=argmaxy∈YP(y|x) 。 (2)squared error 即 err(g(x),f(x))=(g(x)−f(x))2 。其对应的模型为在给定条件分布 P(y|x) 下,预测结果为 f(x)=∑y∈YyP(y|x) 。 不同的损失函数会造成截然不同的预测结果。另外VC维理论在大多数error measure下都是有效的。
在预测中有4种结果,TP,TN,FP,FN。显然TP和TN是没有损失的,而FP与FN的重要性在不同环境下会有不同,这将体现在err中。演算法的核心就在于设计 errˆ ,并使(err) 最小。我们用 errˆ 来代表训练时所用的损失度量,用err代表泛化时的损失度量。 根据不同的情况应采用不同的err,一般有两种角度: (1)选择原理上可行的方法,例如0/1错误,或者平方差最小等。 (2)选择易于优化、求解的方法,例如一个近似解,或者凸函数。
本节讲解了在FP与FN的损失不均等的情况下应该如何改进算法。以pocket算法为例,如果FP的权重是FN的1000倍,则可以将问题转化为连续访问FP的节点1000次,反应在算法上则是放大该点访问后权重变化1000倍。另外,当每次判定是否使用新的w时,应该调整损失函数以适应损失不均等。