You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Keras微调人脸情绪识别模型部分类别敏感度为0如何优化?

人脸情绪识别模型低敏感度类别优化方案

1. 数据层面优化

  • 先校验低敏感度类别(对应你的Class2、Class5、Class6)的标注质量,排查是否存在大面积标注错误、歧义样本,这类标注问题是class weight无法解决的,错误标注的样本会让模型始终学不到对应类别特征。
  • 对低敏感度类别做定向数据增强:不要使用全局统一的增强策略,针对这三类单独做人脸对齐、随机局部遮挡、光照变换、表情幅度微调等针对性增强,扩充有效训练样本量,效果远好于单纯的类别权重调整。
  • 尝试定向过采样策略:对低敏感度类别样本做重复采样,搭配随机增强避免过拟合,比class weight的软加权更直接,你可以用tf.data.Dataset的sample_from_datasets接口实现不同类别的采样比例控制,比如给三类低敏类别设置2-3倍的采样权重。

2. 损失函数与训练策略优化

  • 替换交叉熵损失为焦点损失(Focal Loss),它会自动降低易分类样本(你这里占比最高、识别效果最好的Class1)的损失权重,强制模型关注难分类的低敏类别,Keras自定义实现代码参考:
import tensorflow as tf
def focal_loss(y_true, y_pred, alpha=0.25, gamma=2.0):
    y_pred = tf.clip_by_value(y_pred, 1e-7, 1 - 1e-7)
    cross_entropy = -y_true * tf.math.log(y_pred)
    loss = alpha * tf.pow(1 - y_pred, gamma) * cross_entropy
    return tf.reduce_sum(loss, axis=-1)
  • 增加类别敏感度相关的度量作为训练监控指标,训练时同时监控每类的sensitivity或召回率,可搭配多任务学习策略,把表情的极性(正/中/负情绪)作为辅助分类头,先让模型学会区分情绪大类别,再细化到7个细分类别,降低小类的学习难度。
  • 调低模型学习率,当前你遇到的情况大概率是模型陷入了局部最优,只学会了识别占比高的类别,把学习率降到原来的1/5到1/10,继续微调10-20个epoch,给模型留出学习小众类别特征的空间。

3. 预测后处理优化

  • 调整分类阈值,默认的0.5阈值对不平衡类别不友好,你可以根据验证集的各类别召回率,单独给低敏类别设置更低的分类阈值,牺牲少量整体准确率换取低敏类别的敏感度提升。

内容的提问来源于stack exchange,提问作者User Tester

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 15:51:02