返回列表

49th place silver solution

546. Google - Isolated Sign Language Recognition | asl-signs

开始: 2023-02-23 结束: 2023-05-01 音视频处理 数据算法赛

第49名银牌解决方案

作者:RB(MASTER)
排名:第49名
发布时间:2023年5月2日
得票数:15票

感谢Kaggle和Pop sign主办这场比赛。我很享受解决这个问题,并从讨论帖分享的代码中学到了很多——感谢@hengck23

  • PyTorch 2.0(纯PyTorch,无训练库)→ ONNX → TFLite
  • 每段视频的最大帧数(即最大长度)= 256(中心裁剪)
  • 通过LIP、SPOSE、Lhand和Rhand进行归一化(共90个关键点)
  • 翻转增强(概率p=0.5)
  • 距离、运动和加速度特征(总计1050维)
  • 模型基本与此处分享的一致——使用16维位置编码,在FeedForwardNetwork中添加了LayerNorm,以及两个带有BatchNorm的全连接层,最后的全连接层采用CLS令牌和平均池化
  • 损失函数:带标签平滑(label smoothing = 0.75)的交叉熵
  • 训练50个轮次:前15轮dropout为0.0,15-35轮dropout为0.4,剩余轮次dropout为0.2
  • FP16量化显著减小了模型体积——最终模型大小约26MB,5折训练约需60分钟

未奏效的尝试

  • 外部数据:虽然提升了3-4个名次,但因其数据混乱且无商业许可,最终决定不使用
  • 增加更多特征、减少最大长度、移除帧数过高或过低的视频
  • SWA(随机权重平均):未能成功应用
  • 仿射增强(Affine Augment)提升了交叉验证和私有榜分数,但未提升公开榜
  • 各种超参数调整,如编码器块数量、嵌入维度
  • ArcFace损失:根据此帖,ArcFace损失加标签平滑似乎无效。本应尝试仅使用ArcFace而不加标签平滑
  • 还尝试将此TensorFlow模型转换为PyTorch

根据私有榜分数,私有榜数据似乎比训练集噪声更少。

同比赛其他方案