SVM能预测看不见的表情吗

Can SVM predict unseen expression

本文关键字:看不见 SVM      更新时间:2023-10-16

我对支持向量机(SVM)感到困惑。

我正在OpenCV库中使用SVM实现面部表情识别。我有一个分类器,它是从不同人群的七种基本人类表情(中性、快乐、悲伤、惊讶、愤怒、恐惧和厌恶)中训练出来的。让我们假设一个新人进来,SVM试图预测这个人。它能猜对吗(或者至少能以较低的识别率识别它)?

我试着这样做,并使用交叉验证(将训练和测试集分开)进行检查,经过多次迭代,识别率平均在50%左右。然而,如果我在它已经在训练集中学习的面部图像上进行测试,识别率会提高到90%。

这篇同样做面部表情识别的论文说:

我们的方法以机器学习系统为基础支持向量机(SVM)。人脸特征跟踪器从中的特征运动中收集一组位移视频流。这些随后用于训练SVM分类器识别以前看不见的表达式

所以我的主要问题是,

这是否意味着SVM无法正确预测一个看不见的样本(一个模仿上述表达的新人)

希望有人能帮忙,我希望我足够清楚

p.S我所说的看不见的表情是指一个新的人(SVM以前从未见过),但这个人模仿了我上面提到的一个表情。而不是其他表达式。

"以前看不见的表达式"只是指看不见样本,模型可以是svm、决策树或其他分类模型。

我认为,看不见的面部图像精度下降的原因与你选择的特征有关,而这可能与特定的人高度相关。特征选择方法可能有帮助,模型中的L1调节(L1-SVM)可能有帮助。

当然,SVM可以正确预测看不见的表达式——这就是"泛化"的实际含义。然而,除了你在训练集中收集的表情之外,它无法预测其他人类表情(这在这里不是问题)。

当然,预测看不见的面孔比预测训练模型的数据更难。所以,不用担心,只要像你已经做的那样使用你的机器。另一方面,如果你想减少泛化误差,你可以尝试使用其他功能。

我不知道如何理解你的问题。。。

首先,您似乎在识别known expressions(即(neutral, happy, sad, surprise, anger, fear, and disgust))的泛化方面存在问题。

通常,使用机器学习的目的是将新的人脸图像分类为这些表情中的一个。所学习的泛化将是识别未知人脸上的那些表情(或者仅仅是已知人脸的新/未知图像)。

但你要求对新的表达进行分类,例如confused,它在整个学习过程中不是主题,也与已知的表达无关(例如,如果困惑,则是惊讶和愤怒的混合)?但这是不可能的。你能做的就是有一个unknown expression类。只要您识别出unknown expression,就会保存这些信息。从所有收集到的unknown expression样本中,您可以手动或自动尝试分离新的表达簇!