570. Google - American Sign Language Fingerspelling Recognition | asl-fingerspelling
我的解决方案非常简单。我本来不打算写出来的,但讨论区还没有类似Jasper的解决方案 :)
预处理几乎与上一场比赛相同。但删除了mixup和替换增强,并添加了更复杂的时间增强。
我只使用了CTC损失。
按数据长度分组,随机划分(不按用户)为20折。
删除明显有问题的样本:
supplemental_metadata_df = supplemental_metadata_df[~((supplemental_metadata_df['length'] < 10) &
(supplemental_metadata_df['phrase_len'] > 8))]
train_df = train_df[~((train_df['length'] < 7) & (train_df['phrase_len'] > 5))]
训练集中使用了所有补充数据。
还尝试为预测较差的样本创建带有伪标签的第二个数据加载器,或直接删除这些样本。训练时交替使用两个加载器:
loader_to_use = 'main_loader'
if epoch % 3 == 0:
loader_to_use = 'second_loader'
但效果并不明显。
首先尝试了简单的quartznet,但将所有步长设置为1。
然后逐步添加功能,并从之前的最佳检查点开始训练每个实验。
当我使用原始的conformer时,得分很低。但当我将输入2D卷积改为1D卷积或干脆删除它时,效果好了很多,但仍略逊于我的Jasper模型。
感谢Kaggle举办这场精彩的比赛。感谢所有分享出色解决方案的顶尖参与者。
祝贺所有获奖者!